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