db.fsyncUnlock()
定义
db.fsyncUnlock()
减少服务器上用于重新启用写入操作的锁计数。
从 MongoDB 6开始。 0 。 11 (也从5 . 0 . 22开始可用),
db.fsyncLock()
和db.fsyncUnlock()
方法可以在mongos
上运行以锁定和解锁分片集群。重要
mongosh 方法
本页面提供
mongosh
方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。有关数据库命令,请参阅
fsyncUnlock
命令。如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。
服务器维护 fsync 锁计数。
fsyncLock()
方法会递增锁计数,而fsyncUnlock()
方法会递减锁计数。要解锁服务器或集群上的写入,请调用fsyncUnlock()
方法,直到锁计数达到零。db.fsyncUnlock()
是一项管理操作。使用此方法在备份操作后解锁服务器或集群db.fsyncUnlock()
语法为:db.fsyncUnlock() 该操作返回一个包含以下字段的文档:
info
有关操作状态的信息。lockCount
(版本3中的新增功能。 4 )操作后实例上剩余的锁数量。ok
状态代码。db.fsyncUnlock()
方法封装了fsyncUnlock
命令。
与 WiredTiger 的兼容性
db.fsyncLock()
确保数据文件可以安全地使用 cp
、scp
或 tar
等低级备份实用工具进行复制。开始使用复制文件的 mongod
包含用户写入的数据,这些数据与锁定的 mongod
上的用户写入的数据无法区分。
锁定mongod
的数据文件可能会因日志同步或WiredTiger 快照等操作而发生变化。虽然这对逻辑数据(例如客户端访问的数据)没有影响,但某些备份实用程序可能会检测到这些更改并发出警告,或者失败并显示错误。有关 MongoDB 推荐的备份实用程序和过程的更多信息,请参阅自管理部署的备份方法。
例子
以 db.fsyncLock()
已发布两次的情况为例。以下db.fsyncUnlock()
操作可通过1减少 db.fsyncLock()
占用的锁定:
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
实例已解锁,无法写入。