云服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境:
阿里云ECS網(wǎng)站服務(wù)器,linux操作系統(tǒng)+mysql數(shù)據(jù)庫(kù)。
云服務(wù)器故障:
在執(zhí)行數(shù)據(jù)庫(kù)版本更新測(cè)試時(shí),在生產(chǎn)庫(kù)誤執(zhí)行了本來應(yīng)該在測(cè)試庫(kù)執(zhí)行的sql腳本,導(dǎo)致生產(chǎn)庫(kù)部分表被truncate,還有部分表內(nèi)的少量數(shù)據(jù)被delete。該實(shí)例內(nèi)數(shù)據(jù)表均采用innodb作為默認(rèn)存儲(chǔ)引擎。
云服務(wù)器數(shù)據(jù)恢復(fù)過程:
1、由于用戶ECS內(nèi)還有其他業(yè)務(wù)在運(yùn)行,為避免被truncate表的底層數(shù)據(jù)被破壞,首先將mysql數(shù)據(jù)庫(kù)的data目錄所在分區(qū)備份。
2、需要恢復(fù)的十多個(gè)表內(nèi)不存在大字段類型值和myisam引擎表,直接掃描數(shù)據(jù)段并下載恢復(fù)所必需的數(shù)據(jù)庫(kù)段碎片。由于innodb引擎表恢復(fù)數(shù)據(jù)須依賴表結(jié)構(gòu)信息,mysql的表結(jié)構(gòu)信息存儲(chǔ)于對(duì)應(yīng)表名的.frm文件內(nèi)。經(jīng)過檢測(cè)發(fā)現(xiàn).frm文件完好,可直接使用。下載需要恢復(fù)的表所對(duì)應(yīng)的.frm文件。
3、讀取&分析數(shù)據(jù)段內(nèi)系統(tǒng)表信息,獲取需要恢復(fù)的十多個(gè)表在系統(tǒng)表內(nèi)的注冊(cè)信息。
4、在下載完成的數(shù)據(jù)段文件內(nèi)提取對(duì)應(yīng)于各表的數(shù)據(jù)頁,解析對(duì)應(yīng)表的.frm文件獲取該表的表結(jié)構(gòu)信息。通過表結(jié)構(gòu)信息獲取到底層數(shù)據(jù)分配規(guī)則,北亞企安數(shù)據(jù)恢復(fù)工程師按照規(guī)則拆分?jǐn)?shù)據(jù)段內(nèi)二進(jìn)制數(shù)據(jù)并將不同類型數(shù)據(jù)進(jìn)行字符展示轉(zhuǎn)換(各類整型、浮點(diǎn)型、時(shí)間型等),完成數(shù)據(jù)段到sql語句的轉(zhuǎn)換。
5、恢復(fù)被delete數(shù)據(jù)的表的流程類似恢復(fù)被truncate表的流程,差異在于解析數(shù)據(jù)時(shí)需要提取被標(biāo)注為“delete”的記錄。
6、根據(jù)解析出的表結(jié)構(gòu)信息在恢復(fù)環(huán)境中的mysql實(shí)例內(nèi)創(chuàng)建表,將恢復(fù)出的數(shù)據(jù)導(dǎo)入。
7、由于直接從底層抓取出的記錄可能存在主鍵不唯一(引擎在存儲(chǔ)時(shí)產(chǎn)生的臨時(shí)記錄)、記錄重復(fù)(緩沖段)和亂碼(掃描數(shù)據(jù)段時(shí)出現(xiàn)特征值匹配成功但不屬于該表的數(shù)據(jù)段)等情況,北亞企安數(shù)據(jù)恢復(fù)工程師人工處理提取記錄存在的異常。
8、由用戶方遠(yuǎn)程桌面的方式驗(yàn)證恢復(fù)數(shù)據(jù)的正確性和完整性。經(jīng)過用戶方工程師的多方驗(yàn)證,確認(rèn)被truncate的表和被delete記錄的表的數(shù)據(jù)恢復(fù)完整,數(shù)據(jù)正確有效。本次數(shù)據(jù)恢復(fù)工作完成。
審核編輯 黃宇
-
數(shù)據(jù)恢復(fù)
+關(guān)注
關(guān)注
10文章
587瀏覽量
17662 -
ECS
+關(guān)注
關(guān)注
0文章
50瀏覽量
20197 -
云服務(wù)器
+關(guān)注
關(guān)注
0文章
738瀏覽量
13432
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論