On this page
db.fsyncUnlock()
在本页面
Definition
db.
fsyncUnlock
( )- 将db.fsyncLock()在mongod实例上获得的锁定减少 1.
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()确保可以使用cp
,scp
或tar
等低级备份 Util 安全地复制数据文件。开始使用复制的文件的mongod包含与锁定的mongod上的用户写入数据没有区别的用户写入数据。
由于诸如journaling syncs或WiredTiger 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 实例被解锁以进行写入。