使用 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备份方法。