Docs Menu
Docs Home
/
MongoDB マニュアル
/ / /

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>
}
)

このコマンドは、次のフィールドを取ります。

フィールド
説明

1 を指定します。

任意: mongod または mongos を強制的にシャットダウンするには、true を指定します。強制シャットダウンは、mongod または mongos で実行中の操作を中断し、予期しない動作が発生する可能性があります。

forceを使用して、進行中のインデックスビルドを一時停止および再開できます。 詳細については、「レプリカセット ノード」のshutdown参照してください。

任意。

MongoDB 5.0 以降では、mongodmongos は、シャットダウン前に進行中のデータベース操作を完了できるように休止期間に入ります。

mongod プライマリがシャットダウン要求を受信すると、プライマリは次の処理を実行します。

  1. セカンダリへのステップダウンを試みます。

    ステップダウンに失敗し…

    • shutdown または db.shutdownServer() コマンドが実行された場合、mongodforce フィールドが true の場合のみシャットダウン手順を続行します。

    • SIGTERM シグナルがmongodに送信された場合、mongod は常にシャットダウン手順を続行します。

  2. 休止期間に入ります。

  3. 残りのデータベース操作を終了します。

  4. シャットダウンします。

mongod セカンダリまたは mongos シャットダウン要求の場合、シャットダウンが要求された後に休止期間に入ります。

休止期間は、次の方法で指定されます。

クライアントは、シャットダウン中の mongod または mongos への新しい接続を開くことができません。

timeoutSecsは、秒単位で期間を指定します。 デフォルトは次のとおりです。

  • MongoDB 5.0 以降のバージョンでは 15 秒です。

  • MongoDB 5.0 以前のバージョンでは 10 秒です。

mongodtimeoutSecsを次のように使用します。

  • 現在のノードがレプリカセットのプライマリノードである場合、 mongodはプライマリ ノードを降格する前に、選択可能なノードが追いつくまでtimeoutSecsフィールドで指定された秒数まで待機します。 キャッチアップ時間の詳細については、「レプリケーションラグ 」を参照してください。

  • プライマリから降格した後に現在のノードがSECONDARY状態になっている場合、 timeoutSecsで指定された残りの時間は休止期間に使用され、既存の操作を完了できます。 新しい操作は他のレプリカセット ノードに送信されます。

MongoDB 5.0以降、 mongostimeoutSecsを休止期間として使用し、既存の操作を完了できるようにします。 新しい操作は他のmongosノードに送信されます。 5より前のバージョンの MongoDB で 。 0 、 mongosはすぐにシャットダウンし、 timeoutSecsを使用しません。

MongoDB 4.4以前では、 mongodプライマリの場合、 timeoutSecsはセカンダリが追いつくまでプライマリが待機する秒数です。 指定された時間内にどのセカンダリも追いつかなければ、コマンドは失敗します。 デフォルトは10秒です。

comment

任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。

コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。

Tip

以下も参照してください。

mongod自己管理型配置の認証 を使用して開始さ れ た の場合、認証された接続を介してshutdown を実行する必要があります。詳しくは、「アクセス制御」を参照してください。

mongod自己管理型配置で認証 なし で開始された の場合、ローカルホストshutdown インターフェースに接続されたクライアントから を実行する必要があります。たとえば、mongosh --host "127.0.0.1"と同じホストマシンで オプションを使用してmongod を実行します

レプリカセット ノードが インデックス構築 などの特定の操作を実行している場合、shutdown は失敗します。force: true を指定すると、ノードがインデックス構築の進行状況をディスクに保存するように強制できます。mongod は再起動時にインデックス構築を回復し、保存されたチェックポイントから続行します。

MongoDB 5.0 以降では、mongodmongos は、シャットダウン前に進行中のデータベース操作を完了できるように休止期間に入ります。

mongod プライマリがシャットダウン要求を受信すると、プライマリは次の処理を実行します。

  1. セカンダリへのステップダウンを試みます。

    ステップダウンに失敗し…

    • shutdown または db.shutdownServer() コマンドが実行された場合、mongodforce フィールドが true の場合のみシャットダウン手順を続行します。

    • SIGTERM シグナルがmongodに送信された場合、mongod は常にシャットダウン手順を続行します。

  2. 休止期間に入ります。

  3. 残りのデータベース操作を終了します。

  4. シャットダウンします。

mongod セカンダリまたは mongos シャットダウン要求の場合、シャットダウンが要求された後に休止期間に入ります。

休止期間は、次の方法で指定されます。

クライアントは、シャットダウン中の mongod または mongos への新しい接続を開くことができません。

timeoutSecsは、秒単位で期間を指定します。 デフォルトは次のとおりです。

  • MongoDB 5.0 以降のバージョンでは 15 秒です。

  • MongoDB 5.0 以前のバージョンでは 10 秒です。

mongodtimeoutSecsを次のように使用します。

  • 現在のノードがレプリカセットのプライマリノードである場合、 mongodはプライマリ ノードを降格する前に、選択可能なノードが追いつくまでtimeoutSecsフィールドで指定された秒数まで待機します。 キャッチアップ時間の詳細については、「レプリケーションラグ 」を参照してください。

  • プライマリから降格した後に現在のノードがSECONDARY状態になっている場合、 timeoutSecsで指定された残りの時間は休止期間に使用され、既存の操作を完了できます。 新しい操作は他のレプリカセット ノードに送信されます。

MongoDB 5.0以降、 mongostimeoutSecsを休止期間として使用し、既存の操作を完了できるようにします。 新しい操作は他のmongosノードに送信されます。 5より前のバージョンの MongoDB で 。 0 、 mongosはすぐにシャットダウンし、 timeoutSecsを使用しません。

警告

プライマリを強制的にシャットダウンすると、セカンダリにまだレプリケートされていない書込みが ロールバックされる可能性があります。

shutdown自己管理型配置で認証をmongod 強制する で を実行するには、認証されたユーザーに 特権が shutdown必要 です。たとえば、組み込みロールhostManagerを持つユーザーには適切な権限があります。

db.adminCommand({ "shutdown" : 1 })
db.adminCommand({ "shutdown" : 1, "force" : true })
db.adminCommand({ "shutdown" : 1, timeoutSecs: 60 })

戻る

setUserWriteBlockMode