《Linux运维实战:使用mongoexport和mongoimport备份与恢复Mongodb数据》

一、备份与恢复方案

Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据,只支持导出集合(collection),不支持导出库。

由于mongodb实例里面的数据类型是BSON的数据类型,而JSON是无法真正表达所有BSON的数据类型,只能表达BSON数据类型的一个子集,准确的说,JSON对某些BSON数据类型使用的是严格模式(strict mode)。例如BSON里面对于时间有Date这种数据类型,而转成JSON格式的时候就是一个字符串类型来代表Date,显然这种表示方式会丢掉一些数据类型。

所以对于线上正式环境,如果数据类型很多,尽量避免使用mongoexport,mongoimport导出导入数据。以免丢掉源库中的某些数据类型。

查阅:Mongodb原生导入导出工具对比


二、备份与恢复参数

2.1、mongoexport参数详解

说明:这里主要介绍mongoexport常用参数。

在这里插入图片描述


2.2、mongoimport参数详解

说明:这里主要介绍mongoimport常用参数。
在这里插入图片描述


三、备份与恢复操作

3.1、环境信息

主机IP操作系统软件版本
192.168.1.191Centos7.6Mongodb3.2.22

3.2、备份操作

说明:当前环境的mongodb服务是采用容器部署的,这里的/data/backup是指容器中的备份目录,备份文件会存放在这个目录下,你也可以将容器中的/data/backup目录映射为当前宿主机上的某一目录。


导出某集合所有数据

[root@localhost ~]# docker exec mongo-single bash -c 'mongoexport --host 127.0.0.1:27017 -u lolaage -p 123456 -d possecu -c PersonLogin --type json -o /data/backup/PersonLogin.json'

说明:

-u:用户
-p:密码
-d:指定恢复的库名
-c: 指定恢复的集合
--type:指定数据类型
-o: 指定备份后的文件

3.2、恢复操作

导入某集合所有数据

[root@localhost ~]# docker exec mongo-single bash -c 'mongoimport --host 127.0.0.1:27017 -u lolaage -p 123456 -d possecu -c PersonLogin --type json --file /data/backup/PersonLogin.json --drop'

说明:

--host:指定ip和端口
-u:用户
-p:密码
-d:指定恢复的库名
-c: 指定恢复的集合
--type:指定数据类型
--file: 指定恢复文件
--drop:恢复数据之前删除原来集合数据,避免数据重复

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《Linux运维篇:Linux系统运维指南》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值