【发布时间】:2013-01-30 04:57:57
【问题描述】:
如果我想为 mongodb 中的所有数据库做一个通用的备份,我所要做的就是:
$ mongodump
如果我想恢复我创建的最新转储,我需要做的就是:
$ mongorestore
- mongodump 的备份存储在哪里?
- 如何为要恢复的所有数据库指定特定转储?
【问题讨论】:
标签: mongodb backup mongodump mongorestore database
如果我想为 mongodb 中的所有数据库做一个通用的备份,我所要做的就是:
$ mongodump
如果我想恢复我创建的最新转储,我需要做的就是:
$ mongorestore
【问题讨论】:
标签: mongodb backup mongodump mongorestore database
备份存储在您在命令行中使用 --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
【讨论】:
/dump 的同一个父目录上做了一个 mongostore,我没有指定目录,它完美地恢复了数据库。
全部恢复 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.xml”。 json"
要恢复所有数据库,请使用: mongorestore --ssl --host= --port= --username= --authenticationDatabase= --nsInclude "."
再次,如果数据库启用了 ssl,则包括 --ssl 标志,如果不只是删除它。 “--nsInclude”标志告诉 mongorestore 您要恢复哪些数据库或集合。 例子: --nsInclude=test.users(这将备份数据库测试的用户集合,因此如果转储路径不是该特定数据库的 users.bson 的路径,则会失败)
要包含所有数据库和所有集合,请使用 --nsInclude=. 或 --nsInclude . 然后定义备份的所有收集目录的路径
【讨论】: