mysql数据库数据恢复环境:
某云ECS网站服务器,linux操作系统,部署了mysql数据库。工作人员在执行数据库版本更新测试时,错误地将本应在测试库执行的sql脚本在生产库上执行了,导致部分表被truncate,部分表内数据被delete。该实例内数据表采用innodb作为默认存储引擎。需要恢复被truncate的表以及被部分数据被delete的几个表。
mysql数据库数据恢复流程:
1、由于ECS内有其他业务仍在运行,为保证被truncate表的底层数据不被破坏,在恢复恢复数据之前对mysql数据库的data目录所在分区进行备份。

北亚企安数据恢复—mysql数据恢复
2、由于需要恢复的表内不存在大字段类型值和myisam引擎表,北亚企安数据恢复工程师通过扫描数据段并下载恢复数据所必需的数据库数据段碎片。由于采用innodb引擎的数据表的数据恢复必须依赖表结构信息,mysql数据库的表结构信息存储于对应表名的frm文件内。本案例中frm文件完好,可直接使用。下载需要恢复的表所对应的frm文件。

北亚企安数据恢复—mysql数据恢复
3、读取数据段内系统表信息,获取需要恢复的表在系统表内的注册信息。
4、恢复被truncate的表。在下载完成的数据段文件内提取对应于各表的数据页,通过解析对应表的frm文件获取到表的表结构信息。通过表结构信息获取到底层数据分配规则后,按照规则拆分数据段内二进制数据,并对不同类型数据进行字符展示转换,完成数据段到sql语句的转换。
5、恢复被delete数据的表,基本流程和恢复truncate表数据的流程基本一致,不同点在于数据解析时需要提取被标注为“delete”的记录。
6、根据解析出的表结构信息在恢复环境中的mysql实例内创建表,并将恢复出的数据导入。

北亚企安数据恢复—mysql数据恢复

北亚企安数据恢复—mysql数据恢复
7、由于直接从底层抓取出的记录可能存在主键不唯一(引擎在存储时产生的临时记录)和记录重复(缓冲段)以及乱码(扫描数据段时出现特征值匹配成功但不属于该表的数据段)等情况,提取出的记录可能存在异常,需要进行人工处理。
8、所有数据处理完成后。由用户方验证数据。经过用户方的验证,truncate的表和delete记录的表恢复完整。
审核编辑 黄宇
-
数据恢复
+关注
关注
10文章
690浏览量
18810 -
数据库
+关注
关注
7文章
3993浏览量
67745 -
MySQL
+关注
关注
1文章
897浏览量
29241
发布评论请先 登录
Mysql数据恢复—Windows Server下MySQL(InnoDB)全表误删数据恢复案例
数据库数据恢复—服务器异常断电导致Oracle数据库故障的数据恢复案例
MySQL数据备份与恢复策略
企业级MySQL数据库管理指南
oracle数据恢复—oracle数据库误执行错误truncate命令如何恢复数据?
MySQL数据库是什么
分布式存储数据恢复—虚拟机上hbase和hive数据库数据恢复案例
数据库数据恢复——MySQL数据库误删除表记录的数据恢复案例
从Delphi、C++ Builder和Lazarus连接到MySQL数据库
适用于MySQL和MariaDB的Python连接器:可靠的MySQL数据连接器和数据库
MySQL数据库的安装
SqlServer数据恢复—SqlServer数据库数据恢复案例

mysql数据恢复—mysql数据库表被truncate的数据恢复案例
评论