db.fsyncUnlock()
定義
db.fsyncUnlock()
サーバーのロック数を減らして書込み操作を有効にします。
MongoDB 7.0.2以降 ( 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" : NumberLong(1), "ok" : 1 }
lockCount
が 0 より大きいため、 mongod
インスタンスは書き込みに対してロックされます。 インスタンスの書き込みロックを解除するには、 db.fsyncLock()
を再度実行します。
db.fsyncUnlock()
この操作を実行すると次のドキュメントが返されます。
{ "info" : "fsyncUnlock completed", "lockCount" : NumberLong(0), "ok" : 1 }
mongod
インスタンスは書き込み用にロックが解除されています。