【问题标题】:Restore dump from older mongo从旧的 mongo 恢复转储
【发布时间】:2022-02-22 18:40:59
【问题描述】:

我目前正在尝试将使用 mongodb:3.4-jessie 制作的 mongodump 恢复为更新的版本,mongodb:4.2.3-bionic强>。

当我尝试执行我的命令时: sudo docker exec mongo mongorestore —db=mock —gzip /mongorestore/app

它返回给我这个错误:

2020-05-01T00:01:29.405+0000    the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead
2020-05-01T00:01:29.406+0000    Failed: mongorestore target '/home/user1/mongorestore/app' invalid: stat /home/user1/mongorestore/app: no such file or directory
2020-05-01T00:01:29.406+0000    0 document(s) restored successfully. 0 document(s) failed to restore.

文件夹app 包含BSON 文件和json.gz

我无法升级旧的转储,因为它是唯一剩下的东西,我真的想使用新版本的 mongo。

非常感谢!

【问题讨论】:

    标签: mongodb nosql mongodump mongorestore


    【解决方案1】:

    您的命令在尝试将数据恢复到较新的 mongodb 版本之前被问题阻止。

    • 您在 docker 容器内运行 mongorestore,但输入数据目录 /mongorestore/app 似乎不在容器内(除非您在此处未显示的上一步中安装它并将错误的路径传递给 @987654325 @)。您可以使用 Docker 运行命令的 --mount--volume 选项将主机目录挂载到容器中。然后将其容器内路径传递给mongorestore 命令。请参阅 docker run command 文档。
    • mongorestore--db 选项的这种使用发出警告,但尚不清楚这是因为它找不到输入数据目录还是需要--nsInclude 选项。请参阅 mongorestore command 文档。
    • 您不需要将sudodocker exec 一起使用,这样做可能会导致安装的输出文件出现权限问题。 mongorestore 命令也不应该需要sudo,但如果我错了,写docker exec mongo sudo mongorestore ...
    • mongodump 和mongorestore 文档建议--gzip 选项希望压缩所有文件,而不仅仅是其中的一部分。也许它会注意到每个文件的.gz 文件扩展名来决定是否解压缩它,但文档并没有说它支持这种情况。

    我打赌mongorestore 可以从旧版本中恢复 BSON 文件。该文件格式应该非常稳定。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,但在 Mongo 5 中,它的工作原理是这样的:

      mongorestore --host=hostname --port=portnum \
          --archive=/path/to/archive.gz --gzip --verbose \
          --nsInclude="mydbname.*" \
          --convertLegacyIndexes
      

      mydbname 是我在转储集合时使用的数据库的名称。

      如果您现在使用另一个 dbname,那么您需要使用 --nsFrom="mydbname.*" --nsTo="newdbname.*" 转换它们

      全部来自:https://docs.mongodb.com/database-tools/mongorestore/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-28
        • 1970-01-01
        • 1970-01-01
        • 2012-01-19
        • 1970-01-01
        • 2020-06-07
        相关资源
        最近更新 更多