mysql數據庫數據恢復環境:
某云ECS網站服務器,linux操作系統,部署了mysql數據庫。工作人員在執行數據庫版本更新測試時,錯誤地將本應在測試庫執行的sql腳本在生產庫上執行了,導致部分表被truncate,部分表內數據被delete。該實例內數據表采用innodb作為默認存儲引擎。需要恢復被truncate的表以及被部分數據被delete的幾個表。
mysql數據庫數據恢復流程:
1、由于ECS內有其他業務仍在運行,為保證被truncate表的底層數據不被破壞,在恢復恢復數據之前對mysql數據庫的data目錄所在分區進行備份。

北亞企安數據恢復—mysql數據恢復
2、由于需要恢復的表內不存在大字段類型值和myisam引擎表,北亞企安數據恢復工程師通過掃描數據段并下載恢復數據所必需的數據庫數據段碎片。由于采用innodb引擎的數據表的數據恢復必須依賴表結構信息,mysql數據庫的表結構信息存儲于對應表名的frm文件內。本案例中frm文件完好,可直接使用。下載需要恢復的表所對應的frm文件。

北亞企安數據恢復—mysql數據恢復
3、讀取數據段內系統表信息,獲取需要恢復的表在系統表內的注冊信息。
4、恢復被truncate的表。在下載完成的數據段文件內提取對應于各表的數據頁,通過解析對應表的frm文件獲取到表的表結構信息。通過表結構信息獲取到底層數據分配規則后,按照規則拆分數據段內二進制數據,并對不同類型數據進行字符展示轉換,完成數據段到sql語句的轉換。
5、恢復被delete數據的表,基本流程和恢復truncate表數據的流程基本一致,不同點在于數據解析時需要提取被標注為“delete”的記錄。
6、根據解析出的表結構信息在恢復環境中的mysql實例內創建表,并將恢復出的數據導入。

北亞企安數據恢復—mysql數據恢復

北亞企安數據恢復—mysql數據恢復
7、由于直接從底層抓取出的記錄可能存在主鍵不唯一(引擎在存儲時產生的臨時記錄)和記錄重復(緩沖段)以及亂碼(掃描數據段時出現特征值匹配成功但不屬于該表的數據段)等情況,提取出的記錄可能存在異常,需要進行人工處理。
8、所有數據處理完成后。由用戶方驗證數據。經過用戶方的驗證,truncate的表和delete記錄的表恢復完整。
審核編輯 黃宇
-
數據恢復
+關注
關注
10文章
712瀏覽量
18983 -
數據庫
+關注
關注
7文章
4019瀏覽量
68339 -
MySQL
+關注
關注
1文章
905瀏覽量
29518
發布評論請先 登錄
MySQL數據庫備份恢復方式對比
Oracle數據庫ASM實例無法掛載的數據恢復案例
恒訊科技解析:如何安裝MySQL并創建數據庫
Mysql數據恢復—Windows Server下MySQL(InnoDB)全表誤刪數據恢復案例
數據庫數據恢復—服務器異常斷電導致Oracle數據庫故障的數據恢復案例
MySQL數據備份與恢復策略
企業級MySQL數據庫管理指南
oracle數據恢復—oracle數據庫誤執行錯誤truncate命令如何恢復數據?
MySQL數據庫采集網關是什么?有什么功能?
MySQL數據庫是什么
分布式存儲數據恢復—虛擬機上hbase和hive數據庫數據恢復案例
數據庫數據恢復——MongoDB數據庫文件拷貝后服務無法啟動的數據恢復
mysql數據恢復—mysql數據庫表被truncate的數據恢復案例
評論