數據庫數據恢復環境:
Windows Server操作系統服務器,部署MongoDB數據庫。
數據庫故障&分析:
在MongoDB數據庫服務未關閉的情況下,管理員將MongoDB數據庫文件從原分區拷貝到其他分區,然后將MongoDB數據庫所在原分區格式化,格式化完成又將MongoDB數據庫文件拷回原分區,啟動MongoDB服務失敗并報錯。
北亞企安數據恢復——MongoDB數據恢復
在MongoDB數據庫服務沒有關閉的情況下,直接拷貝MongoDB數據庫文件,mongod.lock和WiredTiger.lock這2個文件拷貝出來是有問題的。正確的操作方法是:在拷貝出的數據庫文件中將這兩個文件刪除后再次啟動服務,這2個文件會由MongoDB自行重新生成。
通過檢測拷貝出的MongoDB數據庫文件發現_mdb_catalog.wt文件丟失。
_mdb_catalog.wt文件里存儲了MongoDB數據庫中所有集合的元數據,MongoDB數據庫啟動時需要從_mdb_catalog.wt文件中讀取相關信息。如果_mdb_catalog.wt文件丟失,MongoDB數據庫就無法獲取數據庫中集合對應的名字、集合的創建選項、集合的索引信息等元數據,數據庫無法啟動。
數據庫數據恢復過程:
1、對MongoDB數據庫所涉及的硬盤以只讀方式進行全盤鏡像備份,后續的數據分析和數據恢復操作都基于鏡像文件進行,避免在恢復數據的過程中對原始數據造成二次破壞。
2、嘗試從文件系統的層面恢復_mdb_catalog.wt文件。掃描數據庫分區沒有發現和_mdb_catalog.wt文件相關的信息。根據MongoDB數據庫數據文件的特征值掃描數據庫分區,也沒有發現和_mdb_catalog.wt相關的數據區域。所以可以斷定_mdb_catalog.wt文件已經被徹底破壞,無法恢復,只能從數據庫層面恢復數據了。
3、該案例中部署的MongoDB數據庫基于WT存儲引擎,可以使用WT實用工具包提取數據庫中的數據。下載WT實用工具包并在windows環境下編譯出可執行的wt工具。
北亞企安數據恢復——MongoDB數據恢復
4、編譯完成后,北亞企安數據恢復工程師使用wt工具清洗數據庫的集合文件中的數據,完成清洗后直接讀取文件中的數據并寫入到一個dump文件中。將數據庫的各個集合文件中的全部可用數據提取出來。
5、創建一個MongoDB數據庫,根據提取出的集合文件創建對應數量的空集合。使用wt工具將提取出來的dump文件一一寫入到新創建的空集合中。
6、通過查詢集合中的數據來確認這些寫入dump文件的集合與元數據庫中集合的對應關系,修改集合名稱并重建索引信息。
7、通過查詢集合中的記錄,確定記錄類型。確定fs.files和fs.chunks集合的位置后,修改這兩個集合名稱為xxx.files和xxx.chunks后并重建集合索引,集合恢復完成后就可以正常查看其中數據。
北亞企安數據恢復——MongoDB數據恢復
北亞企安數據恢復——MongoDB數據恢復
數據庫數據驗證:
協助用戶方工程師對全部集合進行索引重建之后,由用戶對數據庫進行查詢驗證,確認數據無誤,本次數據恢復工作完成。
審核編輯:湯梓紅
-
操作系統
+關注
關注
37文章
6801瀏覽量
123285 -
數據恢復
+關注
關注
10文章
568瀏覽量
17432 -
數據庫
+關注
關注
7文章
3794瀏覽量
64362 -
mongodb
+關注
關注
0文章
22瀏覽量
365
發布評論請先 登錄
相關推薦
評論