mongo备份篇 mongoexport、mongoimport 以及mongodump、mongorestore

发布时间 2023-11-02 22:23:38作者: GaoYanbing

系列导航

一、linux单机版mongo安装(带密码验证)

二、mongo集群搭建

三、java连接mongo数据库

四、java对mongo数据库增删改查操作

五、mongo备份篇 mongoexport、mongoimport 以及mongodump、mongorestore

如下是总结mongo数据库在执行备份和恢复中一些常用的语句。


备份方面比较:
1、mongoexport 可以指定集合中的字段,   mongodump最多到集合
2、mongoexport 可以带导出的过滤条件 -q, mongodump则不可以
3、mongoexport 可以导出json和csv格式,  mongodump导出的是bson可读性不如前者

4、mongodump   的速度和压缩率都最好,每秒125M的数据,压缩率达28%
5、mongodump   更适合全库备份,mongoexport更适合单个集合备份
 
恢复方面比较:
1、mongoimport  速度较快,但不保证数据完整导入 。
2、mongorestore 速度较慢,比mongoimport慢2.5倍左右,但是根据mongodump导出的数据,可以完整导入数据

 
----------------mongoexport使用样例begin-------------------

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
cd /opt/mongodb/bin
 
--数据导出
./mongoexport -h 192.168.0.10 -d testdb -c testcollection -q '{_id:{$in:["1193860277","1193860919","1193860428","1193860453","1193860364"]}}'  -o /opt/testcollection.json
参数解释:
-h 192.168.0.10   :192.168.0.10是主机ip
-d testdb         :testdb数据库
-c testcollection :testcollection是数据库中的集合
-q  后面跟的是查询条件(可选)
-o  后面跟的是备份的文件存放地址 例如:/opt/testcollection.json
 
--数据导入
./mongoimport -h 192.168.0.10:27017 -d testdb -c testcollection --type json --file /opt/testcollection.json
参数解释:
--type json  :表示导入的文件是json格式的备份文件
--file  后面跟导入的文件地址
 
 
例子:导出整个结合的样例
--导出person集合
./mongoexport  -d testdb -c person --type json -o /opt/person.json
  
--还原数据语句
cd /opt/mongodb/bin
./mongoimport  -d testdb -c person --type json --file /opt/person.json
 
备份一个时间段的数据样例 备份statTime时间 大于等于2019-01-01 并且小于2020-01-01这个时间段的数据
./mongoexport -h 192.168.0.10:27017   -d testdb -c person  -q '{"statTime":{$gte:Date('`date -d 2019-01-01 +%s000`'),$lt:Date('`date -d 2020-01-01 +%s000`')}}'  -o /opt/person.json
  
  
密码校验
如果mongo数据库是带密码验证的则需要使用如下语句
./mongoexport -h 192.168.0.10:27017 --authenticationDatabase admin -u dbuser -p dbpwd  -d testdb -c person    -o /opt/person.json
参数解释:
--authenticationDatabase admin :指验证用户名和密码的库是admin
-u dbuser : dbuser是数据库的用户名
-p dbpwd : dbpwd是数据库的密码

----------------mongoexport使用样例end-------------------
 

----------------mongodump使用样例begin--------------------

1
2
3
4
5
6
7
8
9
10
--备份
/opt/mongodb/bin/mongodump -h 192.168.0.10:27017  --authenticationDatabase admin -u dbuser -p dbpwd  -d testdb -c person  -o /opt
参数解释:
--authenticationDatabase admin :指验证用户名和密码的库是admin
-u dbuser : dbuser是数据库的用户名
-p dbpwd : dbpwd是数据库的密码
注:不用指定备份的文件名
 
--恢复
/usr/local/mongodb/bin/mongorestore -h 192.168.0.10:27017  --authenticationDatabase admin -u dbuser -p dbpwd  -d testdb -c person  /opt/person.bson

 



----------------mongodump使用样例end--------------------