定义
fsyncUnlock减少服务器或集群上的锁计数。 要启用写入操作,锁计数必须为零。
从 MongoDB 7.1开始(也从7.0.2开始提供, 6.0.11和5.0 。22 ),则可以在 上运行
fsync和fsyncUnlockmongos命令以锁定和解锁分片集群。完成备份操作后,使用此命令取消阻止写入。
重要
服务器维护fsync锁计数。
fsynclock字段设立为 的true命令会递增锁计数,而fsyncUnlock命令会递减锁计数。要在锁定的服务器或集群上启用写入,请调用fsyncUnlock命令直到锁计数为零。fsyncUnlock是一项管理操作。通常,您会在数据库备份操作后使用fsyncUnlock。提示
在
mongosh中,该命令也可以通过db.fsyncUnlock()辅助方法运行。助手方法对于
mongosh用户来说很方便,但它们返回的信息级别可能与数据库命令不同。如果不追求方便或需要额外的返回字段,请使用数据库命令。
兼容性
此命令可用于以下环境中托管的部署:
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
该命令具有以下语法:
db.adminCommand( { fsyncUnlock: 1, comment: <any> } )
comment字段是可选的,可以包含任何数据类型的注释。
结果
该操作返回一个包含以下字段的文档:
字段 | 说明 |
|---|---|
| 有关操作状态的信息 |
| 操作后实例上剩余的锁数量。 |
| 状态代码。 |
示例
db.fsyncLock()考虑已发出两次 的情况。以下 操作将fsyncUnlock 占用的锁减少db.fsyncLock() 1:
db.adminCommand( { fsyncUnlock: 1 } )
该操作将返回以下文档:
{ "info" : "fsyncUnlock completed", "lockCount" : Long(1), "ok" : 1 }
由于lockCount大于 0,因此mongod实例被锁定以防止写入。 要解锁实例以进行写入,请再次运行解锁操作:
db.adminCommand( { fsyncUnlock: 1 } )
该操作将返回以下文档:
{ "info" : "fsyncUnlock completed", "lockCount" : Long(0), "ok" : 1 }
mongod实例已解锁,无法写入。