如何使用mongodb备份和恢复所有数据库?

时间:2013-01-30 04:57:58

标签: mongodb backup mongodump mongorestore database

如果我想为mongodb 中的所有数据库执行通用备份,那么我所要做的就是:

$ mongodump

如果我想恢复我创建的最新转储,我需要做的就是:

$ mongorestore
  • mongodump的备份存储在哪里?
  • 如何为要还原的所有数据库指定特定转储?

2 个答案:

答案 0 :(得分:7)

备份存储在您使用命令行中的--out选项指定的目录中。如果未指定任何输出目录,则备份将放在./dump目录中。使用mongorestore,您必须将之前转储的目录指定为命令行参数。

在分片环境中,如果通过mongos使用mongodump,备份将被展平。恢复后,您将不得不重新收集集合。所以恢复并不总是毫不费力。见文档: http://docs.mongodb.org/manual/tutorial/backup-small-sharded-cluster-with-mongodump/

您也可以直接转储db文件夹,检查cli选项。

对于分片群集,您可以在此处检查可能性:http://docs.mongodb.org/manual/administration/backups/#sharded-cluster-backups

答案 1 :(得分:0)

全部恢复 mongorestore --host= --port= --username= --authenticationDatabase= --nsInclude "."

全部备份 mongodump --ssl --host --port -p --authenticationDatabase -u -p --out

如果要备份数据库,请使用: mongodump --ssl --host --port -p --authenticationDatabase -u -p --out

如果数据库启用了 ssl 包括 --ssl 标志 如果不包括 --out mongodump 将创建一个“/dump”目录。 在转储或指定的备份目录中,您将找到包含数据库名称的目录,在每个目录中,您将找到备份文件,对于每个集合,您将找到一个“.bson”和一个“.metadata”。 json"

要恢复所有数据库,请使用: mongorestore --ssl --host= --port= --username= --authenticationDatabase= --nsInclude "."

同样,如果数据库启用了 ssl,则包括 --ssl 标志,如果不只是将其删除。 “--nsInclude”标志告诉 mongorestore 您要恢复哪些数据库或集合。 例子: --nsInclude=test.users(这将备份数据库测试的用户集合,因此如果转储的路径不是该特定数据库的 users.bson 的路径,则会失败)

要包含所有数据库和所有集合,请使用 --nsInclude=. 或 --nsInclude . 然后定义备份的所有集合目录的路径