定義
db.fsyncUnlock()サーバーのロック数を減らして書込み操作を有効にします。
MongoDB 6.0.11以降 ( 5.0.22以降でも利用可能 )
db.fsyncLock()メソッドとdb.fsyncUnlock()メソッドはmongosで実行され、シャーディングされたクラスターのロックとロックを解除します。重要
mongosh メソッド
このページでは、
mongoshメソッドについて記載しています。ただし、データベースコマンドや Node.js などの言語固有のドライバーのドキュメントには該当しません。データベースコマンドについては、
fsyncUnlockコマンドを参照してください。MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。
サーバーは fsync ロック カウントを維持します。
fsyncLock()メソッドはロック数を増加させ、fsyncUnlock()メソッドはロック数を減算します。 サーバーまたはクラスターへの書込みをロックするには、ロック数が 0 になるまでfsyncUnlock()メソッドを呼び出します。db.fsyncUnlock()は管理操作です。 この方法を使用して、バックアップ操作後にサーバーまたはクラスターのロックを解除しますdb.fsyncUnlock()の構文は次のとおりです。db.fsyncUnlock() この操作は、次のフィールドを含むドキュメントを返します。
info操作のステータスに関する情報。
lockCount操作後にインスタンス上に残っているロックの数。
okステータス コード。
db.fsyncUnlock()メソッドは、fsyncUnlockコマンドをラップします。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
重要
このコマンドは、 MongoDB Atlasクラスターではサポートされていません。 すべてのコマンドの Atlas サポートの詳細については、「 サポートされていないコマンド 」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
WiredTiger との互換性
db.fsyncLock()は、 cp 、 scp 、 tarなどの低レベルのバックアップ ユーティリティを使用してデータファイルを安全にコピーすることを保証します。 コピーされた ファイルを使用して開始されたmongodには、ロックされたmongodのユーザーが記述したデータと区別できないユーザーが記述したデータが含まれています。
ロックされた mongod のデータファイルは、ジャーナリング同期 や WiredTigerスナップショット などの操作によって変更される可能性があります。これは論理データ(例:クライアントがアクセスするデータ)では、一部のバックアップユーティリティがこれらの変更を検出して警告を発したり、エラーで失敗したりすることがあります。MongoDB- 推奨バックアップユーティリティと手順の詳細については、自己管理型配置のバックアップ メソッド を参照してください。
例
db.fsyncLock()が 2 回発行された状況を考えてみましょう。 次のdb.fsyncUnlock()操作は、 db.fsyncLock()が取得したロックを1ずつ削減します。
db.fsyncUnlock()
この操作を実行すると次のドキュメントが返されます。
{ "info" : "fsyncUnlock completed", "lockCount" : Long(1), "ok" : 1 }
lockCountが 0 より大きいため、 mongodインスタンスは書き込みに対してロックされます。 インスタンスの書き込みロックを解除するには、 db.fsyncLock()を再度実行します。
db.fsyncUnlock()
この操作を実行すると次のドキュメントが返されます。
{ "info" : "fsyncUnlock completed", "lockCount" : Long(0), "ok" : 1 }
mongodインスタンスは書き込み用にロックが解除されています。