有人曾经设法从标准输入恢复 mongodump 吗?
我使用引用的命令生成了备份文件:
mongodump --archive > file
Run Code Online (Sandbox Code Playgroud)
但该参考资料从未解释存档的格式,或如何恢复它。有人说你必须从 stdin 注入它,但他们仍然是个谜,因为没有证据表明它实际上是可能的。
事实上,我做了以下尝试,但没有成功:
cat file | mongorestore
mongorestore -vvvvv --archive < file
mongorestore -vvvvv --archive=file
Run Code Online (Sandbox Code Playgroud)
所有这些命令最终都会出现相同的错误:
Failed: stream or file does not appear to be a mongodump archive
Run Code Online (Sandbox Code Playgroud)
有关信息,我设法恢复了以经典方式生成的存档。
为什么我需要使用 --archive 到标准输出?
我的 mongodb 在 docker 里面。
我现在使用的选项在 docker内创建备份文件,然后我使用 docker cp 命令将其复制到主机,因此我使用了所需空间的两倍(在它被删除到容器内之前)。
不幸的是,docker 没有来自主机的挂载,我无法(还)重新启动它以添加选项。我正在寻找一个快速的选择。