mongodb 备份和还原

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb 备份和还原相关的知识,希望对你有一定的参考价值。

数据的备份非常中要,一下的两种方式,当然也可以利用快照:


---------------------------------------------------------------------

一、直接拷贝数据文件方式备份还原

----------------------------------------------------------------------


注:当调用db.fsyncUnlock()和db.fsyncLock()命令是不要关闭shell,因为如果你启用了身份验证或者断开了链接,可能连不上,需要重新启动mongod,这些命令就都失效了


1.将数据库锁定:db.fsyncLock()  

这个命令禁止所有写入,并将脏页写入磁盘保证数据不再变化。这个时候的写操作都会在内存中排队等待了,直到数据库解锁。


2.mkdir /mongodbback/zou

  cp -R /server/mongo/data/*  /mongodbback/zou

  

 3.解锁数据库   db.fsyncUnlock() 

 

备份完成之后,那如何回复呢

 4. cp -R /mongodb/zou/* /server/mongo/data/


 注意:

恢复前应该确保mongod没有运行,且/server/mongo/data/为空。

删除前一定确认cp命令成功执行。

恢复完成后,再启动mongod。

启动mongod使用一下命令:mongod -f /etc/mongod.conf --fork --nojournal

 



-----------------------------------------------------------------------------

二、mongodump备份

-----------------------------------------------------------------------------


1.数据库mongod没有运行的状态下的备份

  mongodump --dbpath /server/mongo/data/ --out /backup/zou/mongo 

  数据库未启动时的还原

  mongorestore --dbpath /backup/zou/mongo/ --journal /server/mongo/data

  若是要指定备份还原特定数据库在文件路径下指定数据库文件夹的名字即可

  

2.远程链接进行备份

mongodump --host www.zou.com --port 27017 --username zou --password 123.com --out /backup/zou/mongo/mongodump-2016-03-11

恢复 

mongodump --host www.zou.com --port 27017 --username zou --password 123.com /backup/zou/mongo/mongodump-2016-03-11

3.使用oplog进行备份

mongodump不是快照备份,备份过程中系统可能会继续进行操作。

oplog的设置就是避免这种情况发生的,不过使用oplog的前提是mongod启动时使用了--replSet选项

备份和恢复同2相同,只不过加上--oplog 和 oplogReplay 参数


本文出自 “北极的linux” 博客,请务必保留此出处http://941012521.blog.51cto.com/9253690/1749991

以上是关于mongodb 备份和还原的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 备份和还原数据库

mongodb的备份与还原

mongodb 备份 还原 导出 导入

Mongodb备份还原常用命令

Mongodb备份还原常用命令

MongoDB数据备份还原,及docker中MongoDB备份还原