Chinaunix首页 | 论坛 | 博客
  • 博客访问: 340378
  • 博文数量: 591
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5945
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-02 14:16
文章分类

全部博文(591)

文章存档

2024年(156)

2023年(218)

2022年(181)

2020年(12)

2019年(24)

我的朋友

分类: SQLServer

2023-04-06 15:05:14

数据库数据恢复环境:
5块硬盘组建RAID5,划分LUN供windows服务器使用,共有三个逻辑分区;
在windows服务器内部署有Sql Server数据库。


数据库故障:
未知原因导致数据库文件丢失,涉及5个数据库,数千个表,不能确定数据存储位置。
数据库文件丢失后服务器仍在运行,但未写入大量数据。


数据库数据恢复过程:
1、对故障设备中所有硬盘以只读方式进行完整镜像备份,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始数据造成二次破坏。
2、基于镜像文件分析raid5,获取raid相关信息并利用信息及内部数据块信息重组RAID。
重组RAID:

3、提取LUN内的三个分区镜像。
4、扫描文件系统内丢失的文件,未找到被删除的数据库文件,通过文件系统层面无法恢复数据库数据。
5、经过北亚企安数据恢复工程师团队的会诊,{BANNED}最佳终敲定通过扫描数据页并提取页内记录的数据恢复方案来恢复数据库数据。
6、使用北亚企安自主编写的数据页扫描程序扫描分区内数据页并进行提取。在分别扫描两个分区镜像后发现系统盘内数据页数量极少且数据页断裂情况严重;另一分区内扫描到数据页数量较多,暂定此分区为数据库文件存储空间。
扫描数据页:

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

9、提取数据库中各表的表结构信息。
提取表结构信息:

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

表结构信息存入数据库:

11、解析系统表获取用户表id信息、关联表结构与数据页。
12、新建数据库,使用北亚企安自主编写软件解析记录并导入到恢复环境内。
13、整理恢复结果。在此分区内除了存放数据库文件外还存放一些备份文件,所以在导出记录后可能存在重复数据,北亚企安数据恢复工程师编写程序进行去重。
数据库去重:

14、去重后由用户方工程师进行对恢复出来的数据库文件进行检测验证,经过仔细查验后确认数据完整可用。
15、由数据恢复工程师协助用户方工程师将恢复出来的数据迁移到准备好的环境中。
阅读(5920) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~