文档菜单
文档首页
/
MongoDB 手册
/ / /

fsyncUnlock

本页内容

  • 定义
  • 兼容性
  • 语法
  • 结果
  • 示例
fsyncUnlock

减少服务器或集群的锁计数。要启用写操作,锁计数必须为零。

从 MongoDB 7.1 版本开始(也适用于 7.0.2、6.0.11 和 5.0.22 版本)以下fsyncfsyncUnlock 命令可以在 mongos 上运行以锁定和解锁分片集群。

在完成备份操作后,使用此命令解锁以取消写阻塞。

重要

服务器维护一个 fsync 锁计数。将 fsync 命令的 lock 字段设置为 true 时,会增加锁计数,而fsyncUnlock 命令会减少它。要启用已锁定服务器或集群的写操作,需要调用 fsyncUnlock 命令,直到锁计数达到零。

fsyncUnlock 是一个管理操作。通常您会在数据库 备份操作 后使用 fsyncUnlock

提示

mongosh 中,此命令还可以通过 db.fsyncUnlock() 辅助方法运行.

辅助方法对mongosh用户来说很方便,但它们可能不会返回与数据库命令相同级别的信息。在不需要便利性或需要额外的返回字段的情况下,请使用数据库命令。

此命令可在以下环境中部署的部署中使用

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

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

该命令具有以下语法

db.adminCommand(
{
fsyncUnlock: 1,
comment: <any>
}
)

comment字段是可选的,可能包含任何数据类型的注释。

操作返回以下字段的文档

字段
描述
info
关于操作状态的信息
lockCount
操作后实例上剩余的锁数量。
ok
状态码。

考虑一个场景,如果已经对 db.fsyncLock() 发起了两次。以下 fsyncUnlock 操作将 db.fsyncLock() 所占用的锁减少1

db.adminCommand( { fsyncUnlock: 1 } )

操作返回以下文档

{ "info" : "fsyncUnlock completed", "lockCount" : NumberLong(1), "ok" : 1 }

由于 lockCount 大于0,mongod 实例对写入进行了锁定。要解锁实例以允许写入,请再次运行解锁操作

db.adminCommand( { fsyncUnlock: 1 } )

操作返回以下文档

{ "info" : "fsyncUnlock completed", "lockCount" : NumberLong(0), "ok" : 1 }

mongod 实例已解锁以允许写入。

返回

fsync