错误消息 823 可能指示硬件问题或 SQL Server 中的系统问题

原文来自:http://support.microsoft.com/kb/828339

Jesse备注:一旦出现此文描述的问题时,需重点关注下,并且要做checkdb看看是否已经出现了影响数据存储安全的事情发生,查看下,msdb.dbo.suspect_pages表中的内容。

本文内容

Collapse image症状

如果您收到以下错误消息,则可能表示 Microsoft SQL Server 2000 程序检测到硬件或系统问题时它被读取或写入到数据库文件:
错误 823
I/O 错误 < error > 过程中检测到 < operation > 偏移量处 < offset > 文件中 < file>'
注意错误消息的格式是在 Microsoft SQL Server 2005 和 Microsoft SQL Server 7.0 稍有不同。但是,相同的概念和讨论也应用于 SQL Server 2005 和 SQL Server 7.0。

此消息的各个部分有关的信息如 < error > 和 < operation >,和的通过 SQL Server 2000 所做的 Microsoft Windows API 调用使用的详细信息,请参阅本文的"更多信息"一节。

Collapse image解决方案

SQL Server 2000 会引发如果满足下列条件,则本文"症状"一节中提到的错误:
  • 操作系统错误: A 读取 Windows API 调用或写入 Windows API 调用不成功,和 SQL Server 遇到操作系统错误相关的 Windows API 调用。下面的错误消息是错误 823 的操作系统的一个示例:
    2003-07-28 09:01:27.38 spid75 错误: 823,严重性: 24,
    状态: 2
    2003-07-28 09:01:27.38 spid75 I/O 错误 1117年 (请求不能执行由于的) 过程中检测到读取 0x0000002d460000 文件 'e:\program files\Microsoft SQL Server\mssql\data\mydb.MDF 中的偏移量 I/O 设备错误。
    操作系统错误 6 除外 (的句柄无效),操作系统错误 823 错误很可能报告的与相关的基础系统问题或硬件问题。 如果将出现操作系统错误,即使 DBCC CHECKDB 语句不报告问题,则必须使用您的硬件供应商、 系统管理员或 Microsoft 产品支持服务,若要解决此问题。

    注意您可能也不可能会看到与错误消息中的该文件相关联的数据库上的 DBCC CHECKDB 语句中的错误。当您看到 823 错误时,您可以运行 DBCC CHECKDB 语句。如果 DBCC CHECKDB 语句未报告任何错误,您可能有一个间歇性的系统问题或磁盘问题。
  • I/O 逻辑检查失败: 如果读取的 Windows API 调用或数据库文件的写入 Windows API 调用成功,但对数据的特定逻辑检查不成功 (残缺的页,例如),就会产生 823 错误。下面的错误消息是错误 823 的逻辑 I/O 的示例检查失败:
    2003-09-05 16:51:18.90 spid17 错误: 823,严重性: 24,
    状态: 2
    2003-09-05 16:51:18.90 spid17 I/O 读取在过程中检测到的错误 (残缺页) 的偏移量中的 0x00000094004000 文件 'F:\SQLData\mydb.MDF
    若要解决此问题,第一次与错误消息中的该文件相关联的数据库上运行 DBCC CHECKDB 语句。如果 DBCC CHECKDB 语句报告错误,改正这些错误之前解决此问题。如果问题仍然存在,即使已更正 DBCC CHECKDB 错误,或者 DBCC CHECKDB 语句未报告任何错误查看 Microsoft Windows NT 系统事件日志中的任何系统错误或与磁盘相关的错误。您还可以与您的硬件供应商联系,以运行任何相应的诊断程序。

Collapse image更多信息

错误消息的详细信息

以下 823 错误消息的各部分更详细地说明此处:
错误 823
I/O 错误 < error > 过程中检测到 < operation > 偏移量处 < offset > 文件中 < file>'
错误 823 邮件信息可以被中有更详细的介绍:
  • <error >: 这可以是操作系统错误或逻辑的 I/O 检查失败。一个操作系统错误的操作系统错误号后面 I/O 错误。操作系统错误的文本包含在括号后"I/O 错误error number"。

    对于逻辑的 I/O 复选故障失败消息是在圆括号内,并可以是下列值之一:
    • (残缺的页): 残缺页有关的详细信息,请参阅 SQL Server 2000 丛书联机。
    • (坏页 ID): 此消息意味着在页面页眉上的 pageID 不是预期的页面从磁盘读取的。例如对于如果 SQL Server 2000 提供了文件偏移量为 100 的逻辑页的数据库文件 1,该 8 KB 页的页标题上 pageID 应该 1:100。如果该错误不,页面 ID 将包括在逻辑的 I/O 复选失败消息。
    • (传输不足字节): 此问题指示 Windows API 调用成功,但已传输的字节是未预期的。
  • <operation>: 这是读取或写入。
  • <offset>: 这是物理的字节偏移量,从文件开头。此数字除以 8192 将为您提供的错误会影响该逻辑页编号。
  • <file>: 这是与 I/O 问题相关联的文件,它包括其完整的物理路径。

SQL Server I/O 和 Windows API

SQL Server 2000 使用 ReadFile、 ReadFileScatter、 WriteFile,以及 WriteFileGather 的标准 Windows API 调用来执行其数据库文件的 i/o 操作。当 SQL Server 2000 使用 Windows API 调用时,已经成功地,打开该文件或 SQL Server 2000 将不尝试从其读取或写入它。因此,Windows API 的调用不成功,并在错误是操作系统错误 6 ("无效处理") 以外的其他错误可能被引发在 Windows 中或通过诸如设备驱动程序的较低级别的软件组件。因为操作系统错误 6 是无效的句柄、 SQL Server 是否以使 Windows API 的调用使用了无效的句柄会出现此问题。但是,这仍可能是系统问题。

例如对于您会遇到以下错误消息 SQL Server 错误日志文件中的,如果 SQL Server 遇到操作系统错误 2,它使用 Windows API 的调用将写入 tempdb 主数据库文件时:
错误: 823 严重性: 24,状态: 4
I/O 错误 2 (系统找不到指定的文件)。 在文件中的偏移量 0x00000000284000 处写入过程中检测到 D:\Program Files\Microsoft SQL Server\MSSQL\data\tempdb.mdf
因为 SQL Server 已成功打开该文件,而没有收到无效的句柄错误,将可能被级别较低的内核软件组件如文件系统或设备驱动程序中引发该错误。此问题并不表示 SQL Server 中的问题,必须为与文件系统或设备驱动程序与文件相关联的问题对它进行调查。

Collapse image参考

当您使用跟踪标记 818 SQL Server 错误日志文件可能被写入 823 错误的其他诊断信息。 有关此信息的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
826433添加到检测未报告的 I/O 问题 PRB: 其他 SQL Server 诊断
SQL Server 需要系统支持有保障的传递到稳定的媒体 Microsoft SQL Server Always-On 存储解决方案审查程序下所述。 Fo有关输入和输出要求 SQL Server 数据库引擎的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
967576Microsoft SQL Server 数据库引擎输入/输出要求

Collapse image属性

文章编号: 828339 - 最后修改: 2005年12月20日 - 修订: 2.4
这篇文章中的信息适用于:
  • Microsoft SQL Server 2000 标准版
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
关键字: 
kbmt kbprb KB828339 KbMtzh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值