數據庫環境部署與故障原因:
本次恢復的數據庫安裝在客戶本地服務器上,服務器操作系統爲windows2008 r2 。在當前環境內安裝有mysql5.6單實例,引擎類型爲innodb,表內數據存儲所使用表空間類型爲獨立表空間。未進行數據庫備份,未開啓binlog。
導致數據丟失的原因是由於人爲誤操作使用Delete命令進行刪除數據時未添加where子句進行篩選導致全表數據被刪除,刪除後未對該表進行任何操作,需要從數據庫層面進行誤刪除的數據恢復操作。
數據恢復方案制定:
1、故障類型分類:在本案例中,由於未對生產環境進行備份也未開啓binlog日誌,無法直接還原數據庫,屬於典型表內mysql-delete數據誤刪除。
2、故障分析與可行性方案制定:通常情況下對於mysql innodb誤刪除導致記錄丟失的恢復方案有三種,分別是備份還原、binlog還原和記錄深度解析。由於本案例中的數據庫沒有備份,也沒有開啓binlog,也就是說前兩種方案都不適用,只能使用記錄深度解析的方式進行恢復。此恢復方案恢復原理爲模擬innodb引擎記錄管理方式,根據表結構信息將二進制文件解析爲字符記錄。
數據恢復流程:
1、獲取數據文件:客戶將表結構文件及表數據文件(.ibd)通過網絡傳輸的方式發送到數據恢復中心,數據恢復工程師將文件下載後開始對數據進行分析和恢復。
2、使用數據庫數據恢復工具進行掃描:
在本次數據恢復案例中,客戶提供了數據庫表結構腳本,可以使用本工具中的5+3功能進行恢復。
首先讀取表結構信息:
開始解析記錄:
本工具默認將記錄提取爲SQL備份格式,等待解析完畢後還原到數據庫查看結果(爲保障客戶隱私關鍵信息已打碼):
客戶驗收數據:
數據提取完成後,通知客戶對提取結果進行驗證,並統計恢復記錄總數。客戶驗證後表示最終數據恢復結果完整,總數符合原表內記錄條數,本次數據恢復成功。