华为云服务器mysql数据恢复过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为云服务器mysql数据恢复过程相关的知识,希望对你有一定的参考价值。

服务器数据恢复环境部署及故障原因:

·
华为云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数据恢复过程的主要内容,如果未能解决你的问题,请参考以下文章

Centos7.6编译安装数据库mysql5.7.22(华为鲲鹏云服务器案例)

Centos7.6编译安装数据库mysql5.7.22(华为鲲鹏云服务器案例)

GaussDB(for MySQL)如何快速创建索引?华为云数据库资深架构师为您揭秘

基于华为云轻松搭建属于自己的网站 (Linux,Apache,MySQL,PHP)

华为云GaussDB(for MySQL)2.0全新升级,三大技术大揭秘

Django 2021年最新版教程29django项目部署到华为云(ubuntu virtualenv mysql方式)