db.fsyncLock()
On this page
Definition
db.fsyncLock()
-
Forces the
mongod
to flush all pending write operations to disk and locks the entiremongod
instance to prevent additional writes until the user releases the lock with a correspondingdb.fsyncUnlock()
command.Important
The
db.fsyncLock()
anddb.fsyncUnlock()
operations maintain a lock count.db.fsyncLock()
increments the lock count, anddb.fsyncUnlock()
decrements the lock count.To unlock a
mongod
instance for writes, the lock count must be zero. That is, for a given number ofdb.fsyncLock()
operations, you must issue a corresponding number ofdb.fsyncUnlock()
operations to unlock the instance for writes.db.fsyncLock()
has the syntax:db.fsyncLock()
The operation returns a document with the following fields:
-
info
- Information on the status of the operation -
lockCount
(New in version 3.4)- The number of locks currently on the instance. -
seeAlso
- Link to thefsync
command documentation. -
ok
- The status code.
This command provides a simple wrapper around a
fsync
database command with the following syntax:{ fsync: 1, lock: true }
db.fsyncLock()
is an administrative command. You can use this operation to locks the database and create a window for backup operations. -
Behavior
db.fsyncLock()
ensures that the data files are safe to copy using low-level backup utilities such as cp
, scp
, or tar
. A mongod
started using the copied files contains user-written data that is indistinguishable from the user-written data on the locked mongod
.
The data files of a locked mongod
may change due to operations such as journaling syncs or WiredTiger snapshots. While this has no affect on the logical data (e.g. data accessed by clients), some backup utilities may detect these changes and emit warnings or fail with errors. For more information on MongoDB-
recommended backup utilities and procedures, see MongoDB Backup Methods.
Example
The following operation runs db.fsyncLock()
:
db.fsyncLock()
The operation returns the following status document that includes the lockCount
:
{ "info" : "now locked against writes, use db.fsyncUnlock() to unlock", "lockCount" : NumberLong(1), "seeAlso" : "http://dochub.mongodb.org/core/fsynccommand", "ok" : 1 }
If you run db.fsyncLock()
again, the operation increments the lockCount
:
{ "info" : "now locked against writes, use db.fsyncUnlock() to unlock", "lockCount" : NumberLong(2), "seeAlso" : "http://dochub.mongodb.org/core/fsynccommand", "ok" : 1 }
To unlock the instance for writes, you must run db.fsyncUnlock()
twice to reduce the lockCount
to 0.