网络中断时运行mongodump

时间:2014-03-03 09:00:30

标签: mongodb

如果我在远程主机上的数据库上运行mongodump,并且在过程中间网络连接中断一段时间......如果我再次启动mongodump,它将继续从哪里继续它完成了还是从一开始就开始了?

关于mongorestore

的相同问题

2 个答案:

答案 0 :(得分:0)

对于mongodump,您可以通过拆分bson文件手动完成,这里是bson格式文档http://bsonspec.org/

假设您完成了10000字节文件的90%:

  1. 以字节为单位计算剩余数据的大小,在这种情况下为1000字节。
  2. tail -c 1200 $collection.bson | head -c 500 | xxd概述边界线区域,使用1200只是为了安全,否则可能会遗漏一些文件。
  3. 在xxd的输出中找到一个新文档的开头,这可能很棘手,文档的开头是一个描述该文档大小的32位变量,如果你不确定,请阅读bson文档怎么做。
  4. 假设根据xxd的新文档的偏移量为66,则1134(1200-66)是剩余数据的大小。
  5. tail -c 1134 data.bson | mongorestore -d $db -c $col -

答案 1 :(得分:-3)

它将继续从中断位置进行备份/恢复,前提是您使用完全相同的目录进行备份/恢复。

GNU Screen会话中运行此类作业是一种很好的做法,这样网络中断就不会对它们产生影响。