MariaDB 10.6.8数据库被覆盖,从Linux磁盘分区扫描MariaDB表数据文件的碎片页面恢复数据库
发布时间:2024-09-24
Mariadb 10.6.8 三台节点的多主集群,数据库sae被删除后,又新建了相同的表对象并导入部分表数据 MySQL误操作数据修复 MySQL数据库修复 MySQL页面碎片收集
客户名称: 某半导体相关领域公司
数据类型: MariaDB 10.6.8 on CentOS 7.9
数据库大小: 3800 GB * 3
一、 背景介绍
Mariadb 10.6.8 三台节点的多主集群,数据库sae被删除后,又新建了相同的表对象并导入部分表数据。
二、 恢复可行性分析
Mariadb 10.6.8默认参数innodb_file_per_table为ON,这样使得数据库的每个表都有独立的frm和ibd文件。Mariadb数据表以16KB页面作为基本存储单位。
在Linux系统中,删除文件时并非真正从磁盘中删除文件数据,系统会将该文件的inode标记为空闲状态,但文件数据并没有被立即清除。
这样我们可以使用MySQL误删除数据扫描工具从磁盘底层恢复被删除数据库表的ibd文件块数据,然后再使用MySQL表数据恢复工具从ibd文件块数据恢复被删除的表数据。
Mariadb多主集群的三台节点的硬盘都可以被用来恢复数据,最后合并恢复出来的数据。
三、 技术风险
以下情况可能导致无法完全恢复被删除数据库sae的表数据:
> 数据库sae被删除后又新建了相同表并导入部分数据
> Mariadb所在Linux服务器的后台数据程序一直在运行
我们会尽最大努力从三台节点的硬盘上恢复最大化的数据。
四、 数据库恢复过程
先恢复Mariadb集群第一个节点的硬盘sdh上的数据。第二个节点的恢复方法类似。
1. 从磁盘底层扫描表ibd文件块数据
通过修改MySQL误删除数据扫描工具的底层扫描逻辑,使得适用于XFS文件系统上Mariadb表数据块,将编译好的mysqlrecoveryv7上传至第一台Linux服务器。开始扫描硬盘数据,至8点已完成扫描第一个节点硬盘3.8TB数据,得到260GB的Mariadb表ibd文件块数据。
2. 从ibd块数据恢复表数据
客户将扫描出来的260GB Mariadb表ibd文件块数据打包压缩后发给我们。我们收到表ibd文件块数据后立即开展数据恢复工作。
先恢复元数据系统表SYS_TABLES等的数据,因为数据库sae被删除后又创建了相同结构的表,这导致系统表SYS_TABLES等不再包含删除前数据库sae表信息。我们使用自研的恢复工具从ibd块数据存储结构分析关联匹配各表的对应关系,得到表对象ID与存储空间ID的映射关系。
使用MySQL表数据恢复工具从ibd块数据中恢复对应表的数据,有几张表LOB字段数据占用空间达100GB以上,恢复这几张表花费了一些时间。根据客户提供的sae表恢复清单优先级顺序完成所有表的恢复工作。
3. 导入恢复出来的表数据
将MySQL表数据恢复工具恢复出来的表数据导入我司测试服务器上新建的数据库sae中。
完成第一台节点硬盘上所有数据恢复工作。抽取出了部分表数据,并发送给客户验证数据。
4. 从第二台节点的硬盘恢复数据
客户找出第二台机器上的硬盘,再次进行磁盘底层数据恢复工作。将扫描出来的表ibd块数据打包压缩发给北京雨翰数据恢复公司,我司使用与第一台节点硬盘类似的恢复方法恢复被删除的表数据。
5. 合并两个节点恢复出来的数据
完成恢复Mariadb集群第二个节点的硬盘上的所有被删除数据,将恢复出来的第二个节点的表数据导入第一个节点恢复出来的数据库sae中。
6. 客户再次验证数据
客户远程验证完毕数据,并发送全部数据给客户。
至此我司完成被删除数据库sae的恢复工作。
-----------------------------------------------------------------------------------------------------------
提供7*24专业SQL Server数据库修复,MySQL数据库修复,Sybase数据库远程及现场技术支持,Sybase ASE及Sybase SQL Anywhere数据库修复服务,Oracle数据库修复,PostgreSQL数据库恢复。
电话:13811580958(微信),QQ:289965371
We supply technical support for Sybase ASE and Sybase SQL Anywhere, also have many years of experience in recovering data from damanged Sybase devices. Contact us by
Phone: +86 13811580958
Wechat: 13811580958
Email: 289965371@qq.com
扫描雨翰数据恢复官方微信获取专业数据库恢复服务