数据库数据恢复—Sql Server数据库文件丢失如何恢复数据?

yumo66610个月前 (03-27)技术文章100

数据库数据恢复环境:

5块硬盘组建一组RAID5阵列,划分LUN供windows系统服务器使用。windows系统服务器内运行了Sql Server数据库,存储空间在操作系统层面划分了三个逻辑分区。

数据库故障:

数据库文件丢失,主要涉及3个数据库,数千张表。数据库文件丢失原因未知,不能确定丢失的数据库文件的存放位置。数据库文件丢失后,服务器仍处于开机状态,所幸未写入大量数据。

数据库数据恢复过程:

1、镜像备份过程不在这里赘述,后续所有的数据分析和数据恢复操作都基于镜像文件进行。

2、基于镜像文件分析所有磁盘的底层数据,获取重组RAID所需信息。根据获取到的raid相关信息内部数据块信息重组RAID。



3、完成raid重组后,提取LUN的三个分区的镜像。扫描文件系统内丢失文件,但是没有找到丢失的数据库文件,从文件系统角度无法恢复丢失的数据库文件。

4、使用北亚企安自主开发的扫描程序扫描分区内数据页并进行提取。经过扫描发现一个分区中数据页数量极少且数据页断裂情况严重,另一分区内扫描到的数据页较多,初步判断此分区为丢失的数据库文件的存储空间。

扫描数据页:



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

6、还原备份。



7、分别提取三个库中各表的表结构信息。



8、解析表结构脚本,将各表的列信息存入数据库内便于后续使用。

扫描脚本文件:



表结构信息存入数据库:



9、解析系统表获取用户表id信息、关联表结构与数据页。

10、新建数据库,使用北亚企安自主开发的软件解析记录并导入到准备好的环境内。

11、在数据库文件所在的分区内除了数据库文件外还有若干备份文件,所以在导出记录后可能存在重复数据,需要去重。北亚企安数据恢复工程师编写小程序进行去重。

数据库去重:



12、数据处理完成后,由用户方工程师对恢复出来的数据进行检验,经过查验用户方表示数据可以接受,移交数据到用户方准备好的存储中。本次数据恢复工作完成。

相关文章

Oracle数据恢复—Oracle数据删了?别慌,Oracle数据恢复有方法

相信有很多oracle数据库用户都遇到过在操作Oracle数据库时误删除某些重要数据的情况,这个时候如果数据库没有备份且数据十分重要的,怎么才能恢复误删除的数据呢?北亚企安数据恢复工程师下面简单介绍几...

mariadb数据库备份与恢复-数据一条都不能少

数据库备份与恢复是数据安全的最后一道防线。其必要性不仅在于防御风险,更是持续服务和数据资产保值的核心保障。数据面临的威胁:硬件故障:硬盘损坏、服务器宕机等物理问题可能导致数据无法访问。软件缺陷:数据库...

能否恢复误删除的数据#数据恢复

能否恢复误删除的文件?机械硬盘上的文件被删除后,如果没有往这个分区存入新数据,还是有很大的恢复机会恢复出来的。如果被删除的文件和目录是在c盘,建议您把电脑赶紧关机,然后拆硬盘挂到别的电脑上来恢复。因为...

Oracle数据库的备份与恢复,实用易学简单,转发收藏备用

Oracle数据库非常强大,有其自己的备份与恢复机制,并且细分,只要配置合理,完全可以保证数据库的完整,免去运维人员的后顾之忧。Oracle数据库使用RMAN备份,需要把数据库的非归档模式改成归档模式...

系统架构师:数据库的故障与恢复

一.故障类型数据库的故障可用事务的故障来表示,主要分为四类:事务故障。事务在运行过程中由于种种原因,如输入数据的错误、运算溢出、违反了某些完整性限制、某些应用程序的错误,以及并发事务发生死锁等,使事务...

如何在 iPhone 恢复出厂设置后恢复数据

如果您在 iPhone 上执行了出厂重置,您会发现它已删除所有旧数据。这对于清理杂乱和提高设备性能非常有用,但如果您忘记保存重要文件,那就是个坏消息。恢复出厂设置后可以恢复数据吗?是的!幸运的是,只要...