db.fsyncUnlock()
定义
db.fsyncUnlock()
减少服务器上用于重新启用写入操作的锁计数。
从MongoDB 7.0.2开始 (从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
操作后实例上剩余的锁数量。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
实例已解锁,无法写入。