db.fsyncUnlock()

在本页面

Definition

Important

db.fsyncLock()db.fsyncUnlock()操作保持锁定计数。 db.fsyncLock()递增锁计数,db.fsyncUnlock()递减锁计数。

要解锁mongod实例以进行写入,锁定计数必须为零。也就是说,对于给定数量的db.fsyncLock()操作,您必须发出相应数量的db.fsyncUnlock()操作才能解锁实例以进行写入。

db.fsyncUnlock()是一项 Management 操作。通常,您将在数据库backup operation之后使用db.fsyncUnlock()

db.fsyncUnlock()的语法为:

db.fsyncUnlock()

该操作返回包含以下字段的文档:

info 有关操作状态的信息。
lockCount(* 3.4 版中的新功能*) 操作后实例上剩余的锁数。
ok 状态码。

db.fsyncUnlock()方法包装fsyncUnlock命令。

与 WiredTiger 的兼容性

db.fsyncLock()确保可以使用cpscptar等低级备份 Util 安全地复制数据文件。开始使用复制的文件的mongod包含与锁定的mongod上的用户写入数据没有区别的用户写入数据。

由于诸如journaling syncsWiredTiger snapshots之类的操作,被锁定的mongod的数据文件可能会更改。尽管这对逻辑数据(例如,Client 端访问的数据)没有影响,但某些备份 Util 可能会检测到这些更改并发出警告或失败并出现错误。有关 MongoDB 建议的备份 Util 和过程的更多信息,请参见MongoDB 备份方法

Example

考虑一种情况,其中db.fsyncLock()已发出两次。以下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 实例被解锁以进行写入。

首页