將數據脫機複製到另一臺服務器後,在所有服務器上都缺少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