Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/
データベース マニュアル
/ / /

setUserWriteBlockMode (データベースコマンド)

setUserWriteBlockMode

バージョン 6.0 で追加。

setUserWriteBlockModeコマンドは、クラスター全体への書込みのブロックとブロック解除を実行します。

Cluster-to-Cluster Sync中に、クラスタ間同期ツールである mongosyncsetUserWriteBlockMode コマンドを使用して宛先クラスターへの書込みをブロックします。 詳しくは、 HTTP API startコマンドを参照してください。

レプリカセットでの書込みをすでにブロックしている場合、指定された reason が書込みブロックを最初に有効にしたときに指定した理由と一致しないと、global: true を使用して setUserWriteBlockMode に対する後続の呼び出しが失敗し、IllegalOperation エラーが発生します。エラーメッセージには、現在の理由と、失敗したコマンドで指定された理由の両方が含まれます。シャーディングされたクラスターでは、この制約は強制されません。

注意

bypassWriteBlockingMode特権を持つユーザーとアプリケーションは、ブロックをバイパスして書込みを引き続き実行できます。

このコマンドは、次の環境でホストされている配置で使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

重要

このコマンドは、M0 および Flex クラスターではサポートされていません。詳細については、「 サポートされていないコマンド 」を参照してください。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

重要

このコマンドは、 MongoDB Atlasクラスターではサポートされていません。 すべてのコマンドの Atlas サポートの詳細については、「 サポートされていないコマンド 」を参照してください。

このコマンドの構文は、次のとおりです。

db.adminCommand(
{
setUserWriteBlockMode: 1,
global: <boolean>,
reason: <string> // Optional
}
)

このコマンドは、次のフィールドを使用します。

フィールド
タイプ
説明

setUserWriteBlockMode

integer

このフィールドを1に設定します。

global

ブール値

trueに設定すると、クラスターへの書込みがブロックされます。 クラスターで書込みを有効にするには、 global: falseを設定します。

reason

string

任意。書込みをブロックする理由を指定します。次の値を受け入れます。

  • "Unspecified" - 理由を指定しない場合は、デフォルトで となります。

  • "ClusterToClusterMigrationInProgress" - 進行中の クラスター間の移行によりブロックされた書込みを示します。

  • "DiskUseThresholdExceeded" - ディスク使用量がしきい値を超えたため、ブロックされた書込みを示します。

setUserWriteBlockModeコマンドを実行するには、ユーザーにsetUserWriteBlockMode特権が必要です。

  1. ユーザー書込みブロック モードを有効にします。

    db.adminCommand( {
    setUserWriteBlockMode: 1,
    global: true
    } )
  2. コレクションにレコードを追加します。

    db.names.insertOne( { name: "George Washington Cable" } )

    ユーザーの書込みブロックが有効になっているため、サーバーは書込みをブロックします。

    出力例:

    MongoServerError: User writes blocked
  3. ユーザーの書込みブロック モードを無効にします。

    db.adminCommand( {
    setUserWriteBlockMode: 1,
    global: false
    } )
  4. コレクションにレコードを追加します。

    db.names.insertOne( { name: "George Washington Cable" } )

    insertOne()メソッドはコレクションに書き込みます。 ユーザーの書込みブロックが無効になっているため、サーバーは書込みを許可します。

戻る

setQuerySettings

項目一覧