加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_常德站长网 (https://www.0736zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer数据库损坏的修复过程

发布时间:2022-12-03 10:02:28 所属栏目:MsSql教程 来源:互联网
导读: 一.SqlServer数据库损坏的原因
客户的一块容量为1.2TB的硬盘,里面存储的是SqlServer数据库,客户描述说硬盘由于误操作导致分区损坏,需要对硬盘里的数据库进行数据恢复。
二.硬盘故障初检

一.SqlServer数据库损坏的原因

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

二.硬盘故障初检

经过工程师对客户硬盘的初步检测,确认了客户的SqlServer数据库基础信息如下:

客户环境:windows操作系统

磁盘容量:1.2T硬盘

文件系统类型:NTFS

数据库类型:sqlserver数据库

数据库个数:12个

故障情况:分区损坏mssql数据库还原,数据丢失

三.恢复数据库数据

1、扫描1T磁盘空间

首先使用自研发的SqlServer数据库工具对硬盘进行全盘扫描,

根据数据库的页结构,扫描磁盘空间,获取数据库页偏移位置,对象id,页号等信息

mssql数据库还原_mssql bak 还原_umail 还原单个邮箱数据

2、拼接数据库

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

mssql数据库还原_umail 还原单个邮箱数据_mssql bak 还原

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

mssql数据库还原_umail 还原单个邮箱数据_mssql bak 还原

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

mssql数据库还原_mssql bak 还原_umail 还原单个邮箱数据

(4)、由于缺失数据库页,拼接的数据库大小存在差异,需要修改数据库大小属性信息,之后进行挂载。

mssql数据库还原_umail 还原单个邮箱数据_mssql bak 还原

(5)、挂载数据库、成功挂载

mssql数据库还原_umail 还原单个邮箱数据_mssql bak 还原

四.数据验证

数据库能够成功挂载后,工程师将客户的数据库数据进行了检查,确认基本恢复完整后,联系客户亲自对SqlServer数据库记录进行完整性验证。

经过验证,共12个数据库基本恢复,数据库记录也比较完整,经过评估数据确认100%恢复,本次数据库数据恢复成功。

(编辑:应用网_常德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!