3 つの異なる Amazon サーバー インスタンスに 3 つのノードのレプリカ セット (プライマリ 1 つ、セカンダリ 1 つ、アービター 1 つ) があります。それらがホストされているサーバーではメモリのアップグレードが必要だったため、MongoDB インスタンスもシャットダウンする必要がありました。
次の順序で MongoDB インスタンスをシャットダウンします。
- セカンダリ
- アービタ
- 主要な
以下のプロセスを使用して、各サーバーをシャットダウンしました
use admin
db.shutdownServer()
すべての MongoDB インスタンスは問題なく適切にシャットダウンされました。これまでのところ、すべて問題ありません。
Amazon サーバーのアップグレード後、MongoDB インスタンスを次の順序で開始しました。
- アービタ
- セカンダリ
- 主要な
アービターはアービター モードで、セカンダリはセカンダリ モードですが、驚いたことに、プライマリ マシンは "RECOVERING" モードになりました。
プライマリ マシンが "RECOVERING" になった理由はわかりません。
ログを調べました。同期するメンバーが表示されていません...そのようなもの
私の基本的な疑問は、「レプリカセットで再構成が行われるまで、プライマリはプライマリでなければならない」ということです。
サーバーのシャットダウン中のステップが抜けていませんか? または、サーバーの再起動中のステップが抜けていますか?
どうすればこの問題を克服できるのでしょうか。Amazon サーバーでは多くのアップグレードが行われているため、MongoDB サーバーを頻繁にシャットダウンする必要があります。