从2.6升级到3.0后Mongodump经常失败

Mat*_*Tse 5 mongodb mongodump

我正在将数据库升级到 Mongo 3.0,并且正在将日常备份过程从使用mongodump 2.6.1 升级到 3.0.1,由于并行集合下载,它具有更高的性能。

我遇到了 mongodump 中途失败并出现错误的问题

....
2015-04-10T00:42:54.606+0000    [##############..........]        XXX.XXXXXXX  6804841/11236617  (60.6%)
2015-04-10T00:42:57.352+0000    Failed: error reading collection: Closed explicitly.
Run Code Online (Sandbox Code Playgroud)

8次尝试中,6次失败,2次顺利。我无法在网上找到有关此特定错误的任何其他信息。

  • 整个mongodump大小约为1TB,有数千个集合。失败发生在中间的某个地方。mongodump确实启动了,因为许多.bson文件开始在磁盘中累积,我可以在 mongodump 的输出中看到进度文件
    • 当针对 150GB mongo 2.4 实例运行相同的代码时,它似乎运行良好,它可能没有运行足够长的时间来遇到错误
  • 我要转储的 mongo 数据库版本是 2.4,我们计划升级 2.4 -> 2.6 -> 3.0。所以我们想提前升级一下mongodump工具,希望它能在2.4和2.6上正常工作。
  • 当前的备份服务器正在使用 mongodump 2.6.1 来对抗 2.4 mongo 数据库,并且它们在备份管道的 mongodump 阶段一直表现良好,100% 的可靠性
  • mongodump 备份服务器(谷歌计算引擎虚拟机)位于与 mongo 服务器(硬金属服务器)不同的计算机上,并且 mongo 服务器位于防火墙后面。因此,我们在两台机器之间建立 SSH 隧道,然后使用命令执行 mongodump --port。看起来像这样:

    ssh -M -N -L 1234:localhost:27017 <remote_ip>
    mongodump --port 1234 --username XXX --password XXX --out /tmp/dir
    
    Run Code Online (Sandbox Code Playgroud)

谁能给我一些关于可能发生的事情的提示?当我们的 mongo 数据库完全升级到 3.0 时,我们将需要使用 mongodump 3.0。

更新:我遇到的另一个错误是

2015-04-14T22:56:37.939+0000    Failed: error reading collection: read tcp XXX.X.X.X:XXXXX: use of closed network connection
Run Code Online (Sandbox Code Playgroud)