微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

恢复损坏的数据库/表

如何解决恢复损坏的数据库/表

我们的客户面临由 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 举报,一经查实,本站将立刻删除。