1.基于数据文件的备份
直接将原始的数据文件Copy至备份的地方,这个方法的优点是比较快,因为备份和恢复都不需要转换数据格式。缺点就是需要锁住数据库服务器,但是此方案通常备份是在从节点上进行,备份过程不影响应用的正常运行。
如果不锁住数据,经常会导致复制文件中断,另外就是保证数据文件的一致性状态。
主要命令:
加锁的命令--db.fsyncLock()
注意:锁之后的任何尝试写入都会被阻止,而且读操作也会被阻止。新的连接尝试也会被阻止。
解锁的命令--db.fsyncUnlock()
注意:这仅仅是个解锁请求,数据库可能无法正确解锁。运行db.currentOp方法可以验证数据库是否还处于锁状态。
2.mongodump
mongodump导出的是bson格式,是二进制形式。此工具对于恢复整个实例、单个数据库、指定集合都十分有用。他们可以用于备份实时运行的数据库(无需锁住或者关闭数据库)。
mongorestore用于读取恢复这些文件。
部分主要命令参数 如下:
-h [ --host ] --数据库所在主机IP地址;
–port --mongodb使用的端口号;
-u [ --username ]--登陆用户名;
-p [ --password ] --用户的登陆密码;
-d [ --db ] --准备备份的数据库;
-c [ --collection ] --准备备份的集合;
-o [ --out ] --导出数据将要保存在的目录;
-q [ --query