db.fsyncLock()

在本页面

Definition

Important

db.fsyncLock()db.fsyncUnlock()操作保持锁定计数。 db.fsyncLock()递增锁计数,db.fsyncUnlock()递减锁计数。

要解锁mongod实例以进行写入,锁定计数必须为零。也就是说,对于给定数量的db.fsyncLock()操作,您必须发出相应数量的db.fsyncUnlock()操作才能解锁实例以进行写入。

db.fsyncLock()的语法为:

db.fsyncLock()

该操作返回包含以下字段的文档:

此命令使用以下语法为fsync数据库命令提供了简单的包装:

{ fsync: 1, lock: true }

db.fsyncLock()是 Management 命令。您可以使用此操作锁定数据库并为backup operations创建一个窗口。

Behavior

db.fsyncLock()确保可以使用cpscptar等低级备份 Util 安全地复制数据文件。开始使用复制的文件的mongod包含与锁定的mongod上的用户写入数据没有区别的用户写入数据。

由于诸如journaling syncsWiredTiger snapshots之类的操作,被锁定的mongod的数据文件可能会更改。尽管这对逻辑数据(例如,Client 端访问的数据)没有影响,但某些备份 Util 可能会检测到这些更改并发出警告或失败并出现错误。有关 MongoDB 建议的备份 Util 和过程的更多信息,请参见MongoDB 备份方法

Example

以下操作运行db.fsyncLock()

db.fsyncLock()

该操作返回以下状态文档,其中包括lockCount

{
   "info" : "now locked against writes, use db.fsyncUnlock() to unlock",
   "lockCount" : NumberLong(1),
   "seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
   "ok" : 1
}

如果再次运行db.fsyncLock(),该操作将使lockCount递增:

{
   "info" : "now locked against writes, use db.fsyncUnlock() to unlock",
   "lockCount" : NumberLong(2),
   "seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
   "ok" : 1
}

要解锁实例以进行写入,必须运行两次db.fsyncUnlock()才能将lockCount减小为 0.

首页