Mongodb的入门(5)备份与还原

这次主要说mongodb的备份:mongodump  

  参考菜鸟:http://www.runoob.com/mongodb/mongodb-mongodump-mongorestore.html

备份和还原用到的参数:   

  -h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号
  -d:需要备份的数据库实例 huhy
  -o:备份的数据存放位置,在备份完成后,系统自动在dump目录下建立一个huhy目录,这个目录里面存放该数据库实例的备份数据。
  -u:开启权限验证的数据库的用户名:huhy
  -p:开启权限验证的数据库密码:123456
  --authenticationDatabase:mongodb开启权限验证的数据库
  -c:指明collection的名字
  -q:指明导出数据的过滤条件

  -oplog:

备份的命令解析:

  

--备份所有库    只要密码验证通过,不指定备份库就会把所有库数据做备份    
mongodump  -u  huhy -p huhy123 --authenticationDatabase admin  --port 27017 -o D:\company\mongodb\dump    


--备份单个库
mongodump  -u  yang -p 123456 -h 127.0.0.1 --port 27017  --authenticationDatabase huhy -d huhy  -o  D:\company\mongodb\dump


--备份单个表
mongodump -u  yang -h 127.0.0.1 -p 123456  --port 27017 --authenticationDatabase huhy -d huhy -c a -o /backup/mongodb/myTest_d_bak_201507021701.bak
 

--备份所有库推荐使用添加--oplog参数的命令,这样的备份是基于某一时间点的快照,只能用于备份全部库时才可用,单库和单表不适用: 备份的数据是json格式
mongodump -u  huhy -p huhy123   -h 127.0.0.1 --port 27017 --authenticationDatabase admin  -d huhy -oplog -o D:\company\mongodb\dump

--备份所有库  默认放在  MONGODB_HOME/bin/dump     不加 --authenticationDatabase   默认认证的库就是 admin
mongodump -u  huhy -p huhy123        --这个用户是在admin里的用户,如果使用yang这个用户,必须指定认证库,不然报认证失败

 


 还原:mongorestore 

--同时,恢复时也要加上--oplogReplay参数,具体命令如下(下面是恢复单库的命令):
mongorestore -u  yang -p 123456 --port 27017  --authenticationDatabase huhy  -d huhy --oplogReplay  D:\company\mongodb\dump\huhy

--恢复单个库:
mongorestore  -u  yang -p 123456 --port 27017  --authenticationDatabase huhy -d huhy   D:\company\mongodb\dump

--恢复所有库:
mongorestore   -u  yang -p 123456 --port 27017  --authenticationDatabase huhy  D:\company\mongodb\dump

--恢复单表
mongorestore -u  yang -p 123456  --authenticationDatabase huhy -d huhy -c a D:\company\mongodb\dump\huhy\a.bson

mongdump和mongoexport对比:

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

mongorestore和mongoinport与此同理

 

  

  

posted @ 2018-08-03 18:05  陽66  阅读(219)  评论(0)    收藏  举报