使用 mongorestore 还原 MongoDB 数据库

发布于

如果已使用该实用程序备份了数据库,则可以使用该实用程序还原它。mongodump``mongorestore

该实用程序将数据从 创建的二进制数据库转储或标准输入加载到 or 实例中。mongorestore``mongodump``mongod``mongos

检查MongoDB数据库工具

该实用程序是MongoDB数据库工具包的一部分。MongoDB数据库工具是一套用于使用MongoDB的命令行实用程序。mongorestore

如果您不确定是否安装了MongoDB数据库工具/。尝试在终端或命令提示符下运行以下命令进行检查:mongorestore

mongorestore --version

如果您没有它,您可以使用MongoDB网站上的安装说明将其安装到您的系统上。

在哪里运行命令?

您需要从系统的命令行(例如,新的终端或命令提示符窗口)运行命令。mongorestore

不要从 shell 运行它们。mongo

从目录中还原所有数据库

以下命令还原已备份到目录的所有数据库:dump/

mongorestore dump/

此示例将数据库还原到在默认端口 27017 上运行的本地实例。我们知道这一点,因为我们没有提供任何主机、端口、身份验证信息等。

还原特定数据库

可以使用该参数指定要还原的数据库。--nsInclude

例:

mongorestore --nsInclude="PetHotel.*" dump/

在本例中,我们还原了数据库。我们恢复了所有集合,因为我们使用星号通配符 () 来指定所有集合。PetHotel``*

还原特定集合

还可以使用该参数指定要还原的集合。--nsInclude

例:

mongorestore --nsInclude="PetHotel.pets" dump/

此示例从数据库还原宠物集合。如果数据库不存在,则使用单个集合 () 创建数据库。PetHotel``pets

此示例与上一个示例几乎相同,只是我们没有使用星号通配符 () 指定所有集合,而是显式指定了要还原的集合。*

重命名集合

可以使用 和 参数为集合指定新名称。--nsFrom``--nsTo

例:

mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' dump/

这会将集合重命名为 。pets``pets2

请注意,上面的代码还会还原目录中的所有其他数据库和集合。唯一的区别是集合还原为 .dump/``pets``pets2

如果只想还原单个集合(并在此过程中重命名它),请使用该参数。--nsInclude

例:

mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' --nsInclude="PetHotel.pets" dump/

重命名数据库

可以使用相同的概念来重命名数据库。只需使用 和 参数为数据库指定新名称。--nsFrom``--nsTo

例:

mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHouse.pets' --nsInclude="PetHouse.*" dump/

在本例中,我将数据库重命名为 .PetHotel``PetHouse

请注意,该参数指定_新的_数据库名称。此外,我使用星号通配符 () 来恢复该数据库中的所有集合。--nsInclude``*

排除集合

可以使用该参数指定要从还原过程中_排除_的集合。--nsExclude

例:

mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" dump/

该示例还原数据库中除集合之外的所有集合。PetHotel``dogs

可以使用多次从还原过程中排除多个集合。--nsExclude

例:

mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" --excludeCollection="employees" dump/

访问控制/身份验证

前面的示例是使用默认端口在本地计算机上完成的。这意味着我们能够在不指定 、、 等内容的情况下运行。mongodump``--host``--port``--username

下面是使用这些参数进行身份验证的示例:homer

mongorestore --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin /backups/mongodump-2020-12-30

我们也可以使用该参数,但我们没有。如果通过但未通过,系统将提示您输入密码。--password``--user``--password

从压缩文件还原

可以使用该参数从 创建的压缩文件或数据流进行恢复。--gzip``mongodump --gzip

例:

mongorestore --gzip  --nsInclude="krankykranes.*" dump3/

安静模式

您可以使用该参数来限制终端或命令提示符窗口中的输出。--quiet

mongorestore --quiet

如果不使用它,您可能会看到一大堆已还原的视图、集合等。

详细模式

另一方面,您可以使用 or 参数来_增加_终端或命令提示符窗口中的输出。--verbose``-v

mongorestore --verbose

您可以通过多次重复表单来增加详细程度。-v

例:

mongorestore -vvvv

有关蒙戈垃圾场的更多信息

该实用程序接受许多其他有用的参数,并且在将其用作备份和恢复策略的一部分时,还需要考虑各种因素。mongorestore

有关更多信息,请参阅 MongoDB 网站上的 mongorestore 文档。

其他选项

mongodump并且是用于备份和恢复小型MongoDB部署的简单有效的工具,但不适合捕获大型系统的备份。mongorestore

有关备份和还原MongoDB数据库的其他方法,请参阅MongoDB网站上的MongoDB备份方法。