• mongodump 和mongorestore


    --备份单个表
    
    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虽然具有较好的跨版本通用性,但其只保留了数据部分,不保留索引,账户等其他基础信息。使用时应该注意。

  • 相关阅读:
    [转]几个开源的.net界面控件
    电脑上设置对眼睛友好的绿豆沙色
    [转] C# 绘制报表,使用Graphics.DrawString 方法
    Excel 绘制图表,如何显示横轴的数据范围
    [转] C#中绘制矢量图形
    Chapter 3 Protecting the Data(3):创建和使用数据库角色
    续x奇数倍(n+2*x)暴力算法是冠军的算法结合数量
    新秀学习SSH(十四)——Spring集装箱AOP其原理——动态代理
    中国是大数据的人工智能的发源地
    采用shell脚本统计代码的行数
  • 原文地址:https://www.cnblogs.com/cchilei/p/12786291.html
Copyright © 2020-2023  润新知