定義
db.fsyncUnlock()サーバーのロック数を減らして書込み操作を有効にします。
MongoDB 7.1 以降(7.0.2、6.0.11、5.0、22 以降でも利用可能)では、
db.fsyncLock()とdb.fsyncUnlock()メソッドをmongosで実行するて、シャーディングされたクラスターをロックおよびロック解除できます。重要
mongosh メソッド
このページでは メソッドについて説明します。ただし、データベースコマンドやNode.jsなどの言語固有のドライバーのドキュメントには 該当しません
mongosh。データベースコマンドについては、
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インスタンスは書き込み用にロックが解除されています。