ApsaraDB for MongoDB では、接続数の枯渇やパフォーマンスの劣化などの問題を解決するために、インスタンス、コンポーネント、またはノードを再起動できます。
制限事項
-
コンポーネントの再起動は、シャードクラスターインスタンスでのみ実行できます。
-
ノードの再起動は、クラウドディスクを使用しているインスタンスでのみ実行できます。
注意事項
-
インスタンスを再起動すると、そのプロセスが停止・再起動され、すべてのアクティブ接続が切断されます。ご利用のアプリケーションに自動再接続メカニズムが備わっていることを確認してください。
-
Mongod および Mongos プロセスは通常 30 秒以内に起動します。ただし、インスタンスに 10,000 を超えるコレクションが存在する場合、Mongod の起動時間が数分に及ぶことがあります。起動が完了するまでノードへの接続はできません。再起動時間の長期化を避けるため、コレクション数を 10,000 以下に保つことを推奨します。詳細については、「公式 MongoDB ドキュメント」をご参照ください。
-
レプリカセットインスタンスを再起動した後、ノードのロールが変更される場合があります。本番環境では高可用性 (HA) 接続文字列 URI を使用することを推奨します。詳細については、「レプリカセットインスタンスへの接続」をご参照ください。
-
シャードクラスターインスタンスを再起動すると、Mongos プロセスの再起動により接続が切断されます。本番環境では高可用性 (HA) 接続文字列 URI を使用し、URI 内に少なくとも 2 つの Mongos ノードのエンドポイントを含めることを推奨します。詳細については、「シャードクラスターインスタンスへの接続」をご参照ください。
-
レプリカセットインスタンス内のシングルノードを再起動すると、ノードのロールが変更される場合があります。本番環境では、HA 接続文字列 URI を使用することを推奨します。詳細については、「レプリカセットインスタンスへの接続」をご参照ください。
-
シャードクラスターインスタンスのシャード内にあるシングルノードを再起動しても、クライアント接続は切断されません。ただし、書き込み操作が失敗する可能性があります。失敗した書き込み操作はリトライすることを推奨します。
操作手順
インスタンスの再起動
-
ApsaraDB for MongoDB コンソールにログインします。
-
左側のナビゲーションウィンドウで、インスタンスタイプに応じて レプリカセットインスタンス または シャーディングインスタンス をクリックします。
-
ページ上部で、対象インスタンスが配置されているリソースグループとリージョンを選択します。
-
操作 列でターゲットインスタンスの もっと をクリックし、再起動 を選択します。
-
インスタンスの再起動 ダイアログボックスで、Confirm をクリックします。
再起動中、インスタンスステータスは 再起動中 に変化します。ステータスが Running に変わると、インスタンスの再起動が完了します。
コンポーネントの再起動
コンポーネントの再起動は、シャードクラスターインスタンスでのみ実行できます。
-
[シャードクラスターインスタンス] ページに移動します。ページ上部でリソースグループとリージョンを選択し、ターゲットインスタンスの ID をクリックします。
-
Mongos 一覧 または シャードリスト セクションで、再起動するコンポーネントを見つけます。操作 列で
アイコンをクリックし、再起動 を選択します。 -
ノードの再起動 ダイアログボックスで、確定する をクリックします。
再起動中、インスタンスステータスは 再起動中 に変化します。ステータスが Running に変わると、コンポーネントの再起動が完了します。
ノードの再起動
-
[レプリカセットインスタンス] または [シャードクラスターインスタンス] ページに移動します。ページ上部でリソースグループとリージョンを選択し、ターゲットインスタンスの ID をクリックします。
-
インスタンス詳細ページの左側ナビゲーションウィンドウで、サービスの提供 をクリックします。
-
再起動するノードを見つけ、Actions 列で Restart Node をクリックします。
-
Restart Node ダイアログボックスで、確定する をクリックします。
再起動中、インスタンスステータスは [ノード再起動中] に変化します。ステータスが Running に変わると、ノードの再起動が完了します。
よくある質問
-
Q1:レプリカセットインスタンスを再起動するとどうなりますか?また、サービスにどのような影響がありますか?
システムは以下の順序でノードを再起動します:非表示ノード → セカンダリノードおよび読み取り専用ノード → プライマリノードとセカンダリノード間でフェールオーバーを実行 → 元プライマリノードを再起動します。サービスへの影響は以下のとおりです。
-
非表示ノードの再起動:サービスへの影響はありません。
-
セカンダリノードの再起動:セカンダリノードへのすべての接続が切断され、クライアントは再接続する必要があります。プライマリノードは引き続き利用可能であり、書き込み操作には影響しません。ただし、
readPreference=Secondaryで設定された読み取り操作は影響を受けます。 -
読み取り専用ノードの再起動:読み取り専用ノードへのすべての接続が切断され、クライアントは再接続する必要があります。プライマリノードは引き続き利用可能であり、書き込み操作には影響しません。ただし、
readPreference=secondary&readPreferenceTags=role:readonlyで設定された読み取り操作は影響を受けます。インスタンスに複数の読み取り専用ノードがある場合、再起動中は読み取りトラフィックが一時的に他の利用可能な読み取り専用ノードにルートされます。 -
フェールオーバー:フェールオーバー中に約 30 秒間の瞬断が発生します。アプリケーションがプライマリノードのエンドポイントを使用して接続している場合、ロールの変更により読み取りおよび書き込み操作に影響が及び、書き込みが失敗する可能性があります。
-
元プライマリノードの再起動:このノード(フェールオーバー後にセカンダリノードとなった)へのすべての接続が切断され、クライアントは再接続する必要があります。影響はセカンダリノードの再起動と同等です。
-
-
Q2:シャードクラスターインスタンスを再起動するとどうなりますか?また、サービスにどのような影響がありますか?
システムは以下の順序でコンポーネントを再起動します:シャードノード → 設定サーバーノード → Mongos ノード。サービスへの影響は以下のとおりです。
-
シャードノード:複数のシャードノードが並列で再起動されます。クライアント接続は切断されませんが、書き込み操作が失敗する可能性があります。失敗した書き込み操作はリトライすることを推奨します。
-
設定サーバーノード:サービスへの影響はありません。
-
Mongos ノード:複数の Mongos ノードが並列で再起動されます。これらのノードへのすべての接続が切断されます。ご利用のアプリケーションに自動再接続メカニズムが備わっていることを確認してください。
-
-
Q3:再起動後に「再起動中」と表示され続けるのはなぜですか?
スイッチオーバー時間をメンテナンスウィンドウに設定した場合、指定されたメンテナンスウィンドウの時刻にスイッチオーバーが完了するまで、インスタンスステータスは「再起動中」のままになります。