我有一个只能使用
恢复的SQL Server 2005数据库Restore Database The_DB_Name
From Disk = 'C:\etc\etc'
With Continue_After_Error
我被告知源数据库很好。还原报告
警告:列可为空 检测到的不一致性 索引的元数据 “IDX_Comp_CompanyId”(index_id = 2) 在数据库中的对象ID nnnnn上 “The_DB_Name”。该指数可能是 腐败。运行DBCC CHECKTABLE进行验证 一致性。
DBCC CHECKTABLE (Company)
给出
Msg 8967,Level 16,State 216,Line 1 DBCC中发生内部错误 这妨碍了进一步处理。 联系客户支持服务。
Msg 8921,Level 16,State 1,Line 1
检查已终止。失败了 在收集事实时检测到 可能是tempdb空间不足或者 系统表不一致。校验 以前的错误。
Alter Index IDX_Comp_CompanyId On dbo.Company
Rebuild
给了我
Msg 824,Level 24,State 2,Line 1
SQL Server检测到逻辑 基于一致性的I / O错误:不正确 pageid(预期1:77467;实际 45:2097184)。它发生在阅读期间 页面(1:77467)在数据库ID 20中 在文件中偏移0x00000025d36000 'C:\等\ etc.mdf'。其他消息 在SQL Server错误日志或系统中 事件日志可能会提供更多细节。 这是一个严重错误的情况 威胁数据库完整性并且必须 立即纠正。完成一个 完整的数据库一致性检查(DBCC CHECKDB)。此错误可能是由 很多因素;欲获得更多信息, 请参阅SQL Server联机丛书。
我有多麻烦?
答案 0 :(得分:3)
索引中的损坏并不像基表中的损坏那么糟糕,因为可以重建索引。
比较源数据库和目标数据库之间的表和索引定义。 检查两个服务器的版本。 (恢复到服务器时备份是否自动升级) 删除并重新创建索引并重新运行CheckTable。