数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: 服务器数据恢复环境:一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。服务器故障&初检:由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所

服务器数据恢复环境:
一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。
在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。

服务器故障&初检:
由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。
数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。
将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所有磁盘按照编号还原到原硬盘槽位。后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
1、基于镜像文件分析所有硬盘的底层数据,获取该组RAID5相关信息及内部数据块信息,利用这些获取到的信息虚拟重组RAID。
重组RAID:
01副本.jpg
2、完成raid5阵列重组后,提取LUN内两个分区的镜像。
3、扫描文件系统内丢失的文件,但是没有找到丢失的数据库文件,在文件系统层面无法恢复数据。

服务器数据恢复过程:
1、通过初检确定无法从文件系统层面恢复数据后,北亚企安数据恢复工程师只能采取通过扫描数据页并提取页内记录的方案恢复数据库数据。
2、使用北亚企安自主开发的数据页扫描程序扫描&提取分区内的数据页。在扫描两个分区的镜像后发现一个分区(系统分区)内数据页数量极少且数据页断裂情况严重;另一分区内扫描到数据页个数较多了,应该就是数据库文件的存储空间。
扫描数据页:
02副本.jpg

3、Sql Server数据库使用系统表来管理所有用户表,这些系统表记录了各表的列数、数据类型及约束信息等。解析系统表过程中发现提取出的数据页内的系统表损坏,无法正常读取信息。在与用户方沟通后才得知有备份文件,且备份后没有对表结构进行大的改动,系统表可用。
4、还原备份。
03副本.jpg

5、分别提取三个丢失的数据库中各表的表结构信息。
提取表结构信息:
04副本.jpg

6、解析表结构脚本。将各表的列信息存入数据库内。
扫描脚本文件:
05副本.jpg

将表结构信息存入数据库:
06副本.jpg

7、解析系统表获取用户表id信息、关联表结构与数据页。
8、新建数据库,使用北亚企安自主开发的程序解析记录并导入到新建的数据库环境内。
9、整理恢复结果。在数据库文件所在的分区内除了数据库文件,还存放有备份文件,所以在导出的记录中应该存在重复的数据,必须将数据去重。北亚企安数据恢复工程师编写SQL存储过程对数据进行去重。
数据库去重:
07副本.jpg

10、处理完数据后交由用户方验证数据。用户方对数据进行检查后确认恢复出来的数据有效。在数据恢复工程师的协助下,用户方将恢复出来的数据迁移到准备好的存储设备中。本次数据恢复工作完成。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
15天前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
44 11
|
18天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
24天前
|
存储 Oracle 关系型数据库
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
78 11
|
25天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
29天前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
28天前
|
SQL 监控 安全
SQL Servers审核提高数据库安全性
SQL Server审核是一种追踪和审查SQL Server上所有活动的机制,旨在检测潜在威胁和漏洞,监控服务器设置的更改。审核日志记录安全问题和数据泄露的详细信息,帮助管理员追踪数据库中的特定活动,确保数据安全和合规性。SQL Server审核分为服务器级和数据库级,涵盖登录、配置变更和数据操作等事件。审核工具如EventLog Analyzer提供实时监控和即时告警,帮助快速响应安全事件。
|
2月前
|
SQL 数据库
GBase8a 数据库集群v953扩容案例问题分享
GBase8a 数据库集群v953扩容案例问题分享
|
2月前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
2月前
|
存储 SQL 数据库
Sybase数据恢复—Sybase数据库常见问题之数据库无法启动的恢复案例
Sybase数据库数据恢复环境: Sybase数据库版本:SQL Anywhere 8.0。 Sybase数据库故障&分析: Sybase数据库无法启动。 使用Sybase Central连接报错。 数据库数据恢复工程师经过检测,发现Sybase数据库出现故障的原因是:异常断电造成Sybase数据库无法回写正常数据,导致多个存储页数据不一致,系统表描述和存储表不一致,部分存储页底层数据完全杂乱。
|
2月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。