Docs 主页 → 开发应用程序 → MongoDB Manual
fsyncUnlock
定义
fsyncUnlock
减少服务器或集群上的锁计数。 要启用写入操作,锁计数必须为零。
从 MongoDB 5开始。 0 。 22
fsync
和fsyncUnlock
命令可以在mongos
上运行,以锁定和解锁分片集群。完成备份操作后,使用此命令取消阻止写入。
重要
服务器维护 fsync 锁计数。
lock
字段设置为true
的fsync
命令会递增锁计数,而fsyncUnlock
命令会递减锁计数。要在锁定的服务器或集群上启用写入,请调用fsyncUnlock
命令,直到锁计数为零。fsyncUnlock
是一项管理操作。通常,您会在数据库fsyncUnlock
备份操作 后使用 。提示
在
mongosh
中,该命令也可以通过db.fsyncUnlock()
辅助方法运行。助手方法对于
mongosh
用户来说很方便,但它们返回的信息级别可能与数据库命令不同。如果不追求方便或需要额外的返回字段,请使用数据库命令。
语法
要运行fsyncUnlock
命令,请使用db.adminCommand()
方法:
db.adminCommand( { fsyncUnlock: 1, comment: <any> } )
comment
字段是可选的,可以包含任何数据类型的注释。
该操作返回一个包含以下字段的文档:
字段 | 说明 |
---|---|
info | 有关操作状态的信息 |
lockCount ( 3.4 版新增) | 操作后实例上剩余的锁数量。 |
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
实例已解锁,无法写入。