博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mongo的备份和恢复(mongodump 和mongorestore )
阅读量:5165 次
发布时间:2019-06-13

本文共 2219 字,大约阅读时间需要 7 分钟。

 

http://www.runoob.com/mongodb/mongodb-mongodump-mongorestore.html

 

--备份单个表

mongodump -u superuser -p 123456 --port 27017 --authenticationDatabase admin -d myTest -c d -o /backup/mongodb/myTest_d_bak_201507021701.bak

--备份单个库

mongodump -u superuser -p 123456 --port 27017 --authenticationDatabase admin -d myTest -o /backup/mongodb/

--备份所有库

mongodump -u superuser -p 123456 --authenticationDatabase admin --port 27017 -o /root/bak

--备份所有库推荐使用添加--oplog参数的命令,这样的备份是基于某一时间点的快照,只能用于备份全部库时才可用,单库和单表不适用:

mongodump -h 127.0.0.1 --port 27017 --oplog -o /root/bak

--同时,恢复时也要加上--oplogReplay参数,具体命令如下(下面是恢复单库的命令):

mongorestore -d swrd --oplogReplay /home/mongo/swrdbak/swrd/

--恢复单个库:

mongorestore -u superuser -p 123456 --port 27017 --authenticationDatabase admin -d myTest /backup/mongodb/

--恢复所有库:

mongorestore -u superuser -p 123456 --port 27017 --authenticationDatabase admin /root/bak

--恢复单表

mongorestore -u superuser -p 123456 --authenticationDatabase admin -d myTest -c d /backup/mongodb/myTest_d_bak_201507021701.bak/myTest/d.bson

 

注:

1、mongorestore恢复数据默认是追加,如打算先删除后导入,可以加上--drop参数,不过添加--drop参数后,会将数据库数据清空后再导入,如果数据库备份后又新加入了数据,也会将新加的数据删除,它不像mysql有一个存在的判断。

2、mongodump在mongo关闭时,也是可以备份的,不过需要指定数据目录,命令为:

 

mongodump  --dbpath  /data/db 3、在备节点使用mongodump备份时,必须加上--oplog参数,否则备份的状态不会和任何其他集群成员的状态相吻合,另外在恢复时还需创建一份oplog,用来恢复备份期间所做的操作。

恢复:

1、将复制集中要恢复的节点移除
rs.remove("10.10.17.26:27000")
2、运行mongorestore --oplogReplay命令
mongorestore --host 10.10.17.26 --port 27000 --oplogReplay /data/mongodbbackup/20150820/
3、创建oplog
use local
db.createCollection("oplog.rs", {"capped" : true, "size" : 10000000})
4、恢复oplog
mongorestore --host 10.10.17.26 --port 27000 -d local -c oplog.rs /data/mongodbbackup/20150820/oplog.bson
5、将该节点加入到复制集
rs.add("10.10.17.26:27000")

 

4、mongodump与mongoexport的区别:

  • mongodump导出的是bson格式,是二进制形式,不过可以使用mongo自带的bsondump命令查看里面的数据,而mongoexport导出的则是文本,可以是csv、json格式。
  • JSON可读性强但体积较大,BSON则是二进制文件,体积小但对人类几乎没有可读性。
  • 在一些mongodb版本之间,BSON格式可能会随版本不同而有所不同,所以不同版本之间用mongodump/mongorestore可能不会成功,具体要看版本之间的兼容性。当无法使用BSON进行跨版本的数据迁移的时候,使用JSON格式即mongoexport/mongoimport是一个可选项。跨版本的mongodump/mongorestore个人并不推荐,实在要做请先检查文档看两个版本是否兼容(大部分时候是的)。
  • JSON虽然具有较好的跨版本通用性,但其只保留了数据部分,不保留索引,账户等其他基础信息。使用时应该注意。

 

 

 

转载于:https://www.cnblogs.com/williamjie/p/10301895.html

你可能感兴趣的文章
字符串的查找删除
查看>>
NOI2018垫底记
查看>>
Hive(7)-基本查询语句
查看>>
注意java的对象引用
查看>>
C++ 面向对象 类成员函数this指针
查看>>
NSPredicate的使用,超级强大
查看>>
自动分割mp3等音频视频文件的脚本
查看>>
判断字符串是否为空的注意事项
查看>>
布兰诗歌
查看>>
js编码
查看>>
Pycharm Error loading package list:Status: 403错误解决方法
查看>>
steps/train_sat.sh
查看>>
转:Linux设备树(Device Tree)机制
查看>>
iOS 组件化
查看>>
(转)Tomcat 8 安装和配置、优化
查看>>
(转)Linxu磁盘体系知识介绍及磁盘介绍
查看>>
tkinter布局
查看>>
命令ord
查看>>
Sharepoint 2013搜索服务配置总结(实战)
查看>>
博客盈利请先考虑这七点
查看>>