欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【北亚数据恢复】误操作导致云服务器mysql表被truncate,表内数据被delete的数据恢复

程序员文章站 2022-03-03 21:21:07
...

云服务器具有下面这些优势,采用云服务器方案的用户群体越来越大。

一、使用云服务器不需要购买硬件设备,不需要专门的机房托管这些服务器,只需要按照所需的资源支付一定的费用就能租用需要的资源。数据中心不仅提供硬件环境和系统软件资源,还提供咨询服务,将各种硬件和系统软件资源在管理后台进行图形化展示,方便操作,无需专业的技术去配置服务器、数据库等这些专业复杂操作。

二、绿色环保,减少硬件设备的购买和折旧、淘汰成本。

三,云服务器供应商提供专业技术人员对服务器进行维护,节约了设备的运行维护、服务的搭建配置等成本,企业可以将更多资源投入到自身的业务中。

北亚数据恢复中心遇到越来越多云服务器的数据恢复问题。在这分享一个云服务器的数据恢复案例。

环境:

某云ECS网站服务器,

linux操作系统,

mysql数据库版本号5.6。

故障:

在执行数据库版本更新测试时,将本应在测试库中执行的sql脚本放到生产库中去执行,导致部分表被truncate,另有部分表内少量数据被delete。该实例内数据表均采用innodb作为默认存储引擎。

云服务器数据恢复流程:

1.由于ECS内有其他业务仍在运行,为保证被truncate表底层数据不被破坏,北亚数据恢复工程师先对mysql的data目录所在分区进行备份。

2.由于需要恢复的12个表内不存在大字段类型值和myisam引擎表,为节约数据传输时间,扫描数据段后,北亚数据恢复工程师下载获取数据恢复所必需的数据库段碎片。由于innodb引擎数据恢复必须依赖表结构信息,mysql的表结构信息存储于对应表名的.frm文件内。在本恢复案例中frm文件完好,可直接使用。下载需要恢复的表对应的.frm文件。

3.北亚数据恢复工程师分析系统表。读取数据段内系统表信息,获取需要恢复的12个表在系统表内的注册信息。

4.恢复被truncate的表。北亚数据恢复工程师在下载完成的数据段文件内提取对应于各表的数据页,解析对应表的.frm文件,获取到该表的表结构信息。通过表结构信息获取到底层数据分配规则后,按照规则拆分数据段内的二进制数据,并对不同类型的数据进行字符展示转换(各类整形、浮点型、时间型等),完成数据段到sql语句的转换。

5.恢复被delete数据的表,基本流程同truncate表的恢复类似,不同点在于数据解析时需要提取被标注为“delete”的记录。

6.数据还原。北亚数据恢复工程师根据解析出的表结构信息在数据恢复环境中的mysql实例内创建表,并将恢复出的数据导入。

7.数据后期处理。由于直接从底层抓取出的记录可能存在主键不唯一(引擎在存储时产生的临时记录)和记录重复(缓冲段)以及乱码(扫描数据段时出现特征值匹配成功但不属于该表的数据段)等情况,北亚数据恢复工程师处理提取出存在异常的记录。

数据验证:

开启远程桌面,由管理员进行数据验证,检查恢复出来的数据是否正确、数据量是否正常。经过验证,truncate表恢复完整可用,delete记录的表恢复完整可用。