mongoDB全量备份和恢复
mongoDB全量备份
使用 mongodump 工具:
mongodump 是MongoDB自带的一个命令行工具,它用于导出MongoDB数据库的数据。这个工具可以用来创建一个指定数据库或集合的快照。
mongodump --host <hostname> --port <port> --db <database_name> --out <output_directory>
如果需要备份所有数据库,可以省略 --db
参数。
mongodump --host localhost --port 27017 --out /bakcup/mongo/
使用密码备份
mongodump --host localhost --port 27017 --out /bakcup/mongo/ --username mongo --password 12345
恢复mongoDB数据
恢复MongoDB数据库的过程与备份类似,通常使用 mongorestore
工具来从备份中恢复数据。以下是一些关键步骤和选项,以帮助你成功地恢复数据库:
基本命令
mongorestore --host <hostname> --port <port> --username <user> --password <password> --authenticationDatabase admin --dir=<backup_directory>
恢复
mongorestore --host localhost --port 27017 --username mongo --password mongo --authenticationDatabase admin --dir=/opt/2025-01-13/
参数说明
--host <hostname>
: MongoDB服务器的主机名。--port <port>
: MongoDB服务监听的端口,默认是27017。--username <user>
和--password <password>
: 用于认证的用户名和密码。--authenticationDatabase admin
: 指定认证数据库,通常是admin
数据库,不用修改。--dir=<backup_directory>
: 包含备份文件的目录路径。
注意事项
-
权限:
确保用于执行mongorestore
的用户具有足够的权限来写入目标数据库。这通常需要readWrite
或更高权限的角色。 -
覆盖现有数据:
默认情况下,mongorestore
不会覆盖现有的数据。如果你希望覆盖已有的集合,请使用--drop
参数。请注意,这将删除现有集合中的所有文档,然后重新插入备份的数据。mongorestore --drop ...
-
选择性恢复:
如果只需要恢复某个特定的数据库或集合,可以指定它们作为参数:-
恢复单个数据库:
mongorestore --db <database_name> ...
-
恢复单个集合:
mongorestore --nsInclude "<database_name>.<collection_name>" ...
-