从 google 云存储流恢复 `mongodump` 备份
Restoring a `mongodump` backup from google cloud storage stream
由于磁盘 space 限制,我想直接从 google 云存储对象恢复非常大的数据库转储,而无需下载并将其保存到本地文件。
我有 mongodump
生成的数据库转储(有和没有 --gzip
)
当我尝试使用以下命令将数据库转储数据通过管道传输到 mongorestore 时
(我指的是Streaming transfers)
gsutil cp - gs://<bucket>/<object_path> | mongorestore --uri=<connection_uri> --archive
进程卡在以下输出
Copying from <STDIN>...
/ [0 files][ 0.0 B/ 0.0 B]
我不确定这是 gsutil
还是 mongorestore
问题
该文件是一个有效的 mongodump 文件,因为我尝试下载一个小型数据库转储,并且我可以使用 mongorestore --uri=<connection_uri> --archive=<local_file_path>
成功恢复它
gsutil 版本:4.57
mongorestore 版本:100.2.0
gsutil 命令中的破折号位于源参数的位置,而不是目标参数,因此它正在尝试从 STDIN 复制到 gs://
路径(这将覆盖您的对象!)。
如果您想将 GCS 对象的内容通过管道传输到另一个程序,您可以使用 gsutil cp
并将目标参数设为破折号,或者更简单地说,只需使用 gsutil cat gs://...
由于磁盘 space 限制,我想直接从 google 云存储对象恢复非常大的数据库转储,而无需下载并将其保存到本地文件。
我有 mongodump
生成的数据库转储(有和没有 --gzip
)
当我尝试使用以下命令将数据库转储数据通过管道传输到 mongorestore 时 (我指的是Streaming transfers)
gsutil cp - gs://<bucket>/<object_path> | mongorestore --uri=<connection_uri> --archive
进程卡在以下输出
Copying from <STDIN>...
/ [0 files][ 0.0 B/ 0.0 B]
我不确定这是 gsutil
还是 mongorestore
问题
该文件是一个有效的 mongodump 文件,因为我尝试下载一个小型数据库转储,并且我可以使用 mongorestore --uri=<connection_uri> --archive=<local_file_path>
gsutil 版本:4.57
mongorestore 版本:100.2.0
gsutil 命令中的破折号位于源参数的位置,而不是目标参数,因此它正在尝试从 STDIN 复制到 gs://
路径(这将覆盖您的对象!)。
如果您想将 GCS 对象的内容通过管道传输到另一个程序,您可以使用 gsutil cp
并将目标参数设为破折号,或者更简单地说,只需使用 gsutil cat gs://...