dHealthノードのMongoDBに追加でインデックスを張る

バックアップ

失敗すると起動しなくなるのでバックアップを取る。
targetディレクトリ全部取っておけばOK。2,635,945ブロックで5分くらい掛かると思う。

ノード停止

yourdlt stop

バックアップ

cp -r target target_bk

以下の用にロックファイルがコピー出来ないエラーが出る事があるけど、ロックファイルは必要ないので無視でいい。

cp: cannot open 'target/nodes/dhealth-full-node/data/broker.lock' for reading: Permission denied
cp: cannot open 'target/nodes/dhealth-full-node/data/server.lock' for reading: Permission denied

ノード起動

yourdlt run -d

インデックス張る

DBコンテナの中に入る

$ cd target/docker
$ docker-compose exec db bash

MongoDBに接続

コンテナ内に入れたらMongoDBに接続する。

$ mongo --host db

インデックスを張る

> use catapult
> db.transactions.createIndex({ 'transaction.mosaics.id': 1});
> db.transactionStatements.createIndex({ 'statement.receipts.targetAddress': 1 });
> db.transactionStatements.createIndex({ 'statement.receipts.senderAddress': 1 });
> exit

コンテナから出る

$ exit