关于sqlserver:SqlServer数据库损坏后修复过程记录

39次阅读

共计 633 个字符,预计需要花费 2 分钟才能阅读完成。

一.SqlServer 数据库损坏的起因

客户的一块容量为 1.2TB 的硬盘,外面存储的是 SqlServer 数据库,客户形容说硬盘因为误操作导致分区损坏,须要对硬盘里的数据库进行数据恢复。

二. 硬盘故障初检

通过工程师对客户硬盘的初步检测,确认了客户的 SqlServer 数据库根底信息如下:
客户环境:windows 操作系统
磁盘容量:1.2T 硬盘
文件系统类型:NTFS
数据库类型:sqlserver 数据库
数据库个数:12 个
故障状况:分区损坏,数据失落

三. 复原数据库数据

1、扫描 1T 磁盘空间

首先应用自研发的 SqlServer 数据库工具对硬盘进行全盘扫描,
依据数据库的页构造,扫描磁盘空间,获取数据库页偏移地位,对象 id,页号等信息

2、拼接数据库

(1)、Sqlserver 的每个数据库页都是从 0 号页开始编号,客户共 12 个数据库,导致有大量反复页,因而无奈间接按页号从小到大拼接。

(2)、依据客户提供的数据库名和数据记录中 guid,来判断数据库页属于哪个数据库。

(3)、依据数据库名字、页号拼接出数据库。

(4)、因为缺失数据库页,拼接的数据库大小存在差别,须要批改数据库大小属性信息,之后进行挂载。

(5)、挂载数据库、胜利挂载

四. 数据验证

数据库可能胜利挂载后,工程师将客户的数据库数据进行了查看,确认根本复原残缺后,分割客户亲自对 SqlServer 数据库记录进行完整性验证。
通过验证,共 12 个数据库根本复原,数据库记录也比拟残缺,通过评估数据确认 100% 复原,本次数据库数据恢复胜利。

正文完
 0