fsyncUnlock
定義
fsyncUnlock
サーバーまたはクラスターのロック数を軽減します。 書込み (write) 操作を有効にするには、ロック カウントが 0 である必要があります。
MongoDB 5.0.22以降では、
fsync
} コマンドとfsyncUnlock
コマンドをmongos
で実行して、シャーディングされたクラスターをロックおよびロック解除します。バックアップ操作の完了後に、このコマンドを使用して書込みのブロックを解除します。
重要
サーバーは fsync ロック カウントを維持します。
lock
フィールドをtrue
に設定するfsync
コマンドはロック数を増加させ、fsyncUnlock
コマンドはロック数を減算します。 ロックされたサーバーまたはクラスターで書込みを有効にするには、ロック数が 0 になるまでfsyncUnlock
コマンドを呼び出します。fsyncUnlock
は管理操作です。 通常、データベースのfsyncUnlock
バックアップ操作 の後に使用します。Tip
mongosh
では、このコマンドはdb.fsyncUnlock()
ヘルパー メソッドを通じて実行することもできます。ヘルパー メソッドは
mongosh
ユーザーには便利ですが、データベースコマンドと同じレベルの情報は返されない可能性があります。 便宜上必要ない場合、または追加の戻りフィールドが必要な場合は、 データベースコマンドを使用します。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
fsyncUnlock
コマンドを実行するには、 db.adminCommand()
メソッドを使用します。
db.adminCommand( { fsyncUnlock: 1, comment: <any> } )
comment
フィールドは任意であり、任意のデータ型のコメントを含めることができます。
この操作は、次のフィールドを含むドキュメントを返します。
フィールド | 説明 |
---|---|
| 操作のステータスに関する情報 |
| 操作後にインスタンス上に残っているロックの数。 |
| ステータス コード。 |
例
db.fsyncLock()
が 2 回発行された状況を考えてみましょう。 次のfsyncUnlock
操作は、 db.fsyncLock()
が取得したロックを1ずつ削減します。
db.adminCommand( { fsyncUnlock: 1 } )
この操作を実行すると次のドキュメントが返されます。
{ "info" : "fsyncUnlock completed", "lockCount" : NumberLong(1), "ok" : 1 }
lockCount
が 0 より大きいため、 mongod
インスタンスは書き込みに対してロックされます。 インスタンスの書き込みをロックするには、ロック操作を再度実行します。
db.adminCommand( { fsyncUnlock: 1 } )
この操作を実行すると次のドキュメントが返されます。
{ "info" : "fsyncUnlock completed", "lockCount" : NumberLong(0), "ok" : 1 }
mongod
インスタンスは書き込み用にロックが解除されています。