恢复损坏的数据库/表

问题描述

我们的客户面临由 3rd 方软件引起的数据库损坏问题。不幸的是,他们发现为时已晚,并且不再有有效的备份可以返回。修复视图等很容易,但有几个表无法访问且包含重要数据。

尝试从损坏的表中选择数据时,我收到此错误

sql Server 检测到基于逻辑一致性的 I/O 错误:不正确 pageid(预期为 1:7733;实际为 114:7667823)。它发生在一个 在偏移量 0x00000003c6a000 处读取数据库 ID 5 中的页面 (1:7733) 文件 'C:\Program Files\Microsoft sql 服务器\MSsql10_50.sql2008\MSsql\DATA\aspe_bad1.MDF'。额外的 sql Server 错误日志或系统事件日志中的消息可能提供 更多详情。这是威胁数据库的严重错误情况 完整性,必须立即纠正。完成一个完整的数据库 一致性检查 (DBCC CHECKDB)。这个错误可能是由许多 因素;有关详细信息,请参阅 sql Server 联机丛书。

运行 DBCC CHECKDB 会出现此错误

检查终止。收集事实时检测到故障。可能是 tempdb 空间不足或 系统表不一致。检查以前的错误

运行 DBCC CHECKTABLE 会产生与 select 相同的错误

运行 DBCC PAGE 时,我得到元数据:ObjectId = 0,意思是:

如果您看到 ObjectId 为 0,则表示未找到元数据。 这可能是因为:

  • 自从记录页面损坏以来,该页面所属的表已被删除
  • 系统目录以某种方式损坏
  • 页面已损坏,因此用于查找元数据的值不正确

检查 sql Server 日志仅包含 1 个不同的错误,即:

sql Server 检测到基于逻辑一致性的 I/O 错误:无法 由于缺少 DEK 而解密页面。它发生在读取页面期间 (1:7727) 在数据库 ID 5 中,文件中偏移量为 0x00000003c5e000 'C:\Program Files\Microsoft sql 服务器\MSsql10_50.sql2008\MSsql\DATA\aspe_bad1.MDF'。额外的 sql Server 错误日志或系统事件日志中的消息可能提供 更多详情。这是威胁数据库的严重错误情况 完整性,必须立即纠正。完成一个完整的数据库 一致性检查 (DBCC CHECKDB)。这个错误可能是由许多 因素;有关详细信息,请参阅 sql Server 联机丛书。

老实说,我不知所措。谁能帮我解决这个问题?甚至有可能至少在某种程度上修复吗?

谢谢, Z

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)