《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常用参数。

《Linux运维实战:使用mongoexport和mongoimport备份与恢复Mongodb数据》_第1张图片


2.2、mongoimport参数详解

说明:这里主要介绍mongoimport常用参数。
《Linux运维实战:使用mongoexport和mongoimport备份与恢复Mongodb数据》_第2张图片


三、备份与恢复操作

3.1、环境信息

主机IP 操作系统 软件版本
192.168.1.191 Centos7.6 Mongodb3.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系统运维指南》

你可能感兴趣的:(《Linux运维实战总结》,python,开发语言,mongodb备份与恢复)