【数据库数据恢复】windows系统服务器Sql Server数据库恢复案例

朱芳
• 阅读 435

数据库数据恢复环境:
5块磁盘组建RAID5,划分LUN供windows服务器使用;
windows服务器上部署Sql Server数据库;操作系统层面划分了三个逻辑分区。

数据库故障&初检:
未知原因导致Sql Server数据库文件丢失,涉及到数个数据库和数千张表,不能确定数据存储位置。数据库文件丢失后服务器仍然在开机运行,所幸没有大量写入数据。
1、将故障服务器内所有硬盘以只读方式进行全盘镜像备份,后续数据分析和数据恢复操作都基于镜像文件进行,避免在恢复数据的过程中对原始数据造成二次破坏。
2、基于镜像文件分析raid5底层数据,通过分析获取到的raid相关信息及内部数据块信息重组RAID。
重组RAID:
【数据库数据恢复】windows系统服务器Sql Server数据库恢复案例

3、完成RAID重组后提取LUN内的三个逻辑分区的镜像。
4、扫描文件系统内丢失文件,未找到被删除的数据库文件。
5、初检结果为数据库文件丢失,在文件系统层面无法恢复数据库数据。

数据库数据恢复流程:
1、经过初检后发现数据库文件被删除且无法在文件系统层面进行恢复后,北亚企安数据恢复工程师决定通过扫描数据页,提取页内记录的方式来恢复丢失的数据库数据。
2、使用北亚企安自主开发的数据页扫描程序扫描分区内数据页并进行提取。扫描两个分区镜像后发现系统盘分区镜像内的数据页数量极少且数据页断裂情况严重,另一分区内扫描到的数据页数量较多,暂定此分区为数据库文件的存储空间。
扫描数据页:
【数据库数据恢复】windows系统服务器Sql Server数据库恢复案例

3、Sql Server数据库使用系统表来管理所有用户表,系统表内记录了各表的列数、数据类型及约束信息等。在对系统表进行解析的过程中发现提取出来的数据页内的系统表损坏,无法正常读取信息。在与用户方沟通后得知数据库有备份文件,而且备份完成后也没有对表结构进行过大的改动,系统表可用。
4、还原备份:
【数据库数据恢复】windows系统服务器Sql Server数据库恢复案例

5、分别提取需要恢复数据的三个库中各表的表结构信息。
提取表结构信息:
【数据库数据恢复】windows系统服务器Sql Server数据库恢复案例

6、解析表结构脚本,将各表的列信息存入数据库内便于在后续的数据恢复过程中使用。
扫描脚本文件:
【数据库数据恢复】windows系统服务器Sql Server数据库恢复案例

将表结构信息存入数据库:
【数据库数据恢复】windows系统服务器Sql Server数据库恢复案例

7、解析系统表,获取用户表id信息、关联表结构与数据页。
8、新建数据库环境,使用北亚企安自主编写的软件解析记录并导入到环境内。
9、整理恢复结果。数据库文件存储的分区内除了存放数据库文件外还存放若干备份文件,所以在导出记录后可能存在重复数据,需要去重。由北亚企安数据恢复工程师编写程序进行去重。
数据库去重:
【数据库数据恢复】windows系统服务器Sql Server数据库恢复案例

10、处理完所有数据后交由用户方验证数据。用户方工程师经过反复查验后确认恢复数据完整有效。将恢复出来的数据迁移到用户方准备好的存储设备中。

点赞
收藏
评论区
推荐文章
天翼云RDS数据库如何修改数据库参数
天翼云RDS数据库支持修改数据库参数。最近遇到几个用户反馈要求天翼云对MySQLRDS数据库的库表名修改为大小写不敏感,这可以通过修改RDS数据库的参数来实现。今天就用这个实例来讲解一下天翼云RDS如何修改数据库参数。MySQL数据库对库表名称大小写是否敏感和MySQL运行的操作系统有关,因为Windows操作系统对大小写不敏感所以运行在Windows上的
Easter79 Easter79
3年前
sql server 用户创建与权限管理
要想成功访问SQLServer数据库中的数据,我们需要两个方面的授权:一、获得准许连接SQLServer服务器的权利;二、获得访问特定数据库中数据的权利(select,update,delete,createtable...)。假设,我们准备建立一个username数据库帐户,用来管理数据库mydb。一、wind
Stella981 Stella981
3年前
SQLServer数据库及注入方法
目录SQLServer数据库SQLServer数据库的查询语句SA权限开启xp\_cmdshell获取主机权限盲注SQLServer数据库SQLServer数据库SQLServer数据库是由Microsoft开发和推广的关系数据库管理系统(DBMS),是一个比较大型的数据库。端
Stella981 Stella981
3年前
PostgreSQL 恢复大法
转载自:https://yq.aliyun.com/articles/582880背景一个较大的数据库,如何只恢复一部分数据(例如只恢复某个DB)。如果访问有坏块的表。如何从无法启动的数据库中,恢复到有意义的数据。如何正确的进行备份。如何恢复到过去的某个时间点。恢复部分数据库《PostgreSQLSelect
Easter79 Easter79
3年前
SQL Server数据库镜像搭建(无见证无域控)
1\.环境配置服务器1:sqlmirror01IP:192.168.10.176服务器2:sqlmirror02IP:192.168.10.177操作系统:Windows2012R2安装.NetFramework3.5/4.0关闭服务器防火墙或设置白名单数据库版本:SQLServer20
Easter79 Easter79
3年前
SQLServer数据库及注入方法
目录SQLServer数据库SQLServer数据库的查询语句SA权限开启xp\_cmdshell获取主机权限盲注SQLServer数据库SQLServer数据库SQLServer数据库是由Microsoft开发和推广的关系数据库管理系统(DBMS),是一个比较大型的数据库。端
Stella981 Stella981
3年前
PostgreSQL 数据库备份与恢复 pd_dump pg_restore
备份PG数据库生成的文件可以有两种,一种是SQL文件,一种是二进制文件,二进制文件只能使用pg\_restore进行恢复。PostgreSQL数据库操作简要说明PostgreSQL数据库版本psqlversionpsql(PostgreSQL)9.1.3下面是在linux下的操作,在windows下面将sup
Stella981 Stella981
3年前
SQL Server数据库镜像搭建(无见证无域控)
1\.环境配置服务器1:sqlmirror01IP:192.168.10.176服务器2:sqlmirror02IP:192.168.10.177操作系统:Windows2012R2安装.NetFramework3.5/4.0关闭服务器防火墙或设置白名单数据库版本:SQLServer20
Wesley13 Wesley13
3年前
MySQL数据库全量、增量备份与恢复
MySQL数据库全量、增量备份与恢复数据库备份的重要性在生产的环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果。造成数据丢失的原因程序错误人为商店计算机失败磁盘失败灾难(如火山、地震)和偷窃数据库备份的分类从物理与
Wesley13 Wesley13
3年前
oracle基础知识
冷备份:在数据库完全关闭的情况下进行的,数据文件是一致的,在备份时没有任何访问和修改从冷备份中恢复:1文件还原2前向恢复热备份:在数据库已启动且正在运行时进行的备份。完全恢复:先把数据库还原,通过所有可用的归档日志对数据库进行前向恢复不完全恢复(时间点恢复):首先将数据库还原,利用部分日志有选择性的前滚到一个预先确定的时
凿壁偷光 凿壁偷光
2年前
苹果系列机数据恢复软件 Disk Drill for Mac
diskdrillmac版是一款超强的苹果数据恢复软件,DiskDrill下载可以为您恢复丢失的数据提供支持,使您可以备份故障磁盘,可以监控SMART属性等。具备多种功能,能够帮您恢复误跚除的任何数据,包括照片、视频、文档等等,还可以恢复iphone和iPad上的数据,还可以可以帮您恢复丢失的分区,有了它,再也不用担心误删数据了。
朱芳
朱芳
Lv1
就算步伐很小,也要步步前进。
文章
3
粉丝
0
获赞
0