MongoDBのreplicasetで運用している際に何かしたらのトラブルでSECONDARYのstateが
RECOVERINGの状態になってしまうことがあります。
ただ、そこからSECONDARYに復旧されず、RECOVERINGの状態が続いてしまうことがあります。
その場合、復旧方法として下記にて、方法で復旧させることができました。
- Secondaryのmongodを停止します(db.shutdownServer())
- dbpathで指定しているディレクトリを空にします(削除してしまうと怖いので、mvコマンドなどで移動させておきます)
- mongodを再開します
- データが同期されるまで、SETUP2というstateになります
- 同期が完了すると、SECONDARYのstateに復旧します
参考
- https://docs.mongodb.org/v3.0/reference/replica-states/
- https://docs.mongodb.org/v3.0/tutorial/recover-data-following-unexpected-shutdown/
*--repair
を利用して復旧する方法もあるようですが、私の環境下では正常に復旧することはできませんでした。
他の復旧方法などあれば、ご教示ください。