参考 > 参考 > mongo Shell方法 > 数据库方法 > db.fsyncLock()
db.
fsyncLock
()¶强制将mongod
所有未完成的写操作刷新到磁盘并锁定整个 mongod
实例,以防止其他写操作,直到用户使用相应的db.fsyncUnlock()
命令释放该锁为止
。
重要
在db.fsyncLock()
和db.fsyncUnlock()
运营维护锁计数。db.fsyncLock()
增加锁计数,并db.fsyncUnlock()
减少锁计数。
要解锁mongod
实例以进行写入,锁定计数必须为零。也就是说,对于给定数量的
db.fsyncLock()
操作,您必须发出相应数量的db.fsyncUnlock()
操作才能解锁实例以进行写入。
db.fsyncLock()
具有以下语法:
该操作将返回包含以下字段的文档:
info
-有关操作状态的信息lockCount
(版本3.4中的新增功能)-实例上当前的锁数。seeAlso
-链接到fsync
命令文档。ok
-状态码。该命令fsync
使用以下语法为数据库命令提供了一个简单的包装器:
db.fsyncLock()
是一个行政命令。您可以使用此操作来锁定数据库并创建用于备份操作的窗口
。
db.fsyncLock()
确保数据文件是安全的使用低级别的备份实用程序,如复制cp
,scp
或
tar
。一mongod
开始使用复制的文件包含从上锁定用户写入的数据无法区分用户写入的数据mongod
。
锁定的数据文件mongod
可能由于诸如日记同步或
WiredTiger快照之类的操作而改变。尽管这对逻辑数据(例如,客户端访问的数据)没有影响,但是某些备份实用程序可能会检测到这些更改并发出警告或失败并出现错误。有关MongoDB推荐的备份实用程序和过程的更多信息,请参阅
MongoDB备份方法。
运行以下操作db.fsyncLock()
:
该操作返回以下状态文档,其中包括
lockCount
:
如果db.fsyncLock()
再次运行,该操作将递增
lockCount
:
要解锁实例以进行写入,必须运行
db.fsyncUnlock()
两次以将减小lockCount
为0。