バージョン 5.0 での変更。
shutdownshutdownコマンドは、すべてのデータベース リソースをクリーンアップしてから、プロセスを終了します。shutdownまた、 管理データベース に対して コマンドを発行する必要があります。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
重要
このコマンドは、 MongoDB Atlasクラスターではサポートされていません。 すべてのコマンドの Atlas サポートの詳細については、「 サポートされていないコマンド 」を参照してください。
構文
このコマンドの構文は、次のとおりです。
db.adminCommand( { shutdown: 1, force: <boolean> timeoutSecs: <int>, comment: <any> } )
コマンドフィールド
このコマンドは、次のフィールドを取ります。
フィールド | 説明 |
|---|---|
| |
任意:
| |
任意。 MongoDB 5.0 以降では、
休止期間は、次の方法で指定されます。
クライアントは、シャットダウン中の timeoutSecs は、秒単位で期間を指定します。デフォルトのとおりです。
MongoDB5.0 以降、 | |
| 任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。
コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。 |
動作
mongod自己管理型配置の認証 を使用して開始さ れ た の場合、認証された接続を介してshutdown を実行する必要があります。詳しくは、「アクセス制御」を参照してください。
mongod自己管理型配置で認証 なし で開始された の場合、ローカルホストshutdown インターフェースに接続されたクライアントから を実行する必要があります。たとえば、mongosh --host "127.0.0.1"と同じホストマシンで オプションを使用してmongod を実行します
shutdown レプリカセット ノード
レプリカセット ノードが インデックス構築 などの特定の操作を実行している場合、shutdown は失敗します。force: true を指定すると、ノードがインデックス構築の進行状況をディスクに保存するように強制できます。mongod は再起動時にインデックス構築を回復し、保存されたチェックポイントから続行します。
レプリカ・セットのシャットダウン プライマリ、セカンダリ、または mongos
MongoDB 5.0 以降では、mongod と mongos は、シャットダウン前に進行中のデータベース操作を完了できるように休止期間に入ります。
mongod プライマリがシャットダウン要求を受信すると、プライマリは次の処理を実行します。
セカンダリへのステップダウンを試みます。
ステップダウンに失敗し…
休止期間に入ります。
残りのデータベース操作を終了します。
シャットダウンします。
mongod セカンダリまたは mongos シャットダウン要求の場合、シャットダウンが要求された後に休止期間に入ります。
休止期間は、次の方法で指定されます。
または コマンドが実行された場合は
shutdowndb.shutdownServer()timeoutSecs フィールド 、またはSIGTERMシグナルがmongodに送信された場合は、shutdownTimeoutMillisForSignaledShutdownサーバー パラメーター、またはSIGTERMシグナルがmongosに送信された場合は、mongosShutdownTimeoutMillisForSignaledShutdownになります。
クライアントは、シャットダウン中の mongod または mongos への新しい接続を開くことができません。
timeoutSecsは、秒単位で期間を指定します。 デフォルトは次のとおりです。
MongoDB 5.0 以降のバージョンでは 15 秒です。
MongoDB 5.0 以前のバージョンでは 10 秒です。
mongodはtimeoutSecsを次のように使用します。
現在のノードがレプリカセットのプライマリノードである場合、
mongodはプライマリ ノードを降格する前に、選択可能なノードが追いつくまでtimeoutSecsフィールドで指定された秒数まで待機します。 キャッチアップ時間の詳細については、「レプリケーションラグ 」を参照してください。プライマリから降格した後に現在のノードが
SECONDARY状態になっている場合、 timeoutSecsで指定された残りの時間は休止期間に使用され、既存の操作を完了できます。 新しい操作は他のレプリカセット ノードに送信されます。
MongoDB 5.0以降、 mongosはtimeoutSecsを休止期間として使用し、既存の操作を完了できるようにします。 新しい操作は他のmongosノードに送信されます。 5より前のバージョンの MongoDB で 。 0 、 mongosはすぐにシャットダウンし、 timeoutSecsを使用しません。
警告
プライマリを強制的にシャットダウンすると、セカンダリにまだレプリケートされていない書込みが ロールバックされる可能性があります。
アクセス制御
shutdown自己管理型配置で認証をmongod 強制する で を実行するには、認証されたユーザーに 特権が shutdown必要 です。たとえば、組み込みロールhostManagerを持つユーザーには適切な権限があります。
例
次をシャットダウンします: mongod
db.adminCommand({ "shutdown" : 1 })
強制シャットダウン mongod
db.adminCommand({ "shutdown" : 1, "force" : true })
より長いタイムアウトでプライマリ mongod をシャットダウンする
db.adminCommand({ "shutdown" : 1, timeoutSecs: 60 })