MS SQL 错误 :17883,严重度: 1,状态: 0
公司一台老旧的SQL SERVER 2000 数据库,一周内会出现若干次(一次或多次)CPU 持续100%,导致应用程序没有反应的情况,如下图所示:
错误信息如下所示:
数据库版本、补丁情况如下:
- SELECT SERVERPROPERTY('productversion') AS ProductVersion ,
- SERVERPROPERTY('productlevel') AS ProductLevel ,
- SERVERPROPERTY('edition') AS Edition
- ProductVersion ProductLevel Edition
- ---------------------------------------------------------------------
- 8.00.760 SP3 Enterprise Edition
查看微软官方文档,提示出错原因:检查点进程强制 SQL Server 将所有脏页都写入磁盘。支持和维护快速 I/O 速率以及不会导致 I/O 尝试被挂起的系统可以触发一种情况,由此,检查点进程便无需延迟以等待完成 I/O 进程。当检查点未能正确生成时,它会影响整个数据库活动和性能。这可能导致事务减少及批量提交速率降低。SQL Server 错误日志中可能出现以下错误消息:
错误:17883, 严重性:1, 状态: 0
调度程序 0 似乎已被挂起。SPID 7,ECID 0,UMS 上下文 0x045530B8。
解决方案:
从微软官方文档来看,这是SQL SERVER 2000的一个bug,需要打相关补丁,具体参考资料如下所示:
Service Pack 信息
要解决此问题,请获取最新的 Microsoft SQL Server 2000 Service Pack。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290211 (http://support.microsoft.com/kb/290211/ )
如何获取最新的 SQL Server 2000 Service Pack
安全修补程序信息
此修复程序随 Microsoft 安全公告 MS03-031 的安全修补程序一起提供。 有关如何从 Microsoft 下载中心获取此安全修补程序的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
815495 (http://support.microsoft.com/kb/815495/ )
MS03-031:SQL Server 累积安全修补程序
821277 (http://support.microsoft.com/kb/821277/ )
MS03-031:SQL Server 2000 Service Pack 3 的安全修补程序
----------------------------------------------------------------------------------------------------------------------
自从打补丁后,最近几天都没有出现这个问题了,后续需要观察一段时间,看是否还会出现此类问题,才能确定补丁是否真正解决了这个问题。
参考资料:
http://support.microsoft.com/kb/815056
http://support.microsoft.com/kb/821277
http://www.microsoft.com/zh-cn/download/details.aspx?id=18384
http://support.microsoft.com/kb/824430/zh-cn