获取表数据_mysql数据库部分表被truncate,部分数据被delete的解决过程
服務器數據恢復環境部署及故障原因:
華為云ECS網站服務器,服務器采用linux操作系統,數據庫版本號5.6,。
在執行數據庫版本更新測試時,錯誤地將本應在測試庫執行的sql腳本執行于生產庫,導致部分表被truncate,
另有部分表內少量數據被delete。該實例內數據表均采用innodb作為默認存儲引擎。
數據恢復需求:
恢復被truncat的8個表以及被少量數據被delete的4個表。
服務器數據恢復流程:
1.分區備份
由于客戶ECS內有其他業務仍在運行,
為保證被truncate表底層數據不被破壞首先對mysql的data目錄所在分區進行備份。
2.獲取數據庫碎片
由于客戶需要恢復的12個表內不存在大字段類型值和myisam引擎表,
為節約數據傳輸時間,通過掃描數據段并下載獲取恢復所必須的數據庫段碎片。
另外innodb引擎數據恢復必須依賴表結構信息,mysql的表結構信息存儲于對應表名的.frm文件內。
在本恢復案例中frm文件完好,可直接使用。下載需要恢復的表對應的frm文件。
3.分析系統表。讀取數據段內系統表信息,獲取需要恢復的12個表在系統表內的注冊信息。
4.恢復被truncate的表。在下載完成的數據段文件內提取對應于各表的數據頁,
解析對應表的frm文件獲取到該表的表結構信息。
通過表結構信息獲取到底層數據分配規則后。
5.恢復被delete數據的表,基本流程同truncate表的恢復,
不同點在于數據解析時需要提取被標注為“delete”的記錄。
6.數據還原。根據解析出的表結構信息在恢復環境中的mysql實例內創建表,
并將恢復出的數據導入
7.數據清洗。由于直接從底層抓取出的記錄可能存在主鍵不唯一和記錄重復以及亂碼等情況,
提取出的記錄可能存在異常需要進行人工處理。
8.數據驗證。開啟遠程桌面,由客戶進行數據驗證是否正確、數據量是否正常。
經過客戶驗證,truncate表恢復完整,delete記錄的表恢復完整,數據恢復流程完畢。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的获取表数据_mysql数据库部分表被truncate,部分数据被delete的解决过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《小猪佩奇:世界大冒险》登陆 Steam
- 下一篇: 华为畅享60开箱上手:麒麟芯片、全新鸿蒙