【发布时间】:2015-09-30 09:39:52
【问题描述】:
在将我的数据离线复制到另一台服务器后,所有服务器上都丢失了bomgar.1(一个数据文件)。我在这个数据库的网格文件中存储了大约 850GB 的数据。由于缺少文件,所有修复工具都失败了。我试图从另一台服务器(相同的数据库名称,相同的文件大小)复制“假”bomgar.1,这允许修复工具转储数据,但是当它们插入有效文档时(很多很多小时后来),我得到以下输出:
> use bomgar
switched to db bomgar
> db.repairDatabase()
{
"ok" : 0,
"errmsg" : "E11000 duplicate key error index: bomgar.fs.chunks.$files_id_1_n_1 dup key: { : null, : null }",
"code" : 11000
}
我在 Mongo shell 中做的不多。我对保留任何重复数据不感兴趣。 “假”文件只有 128MB,所以丢失我的那部分数据比丢失整个 850GB 要好得多。我们正在将此数据移动到副本集的过程中,似乎没有服务器会显示 fs.files 集合,给出错误bad offset:0 accessing file: /data/grid/bomgar.0. See http://dochub.mongodb.org/core/data-recovery,但我可以查看 fs.chunks 和 system.indexes。
总结一下:即使丢失了一部分数据,我如何保存数据?
【问题讨论】:
-
另外值得注意的是:当以这种方式恢复时,我最终得到了至少 1.5 倍的数据被转储(最后我在睡觉前检查)。现在 _tmp 数据消失了,但我没有看到任何地方提到修复工具使用更多空间进行修复。
标签: mongodb data-recovery