mongodb mongorestore无限期挂起

tkqqtvp1  于 2023-02-21  发布在  Go
关注(0)|答案(3)|浏览(177)

我尝试使用mongorestore从gzip文件恢复数据库。数据库大小约为89MB,gzip文件大小约为4.4MB。
但是,还原无限期挂起,没有错误消息.我应该如何解决这个问题?
我运行的命令是:

mongorestore --gzip --archive ./my-db.gz --drop -u admin --authenticationDatabase admin --verbose=5

答案是:

2018-01-09T15:47:45.089+0100    standard input is a terminal; reading password from terminal
Enter password:

2018-01-09T15:47:46.508+0100    will listen for SIGTERM, SIGINT, and SIGKILL
2018-01-09T15:47:46.509+0100    checking options
2018-01-09T15:47:46.509+0100        dumping with object check disabled
2018-01-09T15:47:46.527+0100    connected to node type: standalone
2018-01-09T15:47:46.528+0100    standalone server: setting write concern w to 1
2018-01-09T15:47:46.528+0100    using write concern: w='1', j=false, fsync=false, wtimeout=0

数据库创建成功,但大小仍为0b
奇怪的是,MongoDB Compass中的数据库概览显示数据库中的单个集合有大约28k个文档,这是我所期望的,平均大小和其他元数据显然是正确的,但没有任何内容可以读取。
我已经从一个活动集群导出了数据库,并试图导入到我的本地开发环境中,通过Docker运行一个示例。
我应该去哪里呢?
谢谢。

dw1jzc5e

dw1jzc5e1#

我找到解决办法了。
如果我用--archive ./my-db.gz运行这个命令,我会得到死锁。如果我用--archive=./my-db.gz,它会正确地恢复(即等号是必需的)。
我正在运行MacOSX High Sierra(10.13.2),并从brew安装了MongoDB;版本:

mongorestore version: r3.4.1
git version: 4a0fbf5245669b55915adf7547ac592223681fe1
Go version: go1.7.5
   os: darwin
   arch: amd64
   compiler: gc
OpenSSL version: OpenSSL 1.0.2k  26 Jan 2017
0sgqnhkj

0sgqnhkj2#

看起来这是正确的行为,虽然很奇怪。
引用文件:
要从标准输入进行恢复,请使用--archive选项运行mongorestore,但忽略文件名。
所以程序在等待存档通过管道传输到标准输入。
它可以这样工作:

mongorestore --gzip --archive=./my-db.gz --drop -u admin --authenticationDatabase admin --verbose=5

mongorestore --gzip --archive --drop -u admin --authenticationDatabase admin --verbose=5 < my-db.gz
6l7fqoea

6l7fqoea3#

对我来说,这该死的东西卡在一个百分比上大约5分钟,然后自己增加了。不知道为什么:/网络活动很好,磁盘也很好。不知道如何进一步调试。

相关问题