数据库数据恢复—SqlServer数据库无法被读取的数据恢复案例

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDSClaw,2核4GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: SQL Server数据库的数据无法被读取。经过数据库数据恢复工程师的初步检测,发现SQL Server数据库文件无法被读取的原因是底层File Record被截断为0,无法找到文件开头,而且数据表结构也已经损坏。镜像文件的前几十M和中间一部分空间被覆盖,系统表损坏,所以无法读取。

SQL Server数据库故障&分析&恢复方案:
SQL Server数据库的数据无法被读取。
经过数据库数据恢复工程师的初步检测,发现SQL Server数据库文件无法被读取的原因是底层File Record被截断为0,无法找到文件开头,而且数据表结构也已经损坏。镜像文件的前几十M和中间一部分空间被覆盖,系统表损坏,所以无法读取。
日志中的操作记录:
01副本.jpg
由于系统表损坏,大量数据表的结构无法确定,只能靠仅有线索和数据恢复工程师的技术&经验来恢复数据库数据。
经过北亚企安数据恢复工程师团队的会诊,最终敲定针对该数据库的数据恢复方案:
1、备份数据。对丢失数据的硬盘做全盘镜像备份,以确保数据的安全性。
2、分析备份文件中原数据库,从原数据库中寻找数据表的结构。
3、从日志中提取一部分数据表的结构。
4、从日志中和残留数据中提取完好的数据。
5、根据日志恢复对应的数据,并检查数据的正确性。
6、核对数据没问题后恢复所有数据。

SQL Server数据库数据恢复过程:
1、将故障数据库所涉及到的硬盘标记后从服务器上取下,移交给硬件工程师检测是否存在物理故障。经过检测没有发现有磁盘存在物理故障。将每块硬盘以只读方式做扇区级全盘镜像。镜像完成后将所有硬盘按照原样还原到原服务器中。
备份硬盘数据:
02副本.jpg

2、打开镜像文件,分析硬盘底层数据,发现硬盘底层残留着许多SQL Server数据库的日志和备份文件。经过查看和分析,发现日志中有很多包括插入语句的数据库操作记录;备份文件中有建表语句和一部分旧数据。
北亚企安数据恢复工程师编写了一个提取数据库相关数据的小程序,扫描所有存在的数据库残留并提取所有数据。
3、分析扫描到的所有日志文件,发现日志文件中的数据记录有着固定的开头和结尾,其中每条数据都在固定的位置上有自己的OBJECT_ID号,在接下来的扫描文件中,继续搜寻有同样OBJECT_ID的数据记录,发现结构相同,就可以确定这是完好的数据,并进行提取。
分析扫描到的备份文件,发现很多建表语句,根据这些语句可以获取到一部分表结构。针对剩余的表结构,由于截断为0的部分刚好在系统表,没有办法提取表结构,只能通过从日志中提取的数据来推理表结构和数据类型。
4、根据前面的分析,北亚企安数据恢复工程师编写程序从备份文件中提取建表语句,根据建表语句分析出表结构与各种数据类型。
5、在残留的系统表中寻找22H、07H、05H表,根据这些建立表与OBJECT_ID的对应关系。北亚企安数据恢复工程师编写程序提取日志中的记录,根据OBJECT_ID将数据和表进行对应,并插入到新表中。
6、经过验证,用户方确认恢复出来的数据完整有效,认可数据恢复结果。

相关文章
|
7月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1277 152
|
7月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
947 156
|
9月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
7月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
642 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
7月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
7月前
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
|
8月前
|
SQL 人工智能 Linux
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
383 5
|
9月前
|
SQL 存储 数据库
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
1355 0
|
9月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—服务器异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库没有备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。
|
7月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
508 158