【服务器数据恢复】云服务器mysql表被truncate的数据恢复案例

云服务器特点:
1、云服务器不需要购买硬件设备,用户按照业务需求支付一定的费用购买相应的硬软件资源。云服务器提供商的数据中心不仅提供硬件/软件环境,还提供咨询服务。
2、云服务器可以充分利用资源,根据业务需求随时调整硬软件资源,避免老旧设备的淘汰和购买新设备/部署软件的所耗费的时间和成本。
3、云服务器提供商有专业的技术人员对服务器进行维护,节约服务器的搭建维护成本,可以让用户将更多资源投入到自身的核心业务中。

**云服务器数据恢复案例:

云服务器数据恢复环境:
某云ECS网站服务器,linux操作系统,mysql数据库。

云服务器故障情况:
在执行mysql数据库版本更新测试时,将本应在测试库执行的sql脚本错误地在生产库中执行,部分表被truncate,部分表内的少量数据被delete。该实例内数据表均采用innodb作为默认存储引擎。

云服务器数据恢复流程:
1、由于用户的ECS内有其他业务在运行,为保证被truncate表的底层数据不被破坏,北亚数据恢复工程师首先将mysql的data目录所在分区备份。
2、由于用户需要恢复的12个表内不存在大字段类型值和myisam引擎表,为节约数据传输时间,北亚数据恢复工程师利用工具扫描数据段并下载获取恢复数据所必需的数据库段碎片。使用innodb引擎的mysql数据库恢复数据必须依赖表结构信息,mysql的表结构信息存储于对应表名的.frm文件内。本案例中.frm文件完好可直接使用。下载需要恢复的表对应的.frm文件。
3、分析系统表,读取数据段内的系统表信息,获取需要恢复的12个表在系统表内的注册信息。
4、在下载完成的数据段文件内提取对应于各表的数据页,解析对应表的.frm文件获取到该表的表结构信息,通过表结构信息获取到底层数据分配规则,按照规则拆分数据段内二进制数据并对不同类型数据进行字符展示转换(各类整形、浮点型、时间型等),完成数据段到sql语句的转换。
5、恢复被delete数据的表,基本流程和恢复truncate表的流程类似,不同点在于数据解析时需要提取被标注为“delete”的记录。
6、根据解析出的表结构信息在恢复环境中的mysql实例中创建表,并将恢复出的数据导入。
7、由于直接从底层抓取出的记录可能存在主键不唯一(引擎在存储时产生的临时记录)和记录重复(缓冲段)以及乱码(扫描数据段时出现特征值匹配成功但不属于该表的数据段)等情况,北亚数据恢复工程师对提取出的记录异常进行人工处理。
8、数据验证。开启远程桌面,由用户亲自验证看数据是否正确、数据量是否正常。经过用户验证,truncate表和delete记录的表都完整恢复。

你可能感兴趣的:(数据恢复)