Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

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
操作后实例上剩余的锁数量。
ok
状态代码。

db.fsyncUnlock() 方法封装了 fsyncUnlock 命令。

此方法可用于以下环境中托管的部署:

  • MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本

  • MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本

db.fsyncLock() 确保数据文件可以安全地使用 cpscptar 等低级备份实用工具进行复制。开始使用复制文件的 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实例已解锁,无法写入。

后退

db.fsyncLock

在此页面上