将数据脱机复制到另一台服务器后,在所有服务器上都缺少bomgar.1
(数据文件),神秘莫测。我在这个数据库的网格文件存储中有大约850GB的数据。所有修复工具由于缺少文件而失败。我试图从另一台服务器(相同的数据库名称,相同的文件大小)复制一个“假”bomgar.1
,这使得修复工具可以转储出数据,但是当它们插入有效的文档时(很多小时后) ,我得到了以下输出:Mongo RepairDatabase重复失败
> 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数据不见了,但我还没有看到修复工具的任何地方使用更多的修复空间。 – QuickDanger