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

文章翻译 文章翻译
文章编号: 828339 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

症状

如果您收到以下错误消息,则可能表示 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 调用使用的详细信息,请参阅本文的"更多信息"一节。

解决方案

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 系统事件日志中的任何系统错误或与磁盘相关的错误。您还可以与您的硬件供应商联系,以运行任何相应的诊断程序。

更多信息

错误消息的详细信息

以下 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 中的问题,必须为与文件系统或设备驱动程序与文件相关联的问题对它进行调查。

参考

当您使用跟踪标记 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 数据库引擎输入/输出要求

属性

文章编号: 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
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 828339
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com