AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

db.fsyncLock()(mongoshメソッド)

db.fsyncLock()

ストレージ層からディスクへのすべての保留中の書込みをフラッシュし、サーバーをロックしてロックが解放されるまで追加の書込みを防ぎます。

MongoDB 7.0.2以降 ( 6.0.11および5.0.22以降でも利用可能)、 db.fsyncLock()メソッドとdb.fsyncUnlock()メソッドはmongosで実行され、シャーディングされたクラスターのロックとロックを解除します。

重要

mongosh メソッド

This page documents a mongosh method. This is not the documentation for database commands or language-specific drivers, such as Node.js.

データベースコマンドについては、fsync コマンドを参照してください。

MongoDB API ドライバーについては、各言語の「MongoDB ドライバーのドキュメント」を参照してください。

Servers maintain an fsync lock count. The fsyncLock() method increments the lock count while the fsyncUnlock() method decrements it. To unlock writes on a server or cluster, call the fsyncUnlock() method until the lock count reaches zero.

db.fsyncLock() の構文は次のとおりです。

db.fsyncLock()

この操作は、次のフィールドを含むドキュメントを返します。

フィールド
説明

info

操作のステータスに関する情報。

lockCount

インスタンスで現在実行されているロックの数。

seeAlso

fsyncコマンドのドキュメントへのリンク

ok

ステータス コード。

db.fsyncLock() is an administrative command. Use this method to lock a server or cluster before backup operations.

このメソッドは、次の環境でホストされている配置で使用できます。

重要

このコマンドは、MongoDB Atlas クラスターではサポートされていません。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

db.fsyncLock() ensures that the data files are safe to copy using low-level backup utilities such as cp, scp, or tar. A mongod started using the copied files contains user-written data that is indistinguishable from the user-written data on the locked mongod.

ロックされた mongod のデータファイルは、ジャーナリング同期WiredTigerスナップショット などの操作によって変更される可能性があります。これは論理データ(例:クライアントがアクセスするデータ)では、一部のバックアップユーティリティがこれらの変更を検出して警告を発したり、エラーで失敗したりすることがあります。MongoDB- 推奨バックアップユーティリティと手順の詳細については、自己管理型配置のバックアップ メソッド を参照してください。

Fsync ロックは、レプリカセットまたはシャーディングされたクラスター内のプライマリで実行されます。

ネットワークの問題によりプライマリがダウンしたり、アクセスできなくなった場合、クラスターは使用可能なセカンダリから新しいプライマリを選択します。 fsync ロックを持つプライマリがダウンした場合、新しいプライマリは fsync ロックを保持せ、書込み操作を処理できます。 バックアップ操作中に選挙が行われると、結果のバックアップが一貫性を失うか、使用できない可能性があります。

プライマリがダウンした状態から回復するには、次の手順に従います。

  1. ロック数が 0 になるまでdb.fsyncUnlock()メソッドを実行して、すべてのノードのロックを解放します。

  2. Issue the db.fsyncLock() command to reestablish the fsync lock on the cluster.

  3. バックアップを再起動します。

さらに、 fsync ロックは永続的です。 古いプライマリが再度オンラインになったら、ノードのロックを解放するためにdb.fsyncUnlock()コマンドを実行する必要があります。

The following operation runs db.fsyncLock():

db.fsyncLock()

この操作では、 lockCountを含む次のステータス ドキュメントが返されます。

{
"info" : "now locked against writes, use db.fsyncUnlock() to unlock",
"lockCount" : Long(1),
"seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
"ok" : 1
}

If you run db.fsyncLock() again, the operation increments the lockCount:

{
"info" : "now locked against writes, use db.fsyncUnlock() to unlock",
"lockCount" : Long(2),
"seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
"ok" : 1
}

インスタンスの書き込みロックを解除するには、 db.fsyncUnlock()を 2 回実行してlockCountを 0 に減らす必要があります。

このページを評価