利用mongodump工具导出MongoDB数据的快速指南

1. 什么是mongodump

mongodump是MongoDB官方提供的一个用于备份数据库的工具,它能将MongoDB中的数据以二进制格式导出到指定目录中。备份后的数据可以用mongorestore工具进行恢复。

mongodump工具的优点:

简单易用,无需安装插件或扩展

备份速度快

可备份特定集合或整个数据库

2. 安装mongodump

mongodump属于MongoDB自带的工具,因此安装MongoDB后即可使用mongodump。

安装MongoDB官方步骤:

MongoDB官网下载对应版本的MongoDB

解压下载文件并将MongoDB的bin目录添加至环境变量中

运行mongod命令开启MongoDB服务

3. 使用mongodump备份MongoDB数据

3.1 备份指定数据库

若要备份MongoDB中的指定数据库,可以使用如下命令:

mongodump --db my_database --out /data/my_backup/

其中:

--db参数后的值指定要备份的数据库名称

--out参数后的值指定备份数据的输出目录

备份成功后,可以在输出目录下看到生成的备份文件:

drwxr-xr-x  4 root root 4096 Jan 17 16:20 my_database

备份技巧:

若要备份多个数据库,可以多次使用上述命令

备份数据时,最好使用绝对路径指定输出目录

3.2 备份指定集合

若要备份MongoDB中的指定集合,可以使用如下命令:

mongodump --db my_database --collection my_collection --out /data/my_backup/

其中:

--collection参数后的值指定要备份的集合名称

3.3 备份整个MongoDB实例

若要备份整个的MongoDB实例,可以使用如下命令:

mongodump --out /data/my_backup/

备份成功后,可以在输出目录下看到生成的备份文件:

drwxr-xr-x  4 root root 4096 Jan 17 16:20 my_database

drwxr-xr-x 4 root root 4096 Jan 17 16:20 my_another_database

4. mongodump命令常用选项

以下是mongodump命令的部分常用选项:

选项 说明
--host 指定MongoDB所在主机地址,默认为本机
--port 指定MongoDB所使用的端口,默认为27017
--username,--password 指定MongoDB管理员账号和密码
--gzip 备份时产生gzip压缩格式的输出文件

5. 使用mongorestore恢复MongoDB数据

使用mongodump备份MongoDB数据的好处在于备份数据的格式为MongoDB独有格式,因此无需对数据进行额外的处理就可以直接使用mongorestore进行恢复。

恢复备份的MongoDB数据,可以使用如下命令:

mongorestore /data/my_backup/

恢复成功后,可以在指定的数据库或集合中看到之前备份的数据:

mongodb://localhost:27017/my_database    此处需替换成指定的MongoDB地址和端口号

+ my_collection.bson

+ my_collection.metadata.json

6. 对mongodump命令的一些常见问题

6.1 mongodump操作提示没有权限

出现原因:

当前使用的用户无备份系统数据的权限。

解决办法:

使用管理员账户进行备份操作。

6.2 mongodump备份集合为空

出现原因:

该集合中无数据,或者mongo实例的可读性级别过高(在MongoDB4.x中,如果将ReadConcern设置为“majority”,则mongodump命令只能备份包含大量数据的集合)。

解决办法:

在已知集合中存在数据的情况下,切换到该集合所在的数据库并重新备份。如果仍然无法备份,则检查mongo实例的可读性级别设置。

7. 结论

mongodump是MongoDB提供的一个非常方便的备份数据工具,可以用于备份单个数据库、单个集合或整个MongoDB实例。备份数据文件产生的格式是二进制文件,无需经过额外的处理就可以直接使用mongorestore工具进行恢复。对于备份MongoDB数据的场景,mongodump是一个值得推荐的选择。

数据库标签