1

我有一个只能使用恢复的 SQL Server 2005 数据库

Restore Database The_DB_Name
From Disk = 'C:\etc\etc'
With Continue_After_Error

我被告知源数据库很好。还原报告

警告:在数据库“The_DB_Name”中对象 ID nnnnn 的索引“IDX_Comp_CompanyId”(index_id = 2) 的元数据中检测到列可空性不一致。索引可能已损坏。运行 DBCC CHECKTABLE 以验证一致性。

DBCC CHECKTABLE (Company)

消息 8967,级别 16,状态 216,第 1 行 DBCC 发生内部错误,阻止进一步处理。联系客户支持服务。

消息 8921,级别 16,状态 1,线路 1
检查已终止。收集事实时检测到故障。可能是 tempdb 空间不足或系统表不一致。检查以前的错误。

Alter Index IDX_Comp_CompanyId On dbo.Company
Rebuild

给我

消息 824,级别 24,状态 2,第 1 行
SQL Server 检测到基于逻辑一致性的 I/O 错误:页面 ID 不正确(预期为 1:77467;实际为 45:2097184)。它发生在读取文件“C:\etc\etc.mdf”中偏移量 0x00000025d36000 的数据库 ID 20 中的页面 (1:77467) 期间。SQL Server 错误日志或系统事件日志中的其他消息可能会提供更多详细信息。这是威胁数据库完整性的严重错误情况,必须立即纠正。完成完整的数据库一致性检查 (DBCC CHECKDB)。这个错误可能是由许多因素引起的;有关详细信息,请参阅 SQL Server 联机丛书。

我有多少麻烦?

4

1 回答 1

3

索引中的损坏并不像基表中的损坏那么严重,因为可以重建索引。

比较源数据库和目标数据库之间的表和索引定义。还要检查两台服务器的版本。(恢复到服务器时备份是否自动升级)删除并重新创建索引并重新运行 CheckTable。

于 2008-09-16T03:53:58.663 回答