1、mongodump备份工具
-
mongodump能够在Mongodb运行时进行备份,它的工作原理是对运行的Mongodb做查询,然后将所有查到的文档写入磁盘。
-
mongodump的参数与mongoexport的参数基本一致。
mongodump关键参数如下所示:
mongodump --help查看帮助命令
-
-h,–host :代表远程连接的数据库地址,默认连接本地Mongo数据库;
-
–port:代表远程连接的数据库的端口,默认连接的远程端口27017;
-
-u,–username:代表连接远程数据库的账号,如果设置数据库的认证,需要指定用户账号;
-
-p,–password:代表连接数据库的账号对应的密码;
-
-d,–db:代表连接的数据库;
-
-c,–collection:代表连接数据库中的集合;
-
-o, --out:代表导出的文件输出目录;
-
-q, --query:代表查询条件;
-
-j,–numParallelCollections =要并行转储的集合数(默认为4)
-
–gzip,使用Gzip压缩存档;
-
–oplog,使用oplog进行时间点快照;
-
–authenticationDatabase,指定用户鉴定库
2、使用 mongodump备份单库
mongodump -h 172.16.254.130 --authenticationDatabase admin --port 27017 -u root -d db5 -o /mongodb/backup
Enter password:
2021-03-30T16:49:36.314+0800 writing db5.db5 to /mongodb/backup/db5/db5.bson
2021-03-30T16:49:37.803+0800 done dumping db5.db5 (779617 documents)
使用mongorestore恢复
mongorestore -h 172.16.254.130 --authenticationDatabase admin --port 27017 -u root -d db5 /mongodb/backup/db5/
Enter password:
2021-03-30T17:09:24.404+0800 the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead
2021-03-30T17:09:24.405+0800 building a list of collections to restore from /mongodb/backup/db5 dir
2021-03-30T17:09:24.406+0800 reading metadata for db5.db5 from /mongodb/backup/db5/db5.metadata.json
2021-03-30T17:09:24.505+0800 restoring db5.db5 from /mongodb/backup/db5/db5.bson
2021-03-30T17:09:27.403+0800 [######..................] db5.db5 21.4MB/80.3MB (26.7%)
2021-03-30T17:09:30.403+0800 [#############...........] db5.db5 44.0MB/80.3MB (54.8%)
2021-03-30T17:09:33.407+0800 [####################....] db5.db5 67.0MB/80.3MB (83.5%)
2021-03-30T17:09:35.172+0800 [########################] db5.db5 80.3MB/80.3MB (100.0%)
2021-03-30T17:09:35.172+0800 no indexes to restore
2021-03-30T17:09:35.172+0800 finished restoring db5.db5 (779617 documents, 0 failures)
2021-03-30T17:09:35.172+0800 779617 document(s) restored successfully. 0 document(s) failed to restore.
3、使用 mongodump备份全库
备份全库
mongodump -h 172.16.254.130 --authenticationDatabase admin --port 27017 -u admin -o /mongodb/backup
Enter password:
2021-03-30T17:50:45.221+0800 writing admin.system.users to /mongodb/backup/admin/system.users.bson
2021-03-30T17:50:45.222+0800 done dumping admin.system.users (5 documents)
2021-03-30T17:50:45.222+0800 writing admin.system.version to /mongodb/backup/admin/system.version.bson
2021-03-30T17:50:45.224+0800 done dumping admin.system.version (2 documents)
2021-03-30T17:50:45.225+0800 writing db6.db6 to /mongodb/backup/db6/db6.bson
2021-03-30T17:50:45.295+0800 writing db5.db5 to /mongodb/backup/db5/db5.bson
2021-03-30T17:50:46.720+0800 done dumping db5.db5 (779617 documents)
2021-03-30T17:50:46.907+0800 done dumping db6.db6 (900000 documents)
删除db5和db6
> show dbs
admin 0.000GB
config 0.000GB
db5 0.019GB
db6 0.021GB
local 0.000GB
> use db6
switched to db db6
> db.dropDatabase()
{ "dropped" : "db6", "ok" : 1 }
> use db5
switched to db db5
> db.dropDatabase()
{ "dropped" : "db5", "ok" : 1 }
还原全库
mongorestore -h 172.16.254.130 --authenticationDatabase admin --port 27017 -u admin /mongodb/backup/
Enter password:
2021-03-30T17:52:48.248+0800 preparing collections to restore from
2021-03-30T17:52:48.254+0800 reading metadata for db6.db6 from /mongodb/backup/db6/db6.metadata.json
2021-03-30T17:52:48.322+0800 reading metadata for db5.db5 from /mongodb/backup/db5/db5.metadata.json
2021-03-30T17:52:48.390+0800 restoring db6.db6 from /mongodb/backup/db6/db6.bson
2021-03-30T17:52:48.414+0800 restoring db5.db5 from /mongodb/backup/db5/db5.bson
2021-03-30T17:52:51.249+0800 [#####...................] db6.db6 20.0MB/92.7MB (21.6%)
2021-03-30T17:52:51.249+0800 [######..................] db5.db5 20.1MB/80.3MB (25.0%)
2021-03-30T17:52:51.249+0800
2021-03-30T17:52:54.253+0800 [##########..............] db6.db6 40.7MB/92.7MB (43.9%)
2021-03-30T17:52:54.253+0800 [###########.............] db5.db5 40.0MB/80.3MB (49.8%)
2021-03-30T17:52:54.253+0800
2021-03-30T17:52:57.249+0800 [################........] db6.db6 62.1MB/92.7MB (67.0%)
2021-03-30T17:52:57.249+0800 [##################......] db5.db5 60.7MB/80.3MB (75.6%)
2021-03-30T17:52:57.249+0800
2021-03-30T17:53:00.113+0800 [########################] db5.db5 80.3MB/80.3MB (100.0%)
2021-03-30T17:53:00.113+0800 no indexes to restore
2021-03-30T17:53:00.113+0800 finished restoring db5.db5 (779617 documents, 0 failures)
2021-03-30T17:53:00.248+0800 [#####################...] db6.db6 83.0MB/92.7MB (89.6%)
2021-03-30T17:53:01.498+0800 [########################] db6.db6 92.7MB/92.7MB (100.0%)
2021-03-30T17:53:01.498+0800 no indexes to restore
2021-03-30T17:53:01.498+0800 finished restoring db6.db6 (900000 documents, 0 failures)
2021-03-30T17:53:01.498+0800 restoring users from /mongodb/backup/admin/system.users.bson
2021-03-30T17:53:01.540+0800 1679617 document(s) restored successfully. 0 document(s) failed to restore.
可以看到已经还原成功。