數據庫數據恢復環境:
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文章
6825瀏覽量
123331 -
數據恢復
+關注
關注
10文章
573瀏覽量
17457 -
數據庫
+關注
關注
7文章
3799瀏覽量
64393 -
mongodb
+關注
關注
0文章
22瀏覽量
367
發布評論請先 登錄
相關推薦
如何使用cmp進行數據庫管理的技巧
數據庫數據恢復—ORACLE常見故障的數據恢復可行性分析
數據庫數據恢復—MYSQL數據庫ibdata1文件損壞的數據恢復案例
數據庫數據恢復—通過拼接數據庫碎片恢復SQLserver數據庫
![<b class='flag-5'>數據庫</b><b class='flag-5'>數據</b><b class='flag-5'>恢復</b>—通過拼接<b class='flag-5'>數據庫</b>碎片<b class='flag-5'>恢復</b>SQLserver<b class='flag-5'>數據庫</b>](https://file1.elecfans.com/web1/M00/F4/07/wKgaoWcjE32AbQdWAAJD_hojvJc119.png)
oracle數據恢復—Oracle數據庫打開報錯的數據恢復案例
![oracle<b class='flag-5'>數據</b><b class='flag-5'>恢復</b>—Oracle<b class='flag-5'>數據庫</b>打開報錯的<b class='flag-5'>數據</b><b class='flag-5'>恢復</b>案例](https://file1.elecfans.com/web2/M00/8F/05/wKgZomTLUp-AEdgqAAJwnPCXKpg284.png)
數據庫數據恢復—SQL Server數據庫出現823錯誤的數據恢復案例
![<b class='flag-5'>數據庫</b><b class='flag-5'>數據</b><b class='flag-5'>恢復</b>—SQL Server<b class='flag-5'>數據庫</b>出現823錯誤的<b class='flag-5'>數據</b><b class='flag-5'>恢復</b>案例](https://file1.elecfans.com/web2/M00/07/F4/wKgaombs78mANJ1GAAPeSoXHVPE244.png)
數據庫數據恢復—SQL Server數據庫所在分區空間不足報錯的數據恢復案例
數據庫數據恢復—ndf文件大小變為0KB的數據恢復案例
MongoDB數據恢復—MongoDB數據庫文件損壞的數據恢復案例
![<b class='flag-5'>MongoDB</b><b class='flag-5'>數據</b><b class='flag-5'>恢復</b>—<b class='flag-5'>MongoDB</b><b class='flag-5'>數據庫文件</b><b class='flag-5'>損壞</b>的<b class='flag-5'>數據</b><b class='flag-5'>恢復</b>案例](https://file.elecfans.com/web2/M00/9F/F3/poYBAGQ-Pg6AWHFxAAJ9VHkTNrk678.png)
數據庫數據恢復—Sql Server數據庫文件丟失的數據恢復案例
![<b class='flag-5'>數據庫</b><b class='flag-5'>數據</b><b class='flag-5'>恢復</b>—Sql Server<b class='flag-5'>數據庫文件</b>丟失的<b class='flag-5'>數據</b><b class='flag-5'>恢復</b>案例](https://file.elecfans.com/web2/M00/9D/7C/pYYBAGQub62ABZHVAAJKkVvcctE851.png)
評論