无法从压缩的bson恢复集合

时间:2017-06-16 20:24:15

标签: mongodb

我有mongorestore版本3.4.5:

$ mongorestore --version
mongorestore version: r3.4.5
git version: 520b8f3092c48d934f0cd78ab5f40fe594f96863
Go version: go1.7
   os: linux
   arch: amd64
   compiler: gc
OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016

由于我的服务器上没有足够的磁盘空间,所以我必须从zip文件恢复数据库。我尝试了与文档中相同的命令,但它给出了错误,似乎mongorestore忽略了标准输入:

$ zcat threads.bson.zip | mongorestore --db suomi24 --collection threads --verbose
2017-06-16T23:29:39.377+0300    using write concern: w='1', j=false, fsync=false, wtimeout=0
2017-06-16T23:29:39.377+0300    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
2017-06-16T23:29:39.378+0300    using default 'dump' directory
2017-06-16T23:29:39.378+0300    see mongorestore --help for usage information
2017-06-16T23:29:39.378+0300    Failed: mongorestore target 'dump' invalid: stat dump: no such file or directory

zip文件大约10GB,所以我无法做到

$ dump=$(zcat threads.bson.zip);mongorestore --db suomi24 --collection threads < $dump
zsh: fatal error: out of heap memory

那么正确的方法是什么?

1 个答案:

答案 0 :(得分:7)

而不是你直接转储到bson并压缩,因为你的数据库非常大,我认为如果你压缩转储文件很容易在其他服务器上恢复它。 您可以像这样进行转储:

mongodump --archive=threads.bson.gz --gzip --db test
而且您可以像这样恢复:
mongorestore --gzip --archive=threads.bson.gz --db test