MongoDB數據庫數據恢復環境:
MongoDB數據庫部署在一臺虛擬機上,虛擬機操作系統為Windows Server2012。
MongoDB數據庫故障&分析:
由于業務發展需求,需要對MongoDB數據庫內的文件進行遷移,在MongoDB服務開啟的狀態下用戶將數據庫文件復制到其他分區,將MongoDB數據庫之前所在分區進行了格式化操作。遷移后用戶發現數據庫文件無法使用,將數據庫文件拷貝回原分區后MongoDB數據庫依然無法正常使用,報錯“Windows無法啟動MongoDB服務(位于 本地計算機 上)錯誤1067:進程意外終止。”
北亞數據恢復——MongoDB數據恢復
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工具。
北亞數據恢復——MongoDB數據恢復
3、借助編譯后的wt工具清洗回寫MongoDB數據庫集合文件內所有數據,讀取數據結果并寫入到文件中。
4、創建一個全新的MongoDB數據庫并創建相應數據量的集合,將文件逐一寫入到集合中,查詢數據集并重建索引信息。
5、通過查詢集合中的記錄,確定記錄類型,重建集合索引,集合恢復完成后可以正常查看其中數據:
北亞數據恢復——MongoDB數據恢復
北亞數據恢復——MongoDB數據恢復
6、協助用戶對全部集合進行索引重建后,由用戶對MongoDB數據庫進行查詢驗證,確定數據無誤,本次數據恢復工作完成。
審核編輯黃昊宇
-
數據恢復
+關注
關注
10文章
568瀏覽量
17432 -
數據庫
+關注
關注
7文章
3794瀏覽量
64360
發布評論請先 登錄
相關推薦
評論