实用案例 - SqlServer数据库数据无法读取解决方法

本文详细介绍了当SQL Server数据库数据无法读取时,如何通过备份和日志分析进行故障排查和数据恢复的过程。首先,分析了数据库文件损坏的原因,接着提出了备份数据、扫描硬盘、分析日志和提取数据的步骤。通过编写程序从日志和备份文件中恢复表结构和数据,最终成功验证并恢复了数据。
摘要由CSDN通过智能技术生成

1、数据库故障概述
SQL server数据库的数据无法被读取。

2、故障分析

SQL server数据库文件无法被读取,是由于底层File Record被截断为0,无法找到文件开头,数据表结构也被损坏。镜像文件的前面80M左后的空间,还有中间一部分被覆盖掉,导致系统表被损坏,所以无法读取,考虑用自动备份文件来提取表结构。
日志中的操作记录:
数据库数据恢复,数据恢复;数据恢复案例
由于系统表被损坏,有大量数据表的结构无法被确定,只能靠工程师根据经验进行恢复工作。

3、解决方案

备份用户数据,对丢失数据的硬盘。做全盘备份,以确保数据的安全性。
分析备份文件中旧数据的数据库。
从旧数据库中寻找数据表的结构。
从日志中提取一部分数据表的结构。
从日志中和残留数据中提取完好的数据。
根据日志恢复对应的数据,并检查数据是否正确。
核对数据没问题后恢复所有数据。

4、数据恢复实施过程

4.1备份用户数据
由于数据全部都放在客户的原盘中,先交给硬件部门检测硬盘是否存在物理故障。经检测没问题后对每块硬盘做全盘镜像,使用专用工具将硬盘中所有扇区镜像到一块备份硬盘中。

4.2扫描镜像文件
用winhex打开残留文件,仔细分析硬盘底层数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值