A tool to backup mongodb
Backup mongodb data by copy dbpath
$ pip install mongodb-backup
Start a mongod instance on port 27017.
Run py.test test.py.
$ mongodbbackup --help
Make sure which mongod instance you want to backup, and run mongodbbackup on that server.
Backup a standalone mongod instance.
$ mongodbbackup -p <port> --primary-ok <backup_dir>
Caution: it will block all writes.
Backup a replication, run the follow command on a secondary server.
$ mongodbbackup -p <secondary_port> <backup_dir>
Backup a cluster, backup a config server and each shard. If you have two shards, you need to run the follow command three times.
$ mongodbbackup --ms-url <mongos_url> -p <port> <backup_dir>
Under The Hood
This tool backup mongodb by copying dbpath, so it must run on the same machine with the mongod instance.
- Fsync the mongod instance to block all writes.
- Copy the dbpath.
- Unlock the mongod instance to accept writes.
If you want to backup a mongodb cluster, you should specify --ms-url option. It will stop balancer before backup, and restart balancer after backup.
Caution: This tool doesn’t make a point-in-time backup, it just copy the data directory, you can copy back the data to restore if any disaster happens.