0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数据库数据恢复—通过拼接数据库碎片恢复SQLserver数据库

Frombyte 来源:Frombyte 作者:Frombyte 2024-10-31 13:21 次阅读

数据库数据恢复环境&故障:
一个运行在存储上的SQLServer数据库,有1000多个文件,大小几十TB。数据库每10天生成一个NDF文件,每个NDF几百GB大小。数据库包含两个LDF文件。
存储损坏,数据库不可用。管理员试图恢复数据库,发现有数个ndf文件大小变为0KB。
虽然NDF文件大小变为0KB,但是NDF文件在磁盘上还可能存在。可以尝试通过扫描&拼接数据库碎片来恢复NDF文件,然后修复数据库。

数据库数据恢复过程:
1、将存储上所有磁盘标记后取出,经过硬件工程师检测没有发现有硬盘存在硬件故障,都可以正常读取。以只读方式将所有磁盘进行扇区级全盘镜像。镜像完成后将所有磁盘按照原样还原到原存储中。后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始数据造成二次破坏。
2、北亚企安数据恢复工程师编写数据库碎片扫描程序扫描数据库碎片。根据NDF文件的页面特征,按照文件号和页号拼接碎片,重组生成那些大小变为0kb的NDF文件。
3、使用SQLServer文件检测工具检测所有数据文件,结果发现拼接出的数个NDF文件有少量的空页,其他文件正常。
4、进一步分析发现数据页在存储层面已经不存在了,这些数据页无法恢复,即这几个NDF文件无法完整恢复。
5、尝试附加数据库,报错 “处理数据库的日志时出错,如果可能请从备份还原。如果没有可用的备份,可能需要重新生成日志。”
6、修改系统表,从系统表剔除掉最后添加的LDF文件,计算并修改校验。尝试进行无日志附加数据库,报错:“数据库存在一致性错误。”

wKgaoWcjE32AbQdWAAJD_hojvJc119.png北亚企安数据恢复—SQLServer数据库数据恢复



7、修改系统表中记录这几个损坏的NDF文件的块数量的值,改为和拼接出来的NDF文件块的数量一致,更改这4个NDF文件首页,计算并修改校验值。
8、无日志附加数据库,仍然报错“数据库存在一致性错误。”
9、由于空页都出现在这几个NDF文件后面的十几个块中,截断文件对数据完整性影响不大。重新修改系统表和NDF文件,将数据库中记录NDF文件的块数量的值改为等于报错的块前一页,计算并修改校验。
10、重新进行无日志附加数据库,报错“由于数据库没有完全关闭,无法重新生成日志。”

poYBAGM1Ey2AboEdAAE1URGGv-c292.png北亚企安数据恢复—SQLServer数据库数据恢复



11、修改MDF文件中的数据库的状态值,让数据库认为是完全关闭的。
12、重新附加数据库,附加成功。

wKgZoWcjE5mAPCmpAAG8-MZl5WM510.png北亚企安数据恢复—SQLServer数据库数据恢复


数据库数据恢复结果:
数据库文件成功附加后,由用户方通过数据库中的对象进行查询&验证,经过查询验证,确定表中信息基本完整,数据恢复完整。用户方认可数据恢复结果。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据恢复
    +关注

    关注

    10

    文章

    533

    浏览量

    17331
  • 数据库
    +关注

    关注

    7

    文章

    3750

    浏览量

    64206
  • SQLserver
    +关注

    关注

    0

    文章

    17

    浏览量

    6990
收藏 人收藏

    评论

    相关推荐

    Oracle数据恢复—异常断电后Oracle数据库报错的数据恢复案例

    Oracle数据库故障: 机房异常断电后,Oracle数据库报错:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开
    的头像 发表于 09-30 13:31 186次阅读
    Oracle<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—异常断电后Oracle<b class='flag-5'>数据库</b>启<b class='flag-5'>库</b>报错的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复—Oracle数据库文件system01.dbf损坏的数据恢复案例

    打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。
    的头像 发表于 09-21 14:25 210次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—Oracle<b class='flag-5'>数据库</b>文件system01.dbf损坏的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复—SQL Server数据库出现823错误的数据恢复案例

    SQL Server数据库故障: SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份
    的头像 发表于 09-20 11:46 244次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—SQL Server<b class='flag-5'>数据库</b>出现823错误的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复SqlServer数据库底层File Record被截断为0的数据恢复案例

    SQL Server数据库数据无法被读取。 经过数据库数据恢复工程师的初步检测,发现SQL Server
    的头像 发表于 07-26 11:27 312次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—<b class='flag-5'>SqlServer</b><b class='flag-5'>数据库</b>底层File Record被截断为0的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复—SQL Server数据库所在分区空间不足报错的数据恢复案例

    Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障
    的头像 发表于 07-10 13:54 394次阅读

    数据库数据恢复数据库所在分区空间不足导致sqlserver故障的数据恢复案例

    数据库数据恢复环境: 某品牌r520服务器,服务器中有7块SAS硬盘,这7块硬盘组建了一组2盘raid1阵列和一组5盘raid5阵列,raid1阵列存储空间安装操作系统,raid5阵列存储空间存放
    的头像 发表于 05-22 13:16 365次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—<b class='flag-5'>数据库</b>所在分区空间不足导致<b class='flag-5'>sqlserver</b>故障的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复—raid5阵列上层Sql Server数据库数据恢复案例

    数据库数据恢复环境: 5块硬盘组建一组RAID5阵列,划分LUN供windows系统服务器使用。windows系统服务器内运行了Sql Server数据库,存储空间在操作系统层面划分
    的头像 发表于 05-08 11:43 447次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—raid5阵列上层Sql Server<b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复—Sql Server数据库文件丢失的数据恢复案例

    服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据
    的头像 发表于 04-11 15:38 782次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—Sql Server<b class='flag-5'>数据库</b>文件丢失的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复】Oracle数据库ASM实例无法挂载的数据恢复案例

    oracle数据库ASM磁盘组掉线,ASM实例不能挂载。数据库管理员尝试修复数据库,但是没有成功。
    的头像 发表于 02-01 17:39 438次阅读
    【<b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>】Oracle<b class='flag-5'>数据库</b>ASM实例无法挂载的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复—未开启binlog的Mysql数据库数据恢复案例

    mysql数据库数据恢复环境: 本地服务器,windows server操作系统 ,部署有mysql单实例,数据库引擎类型为innodb,独立表空间,无
    的头像 发表于 12-08 14:18 1031次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—未开启binlog的Mysql<b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复SQLserver数据库被加密如何恢复数据

    一台服务器上的SQLserver数据库被勒索病毒加密,无法正常使用。该服务器上部署有多个SQLserver数据库,其中有2个数据库及备份文件
    的头像 发表于 11-23 14:42 857次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—<b class='flag-5'>SQLserver</b><b class='flag-5'>数据库</b>被加密如何<b class='flag-5'>恢复数据</b>?

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

    MSSQL Server数据库比较常见的报错是“附加数据库错误823”。如果数据库有备份,只需要还原备份即可;如果无备份或者备份不可用,则需要使用专业的数据
    的头像 发表于 11-10 16:20 831次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—MSSQL Server报错“附加<b class='flag-5'>数据库</b>错误823”的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复—MySQL数据库表误删除记录的数据恢复案例

    数据库数据恢复环境: 一台本地windows sever操作系统服务器,服务器上部署mysql数据库单实例,引擎类型为innodb,表内数据
    的头像 发表于 11-09 15:16 1227次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—MySQL<b class='flag-5'>数据库</b>表误删除记录的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复——MongoDB数据库介绍和数据恢复案例

    MongoDB数据库是文档数据存储,将文档存储在集合之中,不是像MySQL一样的关系型数据库
    的头像 发表于 11-08 15:04 825次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>——MongoDB<b class='flag-5'>数据库</b>介绍和<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    服务器数据恢复—误还原快照导致SqlServer数据库数据丢失的数据恢复案例

    服务器数据恢复环境: vmfs文件系统,存放的是SqlServer数据库及其他办公文件。 服务器故障: 工作人员误操作还原快照,导致了Sq
    的头像 发表于 11-06 15:06 638次阅读