定義
fsyncUnlockサーバーまたはクラスターのロック数を軽減します。 書込み (write) 操作を有効にするには、ロック カウントが 0 である必要があります。
MongoDB 6.0.11以降 ( 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 のバージョン
構文
このコマンドの構文は、次のとおりです。
db.adminCommand( { fsyncUnlock: 1, comment: <any> } )
commentフィールドは任意であり、任意のデータ型のコメントを含めることができます。
結果
この操作は、次のフィールドを含むドキュメントを返します。
フィールド | 説明 |
|---|---|
| 操作のステータスに関する情報 |
| 操作後にインスタンス上に残っているロックの数。 |
| ステータス コード。 |
例
db.fsyncLock()が 2 回発行された状況を考えてみましょう。 次のfsyncUnlock操作は、 db.fsyncLock()が取得したロックを1ずつ削減します。
db.adminCommand( { fsyncUnlock: 1 } )
この操作を実行すると次のドキュメントが返されます。
{ "info" : "fsyncUnlock completed", "lockCount" : Long(1), "ok" : 1 }
lockCountが 0 より大きいため、 mongodインスタンスは書き込みに対してロックされます。 インスタンスの書き込みをロックするには、ロック操作を再度実行します。
db.adminCommand( { fsyncUnlock: 1 } )
この操作を実行すると次のドキュメントが返されます。
{ "info" : "fsyncUnlock completed", "lockCount" : Long(0), "ok" : 1 }
mongodインスタンスは書き込み用にロックが解除されています。