DBCC CHECKDB 基于一致性的 I/O 错误

use*_*698 5 sql-server sql-server-2008-r2 dbcc-checkdb consistency

跑步:

DBCC CHECKDB(DatabaseName) with NO_INFOMSGS 
Run Code Online (Sandbox Code Playgroud)

给了我以下错误:

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

我还在dbo.suspect_pages 中找到了一个条目

请指教。

Aar*_*and 10

  1. 确保您有一个有效的备份;希望它是从损坏之前开始的,但不久前数据没有用。如果无法直接修复并且您需要从备份中恢复数据,您应该将其搁置一旁。

  2. 该文档解释了如何纠正问题- 您可以尝试该REPAIR_REBUILD选项,如果这不能解决问题,您可以根据编写CHECKDBPaul Randal的人的说法继续下一步。他有大量关于 的文章CHECKDB,几乎涵盖了所有可以想到的场景,但哪些与您相关将取决于您尝试修复时接下来会发生什么。一个可能有用的开始,所以你知道你需要修复哪个表:

  • 此外,824 表示硬件错误,因此即使您能够修复/恢复,您也需要解决硬件问题,否则您最终会回到这种情况。 (2认同)

Art*_*r D 1

我以前从未遇到过损坏的页面。您能提供表中的任何信息dbo.suspect_pages吗?

请参阅以下资源:

布伦特·奥扎谈腐败

SQL Server 中心损坏