【資料庫資料恢復】mdb_catalog.wt檔案丟失的MongoDB資料恢復案例

北亞資料恢復發表於2023-01-05

MongoDB資料庫資料恢復環境:

MongoDB資料庫部署在一臺虛擬機器上,虛擬機器作業系統為Windows Server2012。


MongoDB資料庫故障&分析:

由於業務發展需求,需要對MongoDB資料庫內的檔案進行遷移,在MongoDB服務開啟的狀態下使用者將資料庫檔案複製到

其他分割槽,將MongoDB資料庫之前所在分割槽進行了格式化操作。遷移後使用者發現資料庫檔案無法使用,將資料庫檔案複製

回原分割槽後MongoDB資料庫依然無法正常使用,報錯“Windows無法啟動MongoDB服務(位於 本地計算機 上)錯誤

1067:程式意外終止。”



Tips:在MongoDB服務開啟狀態下複製資料庫檔案會導致mongod.lock和WiredTiger.lock這兩個檔案複製出錯,如果出現

這種情況,我們可以在複製檔案中找到這兩個檔案並刪除,然後再次嘗試啟動MongoDB資料庫,在資料庫重新啟動後會自動

重新生成這兩個檔案,資料庫即可正常使用。

資料庫資料恢復工程師檢查使用者遷移出的資料庫檔案後沒有找到_mdb_catalog.wt檔案。mdb_catalog.wt檔案是專門用於存

儲MongoDB資料庫中所有集合後設資料的檔案,資料庫啟動時所必須讀取的相關資訊都儲存於mdb_catalog.wt檔案中。所以

,北亞資料恢復工程師推斷導致MongoDB資料庫啟動報錯的原因應該是mdb_catalog.wt檔案丟失,資料庫無法讀取集合對

應的WT table名字,集合的建立選項,集合的索引資訊等後設資料。


MongoDB資料庫資料恢復過程:

1、掃描MongoDB資料庫分割槽的底層資料,結果沒有找到關於_mdb_catalog.wt檔案的資訊。多次調整掃描方式進行掃描仍

然無法查詢到_mdb_catalog.wt的相關資訊,資料恢復工程師判斷該檔案已被覆蓋,無法透過_mdb_catalog.wt檔案修復

MongoDB資料庫。

2、資料恢復工程師調整策略,由於該MongoDB資料庫是基於WiredTiger儲存引擎,於是北亞資料恢復工程師在Windows

環境下編譯出可執行的wt工具。



3、藉助編譯後的wt工具清洗回寫MongoDB資料庫集合檔案內所有資料,讀取資料結果並寫入到檔案中。

4、建立一個全新的MongoDB資料庫並建立相應資料量的集合,將檔案逐一寫入到集合中,查詢資料集並重建索引資訊。

5、透過查詢集合中的記錄,確定記錄型別,重建集合索引,集合恢復完成後可以正常檢視其中資料:




6、協助使用者對全部集合進行索引重建後,由使用者對MongoDB資料庫進行查詢驗證,確定資料無誤,本次資料恢復工作完成。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31380569/viewspace-2930929/,如需轉載,請註明出處,否則將追究法律責任。

相關文章