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

如何使用mongodb备份和恢复所有数据库?,mongodb,backup,mongodump,mongorestore,database,Mongodb,Backup,Mongodump,Mongorestore,Database,如果我想对mongodb中的所有数据库执行常规的备份,我需要做的是: $ mongodump $ mongorestore 如果我想恢复我创建的最新转储,我需要做的就是: $ mongodump $ mongorestore mongodump的备份存储在哪里? 如何为要还原的所有数据库指定特定转储? 备份存储在您使用命令行中的--out选项指定的目录中。如果未指定任何输出目录,则备份将放置到./dump目录。对于mongorestore,您必须将以前转储的目录指定为命令行参数 在分片

如果我想对mongodb中的所有数据库执行常规的备份,我需要做的是:

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

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

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

在分片环境中,如果通过mongos使用mongodump,备份将被展平。恢复后,您必须重新切分集合。因此,恢复并不总是毫不费力的。见文件:

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

对于分片群集,您可以在此处检查可能性:

全部还原 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集合,因此,如果转储的路径不是该特定数据库的users.bson的路径,则将失败)

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

,因此,如果我只是通过unix终端执行mongodump,它是一个分片环境吗?实际上,如果我在我的mongodump的同一父目录上执行了mongostore。
/dump
,我没有指定目录,它完美地恢复了数据库。这取决于您的数据库是否被切分。如果没有,则必须完全修复。如果您有切分,您必须采取进一步的步骤。但我认为mongodb会自动切分数据库中的集合?一旦您设置了切分集群,该操作将自动进行平衡。但是,设置分片环境、添加/删除节点是手动的,而且相当困难。选中此项: