mongodump是一个强大而灵活的工具,适用于各种备份需求。使用mongodump命令进行MongoDB数据备份。该命令可以导出所有数据到指定目录中。
mongodump命令可以通过参数指定导出的数据量级转存的服务器。
1. mongodump语法:
## 范例:
mongodump -h dbhost -d dbname -o dbdirectory
2.参数说明:
2.1 获取帮助命令
mongodump --help
2.2详细参数具体说明如下:
general options(通用选项) --help:输出帮助说明。 --version:输出版本号。 -v, --verbose:增加备份过程中日志详细程度,例如 -vvvv 以记录最详细的日志。 --quiet:备份过程中不输出日志。 connection options(连接选项) -h, --host:指定数据库地址,格式为 [:port]。如果端口未指定,默认为27017。 --port:指定端口号。 authentication and security options(认证与安全选项) -u, --username:指定用户名。 -p, --password:指定密码。 --authenticationDatabase:指定验证库。 --ssl:连接到启用了SSL的mongod或mongos实例。 --sslCAFile:包含证书授权机构根证书链的.pem文件。 --sslPEMKeyFile:包含证书和密钥的.pem文件。 --sslPEMKeyPassword:解密sslPEMKeyFile所需的密码(如果需要的话)。 namespace options(命名空间选项) -d, --db:指定要备份的数据库名。未指定则备份所有数据库(不包括local和admin)。 -c, --collection:指定要备份的集合名。未指定则备份整个数据库的所有集合。 output options(输出选项) -o, --out:指定备份数据的输出目录。 --gzip:使用gzip压缩存档备份和恢复,减少存储空间需求。 advanced options(高级选项) --archive:输出到单个存档文件,可以使用mongorestore直接恢复。 --oplog:导出在mongodump执行期间操作日志(oplog)的变化,可用来实现点时间恢复
PS: 参数较多,对于不同的使用场景,合理选择参数进行组合使用是提高效率和保护数据的关键 (^_^)…
2.3 常用参数
--host(数据库地址) --port(端口号) -u(用户名) -p(密码) --db(数据库名) --collection(集合名) -o或--out(输出目录)
3. 应用场景
定期备份:自动执行备份以防数据丢失,可以使用系统计划任务如cron来定期执行mongodump命令。
数据迁移:从一台服务器迁移数据到另一台,可以先用mongodump备份再用mongorestore恢复。
数据恢复:在数据丢失或损坏时,利用备份文件进行数据恢复。
测试环境搭建:使用生产环境的备份数据来恢复一个接近生产环境的测试数据库。
4. 注意事项:
在使用mongodump进行备份时,需要确保所使用的用户具有足够的权限。
备份过程中,mongodump会查询数据库然后将结果写入磁盘,这可能会对数据库性能造成一定影响,因此在低负载时段进行备份更佳。
5. 实践操作:
在此之前,可以查看下数据库的状态
## 安装目录的bin目录下(centos 为例),登录mongodb数据库
./mongo
## 查看数据库大小
> show dbs
admin 2.836GB
local 0.000GB
## 切换数据库
> use admin
admin 2.836GB
daanDB 0.000GB
local 0.000GB
nip 0.847GB
## 查看集合(表)
> show tables
system.users
system.version
templateInfoDo
test1
test2
mongodump在安装目录的bin目录下(centos 为例)
5.1 全库备份:
## 命令
```sql
./mongodump --host <host> --port <port> --db <dbname> --out <output_directory>
说明:
"–host
"–username
注意事项:
(1)确保您有访问MongoDB服务以及目标备份目录的足够权限。
(2)在生产环境中进行此操作时,建议在业务低峰时段执行,以减少对性能的影响。
(3)如果数据库较大,备份过程可能会占用大量的磁盘空间和网络资源。
备份全库
./mongodump -h localhost:27017 -o /data/backup
备份日志可以看到备份的进度,以及备份了哪些数据库及表:

5.2 备份指定数据库:
## 命令
mongodump -h <host>:<port> -d <db_name> -o <output_directory>
备份admin库,输出日志可以看到备份了哪些表及进度
[root@localhost bin]# ./mongodump -h localhost:27017 -d admin -o /data/backup
2024-07-15T09:47:54.424+0800 writing admin.system.users to
2024-07-15T09:47:54.424+0800 done dumping admin.system.users (4 documents)
2024-07-15T09:47:54.424+0800 writing admin.system.version to
2024-07-15T09:47:54.425+0800 done dumping admin.system.version (1 document)
2024-07-15T09:47:54.425+0800 writing admin.Test1.bak20230324 to
2024-07-15T09:47:54.425+0800 writing admin.Test1 to
2024-07-15T09:47:54.425+0800 writing admin.templateInfoDo to
2024-07-15T09:47:54.425+0800 writing admin.Test2 to
2024-07-15T09:47:54.427+0800 done dumping admin.templateInfoDo (159 documents)
2024-07-15T09:47:55.103+0800 done dumping admin.Test1 (1024 documents)
2024-07-15T09:47:57.425+0800 [#.......................] admin.Test1.bak20230324 380/5305 (7.2%)
2024-07-15T09:47:57.425+0800 [#######.................] admin.Test2 349231/1100271 (31.7%)
2024-07-15T09:47:57.425+0800
2024-07-15T09:48:00.425+0800 [#.......................] admin.Test1.bak20230324 402/5305 (7.6%)
2024-07-15T09:48:00.425+0800 [###############.........] admin.Test2 730945/1100271 (66.4%)
2024-07-15T09:48:00.425+0800
2024-07-15T09:48:03.425+0800 [##......................] admin.Test1.bak20230324 499/5305 (9.4%)
2024-07-15T09:48:03.425+0800 [####################....] admin.Test2 930951/1100271 (84.6%)
2024-07-15T09:48:03.425+0800
2024-07-15T09:48:06.425+0800 [##......................] admin.Test1.bak20230324 630/5305 (11.9%)
2024-07-15T09:48:06.425+0800 [######################..] admin.Test2 1053370/1100271 (95.7%)
2024-07-15T09:48:06.425+0800
2024-07-15T09:48:09.425+0800 [####....................] admin.Test1.bak20230324 972/5305 (18.3%)
2024-07-15T09:48:09.425+0800 [######################..] admin.Test2 1053370/1100271 (95.7%)
2024-07-15T09:48:09.425+0800
2024-07-15T09:48:12.425+0800 [####....................] admin.Test1.bak20230324 1099/5305 (20.7%)
2024-07-15T09:48:12.425+0800 [#######################.] admin.Test2 1055641/1100271 (95.9%)
2024-07-15T09:48:12.425+0800
2024-07-15T09:48:15.425+0800 [#####...................] admin.Test1.bak20230324 1234/5305 (23.3%)
2024-07-15T09:48:15.425+0800 [#######################.] admin.Test2 1055641/1100271 (95.9%)
2024-07-15T09:48:15.425+0800
2024-07-15T09:48:18.425+0800 [#####...................] admin.Test1.bak20230324 1279/5305 (24.1%)
2024-07-15T09:48:18.425+0800 [#######################.] admin.Test2 1055641/1100271 (95.9%)
2024-07-15T09:48:18.425+0800
2024-07-15T09:48:21.425+0800 [#######.................] admin.Test1.bak20230324 1657/5305 (31.2%)
2024-07-15T09:48:21.425+0800 [#######################.] admin.Test2 1071558/1100271 (97.4%)
2024-07-15T09:48:21.425+0800
2024-07-15T09:48:24.425+0800 [#######.................] admin.Test1.bak20230324 1722/5305 (32.5%)
2024-07-15T09:48:24.425+0800 [#######################.] admin.Test2 1078377/1100271 (98.0%)
2024-07-15T09:48:24.425+0800
2024-07-15T09:48:27.425+0800 [#######.................] admin.Test1.bak20230324 1763/5305 (33.2%)
2024-07-15T09:48:27.425+0800 [#######################.] admin.Test2 1089745/1100271 (99.0%)
2024-07-15T09:48:27.425+0800
2024-07-15T09:48:30.425+0800 [########................] admin.Test1.bak20230324 1790/5305 (33.7%)
2024-07-15T09:48:30.425+0800 [#######################.] admin.Test2 1098583/1100271 (99.8%)
2024-07-15T09:48:30.425+0800
2024-07-15T09:48:33.425+0800 [########................] admin.Test1.bak20230324 1805/5305 (34.0%)
2024-07-15T09:48:33.425+0800 [#######################.] admin.Test2 1098583/1100271 (99.8%)
2024-07-15T09:48:33.425+0800
2024-07-15T09:48:34.618+0800 [########################] admin.Test2 1100271/1100271 (100.0%)
2024-07-15T09:48:34.667+0800 done dumping admin.Test2 (1100271 documents)
2024-07-15T09:48:36.425+0800 [########................] admin.Test1.bak20230324 1825/5305 (34.4%)
2024-07-15T09:48:39.425+0800 [########................] admin.Test1.bak20230324 1857/5305 (35.0%)
2024-07-15T09:48:42.425+0800 [########................] admin.Test1.bak20230324 1894/5305 (35.7%)
2024-07-15T09:48:45.425+0800 [########................] admin.Test1.bak20230324 1963/5305 (37.0%)
2024-07-15T09:48:48.425+0800 [############............] admin.Test1.bak20230324 2702/5305 (50.9%)
2024-07-15T09:48:51.425+0800 [###############.........] admin.Test1.bak20230324 3436/5305 (64.8%)
2024-07-15T09:48:54.425+0800 [################........] admin.Test1.bak20230324 3634/5305 (68.5%)
2024-07-15T09:48:57.425+0800 [##################......] admin.Test1.bak20230324 4093/5305 (77.2%)
2024-07-15T09:49:00.425+0800 [###################.....] admin.Test1.bak20230324 4394/5305 (82.8%)
2024-07-15T09:49:03.264+0800 [########################] admin.Test1.bak20230324 5305/5305 (100.0%)
2024-07-15T09:49:03.286+0800 done dumping admin.Test1.bak20230324 (5305 documents)
备份后查看备份文件:以库名为目录,下层备份文件以bson及json为扩展名,按集合(表)存放


5.3 备份指定集合:
[root@localhost bin]# ./mongodump -h localhost:27017 -d admin -c test1 -o /data/backup
2024-07-15T10:19:24.577+0800 writing admin.test1 to
2024-07-15T10:19:27.577+0800 [#######################.] admin.test1 675/702 (96.2%)
2024-07-15T10:19:29.457+0800 [########################] admin.test1 1024/702 (145.9%)
2024-07-15T10:19:29.457+0800 done dumping admin.test1 (1024 documents)
5.4 压缩备份:
可以添加–gzip参数来进行Gzip压缩存档备份和恢复
[root@localhost bin]# ./mongodump -h localhost:27017 -d admin -c Test1 -o /data/backup --gzip
2024-07-15T10:27:08.566+0800 writing admin.Test1 to
2024-07-15T10:27:11.566+0800 [###.....................] admin.Test1 111/702 (15.8%)
2024-07-15T10:27:14.566+0800 [########................] admin.Test1 242/702 (34.5%)
2024-07-15T10:27:17.566+0800 [#############...........] admin.Test1 409/702 (58.3%)
2024-07-15T10:27:20.566+0800 [#####################...] admin.Test1 615/702 (87.6%)
2024-07-15T10:27:23.566+0800 [######################..] admin.Test1 655/702 (93.3%)
2024-07-15T10:27:26.566+0800 [########################] admin.Test1 718/702 (102.3%)
2024-07-15T10:27:29.566+0800 [########################] admin.Test1 776/702 (110.5%)
2024-07-15T10:27:32.566+0800 [########################] admin.Test1 843/702 (120.1%)
2024-07-15T10:27:35.566+0800 [########################] admin.Test1 908/702 (129.3%)
2024-07-15T10:27:38.566+0800 [########################] admin.Test1 979/702 (139.5%)
2024-07-15T10:27:41.566+0800 [########################] admin.Test1 1019/702 (145.2%)
2024-07-15T10:27:41.941+0800 [########################] admin.Test1 1024/702 (145.9%)
2024-07-15T10:27:41.941+0800 done dumping admin.Test1 (1024 documents)
备份后的路径及文件名:/data/backup/admin/test1.bson.gz
PS : 正确使用mongodump可以有效保护数据安全,同时在必要时方便地进行数据迁移和恢复。




