数据库数据恢复—空间不足导致sqlserver数据库故障的数据恢复

yumo6664个月前 (03-27)技术文章33

数据库数据恢复环境:

某品牌r520服务器,服务器中有7块SAS硬盘,这7块硬盘组建了一组2盘raid1阵列和一组5盘raid5阵列,raid1阵列存储空间安装操作系统,raid5阵列存储空间存放数据。服务器上部署sql server数据库,数据库存放在C盘。

数据库故障:

工作人员发现服务器的C盘容量即将耗尽,于是将sql server数据库路径指向D盘,在D盘生成了一个.ndf文件。一个多星期后,sql server数据库出现故障,连接失效,无法正常附加查询。

数据库数据恢复过程:

1、将服务器中所有磁盘编号后取出,硬件工程师对所有磁盘进行检测后没有发现有硬盘存在硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所有磁盘按照编号还原到原服务器中。

2、基于镜像文件分析RAID结构。根据分析获取到的raid信息重组RAID1和RAID5。

3、在数据库发生故障之后多次在原始环境下尝试恢复数据库,导致原始数据库文件被更改覆盖,磁盘空间被多次复写,无法使用多次尝试恢复后的数据库文件进行修复。和用户方沟通后得知数据库发生故障的时候(尝试恢复数据库之前),工作人员备份过一份的原始数据库文件。

4、从重组的RAID5阵列的存储空间中将备份的数据库文件拷贝出来,尝试在数据库中附加,但是附加失败,出现错误提示。错误提示主数据库文件和次级数据库文件不匹配。

错误提示:



5、查看.ndf文件底层,发现.ndf文件中几乎没有数据。尝试取消.mdf文件和.ndf文件之间的关联,只用.mdf文件进行附加。只用.mdf文件附加也发生错误,但是错误提示发生改变。错误提示日志文件(.ldf)和数据库文件(.mdf)不匹配。

只用.mdf文件进行附加的错误提示:



6、尝试将数据库进行无数据库附加,附加成功。但是发现数据库系统表损坏,无法正常使用。

将数据库进行无数据库附加的错误提示:



7、尝试修复数据库的系统表,由于系统表损坏过于严重,无法修复。

8、解析数据库文件中的数据库记录。北亚企安数据恢复工程师编写相应的程序提取数据库文件中的数据库记录。根据数据库备份获取数据库中的表结构,重构表结构并将提取出的数据库记录导入到新的表中。

9、由用户方对提取出的数据库记录进行验证,经过仔细验证确,用户方确认所有数据完整恢复,认可数据恢复结果。本次数据恢复工作完成。

相关文章

数据库数据恢复——MySQL数据库Delete命令删除数据的数据恢复

MySQL数据库是一种关系型数据库。MySQL数据库相比较其他数据库有以下特点:体积小、速度快、性价比高。MySQL数据库的源码开放,且支持绝大多数操作系统,便于搭建和维护,所以MySQL数据库被广泛...

数据库数据恢复—SqlServer数据库表结构损坏的数据恢复案例

SQL Server数据库故障&分析&恢复方案:SQL Server数据库的数据无法被读取。经过数据库数据恢复工程师的初步检测,发现SQL Server数据库文件无法被读取的原因是底层File Rec...

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

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

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

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

数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例

SQL Server数据库故障:SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。SQL Server数据库出现823错误的可能原因有:数据库物理页...