[MongoDB] Sharding + Replication 環境ですべての mongod サーバーを停止させてみた

Pocket

MongoDB のマニュアルを読んでも、シャーディング+レプリケーション環境(シャードレプリカ環境)の記述が少なく、すべての mongod サーバーを停止する方法がいまいち分かりませんでした。

調べて試したところ、以下の手順で問題なく停止できたので、手順を記載します。
結論としては、レプリケーションを停止させる手順と一緒でした。

ちなみに、各コマンドは成功したら、出力に以下の文言が表示されます。

(1) Secandary への設定

現在のレプリカセットメンバーを、指定された期間 Primary にならないようにします。これにより Primary を stepDown させても、この Secandary は Primary に昇格しなくなります。
https://docs.mongodb.com/manual/reference/method/rs.freeze/

すべての Secandary にログインし、以下のコマンドを実行します。

(2) Arbiter への設定

念のために Secandary 同様、(1) と同じコマンドを実行します。
時間の都合上調査していませんが、Arbiter であるため、本コマンドは不要な可能性があります。

(3) Primary を Secandary に降格

すべての Secandary にログインし、以下のコマンドを実行します。

実行後、暫くすると、また Primary になるので、心配なら freeze() させておきましょう。

(4) Secandary, Arbiter を停止

すべての Secandary にログインし、以下のコマンドを実行します。

実行した際に、以下のエラーが出ることがあります。

この場合、シャットダウンさせたい mongod サーバの動作しているマシン上から host を localhost にしてログインすると正常に実行されます。

以上です。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です