數(shù)據(jù)庫數(shù)據(jù)恢復環(huán)境:
華為云ECS,linux操作系統(tǒng);
mysql數(shù)據(jù)庫,實例內(nèi)數(shù)據(jù)表默認存儲引擎為innodb。
數(shù)據(jù)庫故障:
在執(zhí)行數(shù)據(jù)庫版本更新測試時,用戶誤將本應在測試庫測試的sql腳本執(zhí)行在生產(chǎn)庫中,導致部分表被truncate,部分表內(nèi)少量數(shù)據(jù)被delete。
數(shù)據(jù)庫恢復過程:
1、由于該ECS內(nèi)有其他業(yè)務在正常運行中,為避免被truncate表的底層數(shù)據(jù)不被破壞,首先鏡像備份mysql數(shù)據(jù)庫data目錄所在分區(qū)。

北亞數(shù)據(jù)恢復——mysql數(shù)據(jù)恢復
2、由于需要恢復的被truncate表不存在大字段類型值和myisam引擎表,數(shù)據(jù)恢復工程師使用工具掃描數(shù)據(jù)段并下載恢復數(shù)據(jù)所必需的mysql數(shù)據(jù)庫段碎片。由于innodb引擎表的數(shù)據(jù)恢復必須依賴表結構信息,mysql的表結構信息存儲于對應表名的.frm文件內(nèi)。經(jīng)過檢測發(fā)現(xiàn)在本案例中的.frm文件完好,可直接使用。下載需要的表對應的.frm文件。

北亞數(shù)據(jù)恢復——mysql數(shù)據(jù)恢復
3、讀取數(shù)據(jù)段內(nèi)系統(tǒng)表信息,獲取需要恢復的表在系統(tǒng)表內(nèi)的注冊信息。
4、在下載完成的數(shù)據(jù)段文件內(nèi)提取對應于各表的數(shù)據(jù)頁,解析對應表的.frm文件獲取到該表的表結構信息。通過表結構信息獲取到底層數(shù)據(jù)分配規(guī)則,按照規(guī)則拆分數(shù)據(jù)段內(nèi)二進制數(shù)據(jù)并對不同類型進行字符展示轉換(各類整型、浮點型、時間型等),完成數(shù)據(jù)段到sql語句的轉換。
5、恢復被delete數(shù)據(jù)的表,過程和恢復truncate表的類似,不同點在于解析數(shù)據(jù)時需要提取被標注為“delete”的記錄。
6、根據(jù)解析出的表結構信息在環(huán)境中的mysql實例內(nèi)創(chuàng)建表,并將恢復出的數(shù)據(jù)導入。

北亞數(shù)據(jù)恢復——mysql數(shù)據(jù)恢復

北亞數(shù)據(jù)恢復——mysql數(shù)據(jù)恢復
7、由于直接從底層抓取出的記錄可能存在主鍵不唯一(引擎在存儲時產(chǎn)生的臨時記錄)和記錄重復(緩沖段)以及亂碼(掃描數(shù)據(jù)段時出現(xiàn)特征值匹配成功但不屬于該表的數(shù)據(jù)段)等情況,提取出的記錄可能存在異常,需要北亞企安數(shù)據(jù)恢復工程師手動處理。
8、開啟遠程桌面,由用戶驗證數(shù)據(jù)的準確性和完整度。經(jīng)過反復驗證,truncate表和delete記錄的表都完整恢復。
審核編輯:湯梓紅
-
數(shù)據(jù)恢復
+關注
關注
10文章
728瀏覽量
19049 -
數(shù)據(jù)庫
+關注
關注
7文章
4085瀏覽量
68569 -
華為云
+關注
關注
3文章
2837瀏覽量
19378
發(fā)布評論請先 登錄
華為云數(shù)據(jù)庫-RDS for MySQL數(shù)據(jù)庫
華為云數(shù)據(jù)庫\-GaussDB for MySQL數(shù)據(jù)庫
MySQL數(shù)據(jù)庫服務器、數(shù)據(jù)庫和表之間是什么關系
數(shù)據(jù)庫數(shù)據(jù)恢復-Syabse數(shù)據(jù)庫數(shù)據(jù)恢復案例
數(shù)據(jù)庫數(shù)據(jù)恢復-oracle數(shù)據(jù)庫報錯無法打開的數(shù)據(jù)恢復案例
服務器數(shù)據(jù)恢復—誤還原快照導致SqlServer數(shù)據(jù)庫數(shù)據(jù)丟失的數(shù)據(jù)恢復案例
數(shù)據(jù)庫數(shù)據(jù)恢復—MySQL數(shù)據(jù)庫表誤刪除記錄的數(shù)據(jù)恢復案例
數(shù)據(jù)庫數(shù)據(jù)恢復—未開啟binlog的Mysql數(shù)據(jù)庫數(shù)據(jù)恢復案例
數(shù)據(jù)庫數(shù)據(jù)恢復—raid5陣列上層Sql Server數(shù)據(jù)庫數(shù)據(jù)恢復案例
數(shù)據(jù)庫數(shù)據(jù)恢復—通過拼接數(shù)據(jù)庫碎片恢復SQLserver數(shù)據(jù)庫
數(shù)據(jù)庫數(shù)據(jù)恢復—Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復流程
數(shù)據(jù)庫數(shù)據(jù)恢復—服務器異常斷電導致Oracle數(shù)據(jù)庫故障的數(shù)據(jù)恢復案例
mysql數(shù)據(jù)恢復—mysql數(shù)據(jù)庫表被truncate的數(shù)據(jù)恢復案例
【數(shù)據(jù)庫數(shù)據(jù)恢復】華為云ECS網(wǎng)站服務器mysql數(shù)據(jù)庫數(shù)據(jù)恢復案例
評論