使用mongorestore从地图集还原MongoDb存档

问题描述

我从mongodb地图集(在线下载链接)中下载了备份 restore-xxx.tar.gz

我想使用此命令在其他服务器上还原

.\mongorestore.exe -uri mongodb+srv://xxx-xxx.mongodb.net --username xxxx --password 'xxxx' --nsFrom='xxxxx.*' --nsTo='restoreDbTest.*' --gzip --archive='D:\MongoExportData\restore-xxx.tar.gz'

我尝试过解压缩tar的结果也是如此:

.\mongorestore.exe -uri mongodb+srv://xxx-xxx.mongodb.net --username xxxx --password 'xxxx' --nsFrom='xxxxx.*' --nsTo='restoreDbTest.*' --gzip --archive='D:\MongoExportData\unzip-***.gz'

我收到此错误

2020-10-30T11:41:24.494+0100    Failed: stream or file does not appear to be a mongodump archive
2020-10-30T11:41:24.495+0100    0 document(s) restored successfully. 0 document(s) Failed to restore.

您能解释一下为什么我无法使用mongorestore恢复Atlas备份吗?

解决方法

我找到了解决方法

如何在两个mongo Atlas帐户之间导出和还原mongoDb:

  1. 从mongo Atlas下载档案文件
  2. 提取焦油
  3. 运行守护程序(确保服务未在Windows上运行)=> 'C:\Program Files\MongoDB\Server\4.4\bin\mongod.exe' --dbpath D:\MongoExportArchive\restore-5f7431d95f8089221b1e16dd
  4. 创建转储并将其保存在D:/ data ==> 'D:\MongoTools\bin\mongodump.exe' -d myDataBase -o D:\Data
  5. 使用mongorestore ==> 'D:\MongoTools\bin\mongorestore.exe' -uri mongodb+srv://xxxxxxxxx.mongodb.net -d dbRestoreProd --username myUser --password 'myP4ss0rd' D:\Data\myDataBase
  6. 导入转储