shutdown
バージョン 5.0 での変更。
shutdown
shutdown
コマンドは、すべてのデータベース リソースをクリーンアップしてから、プロセスを終了します。また、shutdown
コマンドは、管理データベース に対して発行する必要があります。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
重要
このコマンドは、M 0 、M 2 、M 5 、M 10 + クラスターではサポートされていません。 詳細については、「サポートされていないコマンド 」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
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
シャットダウン要求の場合、シャットダウンが要求された後に休止期間に入ります。
休止期間は、次の方法で指定されます。
または コマンドが実行された場合は
shutdown
db.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 })