LDF 文件上的 SQL Server 错误 833

gra*_*l8d 2 sql-server-2008 sql-server sql-server-2008-r2 hang

我在我的 ldf 文件中收到错误 833,而且我收到了很多错误。

请参阅以下内容。发生这种情况时,我的应用程序已经挂起。

我知道错误 833 已被多次报告,但是如果它始终指向我无法访问的 LDF 文件,这意味着什么?是不是因为LDF文件已经很大了?

我在 Windows 2008 环境中使用 SQL Server 2008 R2。数据库处于无响应状态,重启是唯一删除挂起 I/O 的方法。一旦开始,它还没有结束。

对此有什么可能的解释?请查看 sql 错误日志中的日志文件。

可能也是因为这个错误吗?

http://support.microsoft.com/kb/2708012

顺便说一句,sql server 一直没有响应,这发生在夜间。只有重新启动才能使服务器再次响应。

01/21/2013 12:22:09,spid3s,Unknown,SQL Server has encountered 19 occurrence(s) of I/O requests taking longer than 15 seconds to complete on file [E:\MSSQL.1\MSSQL\DATA\test_database_log.LDF] in database [test_database] (6).  The OS file handle is 0x00000000000008B8.  The offset of the latest long I/O is: 0x00001028a8ac00
01/21/2013 12:15:29,spid3s,Unknown,SQL Server has encountered 17 occurrence(s) of I/O requests taking longer than 15 seconds to complete on file [E:\MSSQL.1\MSSQL\DATA\test_database_log.LDF] in database [test_database] (6).  The OS file handle is 0x00000000000008B8.  The offset of the latest long I/O is: 0x00001028c6ac00
Run Code Online (Sandbox Code Playgroud)

Rem*_*anu 7

错误 833 本身并不是“错误”。据说是因为你的 IO 子系统很慢。LDF 的大小可能与此无关。它可能由多种因素引起:

  • 固有的缓慢驱动器
  • 一个片状硬件,通过多次重试来掩盖错误(典型的消费级驱动器)
  • 驱动器承受更多的负载

您需要通过查看驱动器负载(Perfmon物理磁盘对象)、任何操作系统报告的错误(事件查看器)进行调查,检查驱动器SMART状态。还要调查 SQL IO 负载以及有多少问题驱动器,请参阅sys.dm_io_virtual_file_stats

  • 您的 LDF 是否启用了 10% 的自动增长?大型 LDF(例如 200GB)将增长 10%,触发 20Gb 零填充,这对磁盘的要求可能非常高。首先日志不应该增长,应该发生截断,参见 http://rusanu.com/2012/07/27/how-to-shrink-the-sql-server-log/ 了解它增长的原因。即使它增长,它也应该配置为以固定数量增长,而不是 10%。所以大日志+自动增长可能会导致日志写入压力,但这只会暴露真正的问题:磁盘慢。 (2认同)