MongoDB的导入导出备份恢复总结

Posted cui_yonghua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB的导入导出备份恢复总结相关的知识,希望对你有一定的参考价值。

基础篇(能解决工作中80%的问题):

  1. MongoDB的概述、应用场景、下载方式、连接方式和发展历史等

  2. MongoDB数据类型、重要概念以及shell常用指令

  3. MongoDB文档的各种增加、更新、删除操作总结

  4. MongoDB各种查询操作总结

  5. MongoDB对列的各种操作总结

  6. MongoDB中的索引操作总结

进阶篇:

  1. MongoDB聚合操作总结

  2. MongoDB的导入导出、备份恢复总结

  3. MongoDB的用户管理总结

  4. MongoDB复制(副本集)总结

  5. MongoDB 分片总结

  6. MongoDB 遇见 spark(进行整合)

  7. MongoDB内部的存储原理

其它:

  1. python3操作MongoDB的各种案例

  2. MongoDB命令汇总

一. 导入导出

1.1 导出工具mongoexport

Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。

mongoexport具体用法如下所示:

mongoexport -d dbname -c collectionname -o file --type json/csv -f field

参数说明:

-d 数据库名
-c collection名
-o 输出的文件名
—type 输出的格式,默认为json
-f 输出的字段,如果—type为csv,则需要加上 -f “字段名”

示例:导出集合articles,字段 _id,author,dave,score,views

python@ubuntu:/home/mongodump$ sudo mongoexport -d itcast -c articles -o /home/mongodump/articles.json --type json -f  "_id,author,dave,score,views"
2016-09-15T20:33:50.870+0800    connected to: localhost
2016-09-15T20:33:50.871+0800    exported 7 records

1.2 数据导入 mongoimport

mongoimport具体用法如下所示:

mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field

参数说明:

-d 数据库名
-c collection名
—type 导入的格式,默认json
-f 导入的字段名
—headerline 如果导入的格式是csv,则可以使用第一行的标题作为导入的字段
—file 要导入的文件

示例:导入集合articles_import,字段 _id,author,dave,score,views

python@ubuntu:/home/mongodump$ sudo mongoimport -d itcast -c articles_import --file /home/mongodump/articles.json --type json
2016-09-15T20:41:05.682+0800    connected to: localhost
2016-09-15T20:41:05.706+0800    imported 7 documents

二. 备份恢复

2.1 为什么要定期进行数据库的备份

数据备份就是要保存数据的完整性,防止断电,病毒感染等等情况,使数据丢失。有必要的话,最好勤备份,防止数据丢失。

最主要的原因:要知道,在地球上网是很危险的,即使做好安全预防措施,也难免会发生不可预想的问题。

2.2 MongoDB数据备份

在Mongodb中使用mongodump命令来备份MongoDB数据。该命令可以导出所有数据到指定目录中。

mongodump --help: 可选参数列表

mongodump命令脚本语法如下:

mongodump -h dbhost -d dbname -o dbdirectory
-h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:需要备份的数据库实例,例如:test
-o:备份的数据存放位置,例如:/home/mongodump/,当然该目录需要提前建立,这个目录里面存放该数据库实例的备份数据。

案例:创建备份数据库存放位置,执行导出命令

python@ubuntu:~$ sudo rm -rf /home/mongodump/
python@ubuntu:~$ sudo mkdir -p /home/mongodump/
python@ubuntu:~$ sudo mongodump -h 192.168.17.129:27017 -d itcast -o /home/mongodump/

执行以上命令后,客户端会连接到ip为 192.168.17.129 端口号为 27017 的MongoDB服务上,并备份所有数据到 /home/mongodump/目录中。

2.3 MongoDB数据恢复

mongodb使用 mongorerstore 命令来恢复备份的数据。

mongorestore --help: 可选参数列表

语法: mongorestore命令脚本语法如下:

mongorestore -h dbhost -d dbname --dir dbdirectory
-h:MongoDB所在服务器地址
-d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
—dir:备份数据所在位置,例如:/home/mongodump/itcast/
—drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用!

接下来我们执行以下命令:

mongorestore -h 192.168.17.129:27017 -d itcast_restore --dir /home/mongodump/itcast/

以上是关于MongoDB的导入导出备份恢复总结的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB备份恢复与导出导入

python | MongoDB备份恢复与导出导入

mongodb 学习笔记 07 -- 数据备份恢复

mongodb导出导入

MongoDB基础之八 备份与恢复

Mongodb备份恢复到任意时间点