首页 > 代码库 > mongodb不停机备份

mongodb不停机备份

一、备份

1.锁定数据库:
use admin
db.runCommand({fsync:1,lock:1})
{
“info” : “now locked against writes, use db.fsyncUnlock() to unlock”,
“seeAlso” : “http://www.mongodb.org/display/DOCS/fsync+Command”,
“ok” : 1
}
fsync:强制将所有缓冲写入磁盘
lock:上锁,不能写入(所有写的操作会阻塞)
2.开始备份……

mongodump -d mailaccess -c Mail -q ‘{user:”zhaoxy1@szdep.com”}’ -o /data/dump
备份mailaccess database的Mail collection到/data/dump目录
-d:备份哪个数据库
-c:备份哪个collection(可选,不传默认为整个database)
-q:指定备份collection的条件(与-c参数一起使用) 


3.备份完后解锁:
use admin
db.$cmd.sys.unlock.findOne()
{ “ok” : 1, “info” : “unlock completed” }


二、还原:
mongorestore -d MA –drop /data/dump/mailaccess
还原/data/dump目录下的mailaccess数据库到MA database中
-d:还原到哪个数据库
–drop表示在恢复前先删除原来的集合(如果存在的话)


mongodb不停机备份