mongodb 007——备份恢复

7.1 备份恢复工具介绍:

(1) mongoexport/mongoimport
(2) mongodump/mongorestore

7.2 备份工具区别在哪里?

7.2.1 格式区别

mongoexport/mongoimport 导入/导出的是JSON格式或者CSV格式
mongodump/mongorestore 导入/导出的是BSON格式

7.2.2 可读性区别

JSON可读性强但体积较大,BSON则二进制文件,体积小但对人类几乎没有可读性

7.2.3 版本迁移区别

 在一些mongodb版本之间,BSON格式可能会随版本不同有所不同,所以不同版本之间用mongodump/mongorestore可能不会成功
 具体要看版本之间兼容性。当无法使用BSON进行跨版本的数据迁移的时候,使用JSON格式是一个可选项
 跨版本的mongodump/mongorestore不推荐,需要查看是否兼容

7.2.4 注意事项

JSON虽然有较好的跨版本通用性,但其只保留了数据部分,不保留索引,账户等其他基础信息。使用时注意。

7.3 应用场景总结

mongoexport/mongoimport:json csv
1 异构平台迁移 mysql <—> mongodb
2 同平台 跨大版本: mongodb 2 --> mongodb 3

mongoexport/mongoimport
日常备份恢复使用

7.4 详细说明

7.4.1 导出工具mongoexport

 mongodb中的mongoexport工具可以把一个collection导出成JSON或CSV格式的文件
可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。
 (1)版本差异较大
 (2)异构平台数据迁移

mongoexport具体用法如下所示:

[mongodb@node1 ~]$ mongoexport --help
参数说明:
-h:指明数据库宿主机的IP
-u:指明数据库的用户名
-p:指明数据库的密码
-d:指明数据库的名字
-c:指明collection的名字
-f:指明要导出哪些列
-o:指明要导出的文件名
-q:指明导出数据的过滤条件

–authenticationDatabase admin

7.4.1.1 单表备份至json格式

mongoexport -uroot -proot123 --port 27017  --authenticationDatabase  admin -d oldboy -c log -o /mongodb/log.json

注:备份文件的名字可以自定义,默认导出了JSON格式的数据

7.4.1.2 单表备份至CSV格式

如果我们需要csv格式的数据,则需要使用–type=csv参数

[mongodb@node1 ~]$ mongoexport -uroot -proot123 --port 27017  --authenticationDatabase admin -d oldboy -c log --type=csv -f uid,name,age,date -o /mongodb/log.csv

7.4.2 导入工具mongoimport

 mongodb中的mongoimport工具可以把一个特定格式文件中的内容导入到指定的collection中。
 该工具可以导入JSON格式数据,也可以导入csv格式数据。具体使用如下:

[mongodb@node1 ~]$ mongoimport --help
参数:
-h:指明数据库宿主机的IP
-u:指明数据库的用户名
-p:指明数据库的密码
-d: 指明数据库的名字
-c:指明collection的名字
-f:指明要导入的列
-j: --numInsertionWorkers //并行

数据恢复:

7.4.2.1 恢复json格式数据到log1

[mongodb@node1 mongodb]$ mongoimport -uroot -proot123 --port 27017 --authenticationDatabase admin -d oldboy -c log1 /mongodb/log.json 

7.4.2.2 恢复csv格式的文件到log2

 上面演示的是导入json格式的文件中的内容,如果要导入csv格式文件中的内容,则需要–type参数指定导入格式,具体如下:

注意:
(1)csv格式的文件头行,有列名字

[mongodb@node1 mongodb]$ mongoimport -uroot -proot123 --port 27017 --authenticationDatabase admin -d oldboy -c log2 --type=csv --headerline --file /mongodb/log.csv

–headerline:指明第一行是列明,不需要导入

(2)csv格式的文件头行,没有列名字

[mongodb@node1 mongodb]$ mongoimport -uroot -proot123 --port 27017 --authenticationDatabase admin -d oldboy -c log3 --type=csv -f id,n
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值