今天管理的SQL Server遇到了Error 1229错误:
Error 1229:Process ID 102:51 owns resources that are blocking processes on scheduler 1.
一秒钟产生大量的application event,一段时间后会导致无法登入。重启几分钟后故障依然发生。
起初怀疑是发布订阅的job导致,后disable这些job(甚至关闭了sqlagent),仍然发生。
经过查询微软网站得知可能是由于process阻塞导致问题发生.
SQL Server 7.0
Error 1223:Process ID %d:%d cannot acquire lock "%s" on resource %s because a potential deadlock exists on Scheduler %d for the resource.Process ID %d:%d holds a lock "%h" on this resource.
SQL Server 2000
Error 1229:Process ID %d:%d owns resources that are blocking processes on scheduler %d.
新的错误信息包括以下几种。
扩展的锁定检测: 1223, 1229
调度程序挂起检测:17881, 17883
所有调度程序挂起检测: 17882, 17884
SQL Server 7.0
Error 1223:Process ID %d:%d cannot acquire lock "%s" on resource %s because a potential deadlock exists on Scheduler %d for the resource.Process ID %d:% d holds a lock "%h" on this resource.
参数描述:
等待的 SPID
等待的 ECID(子进程执行 ID)
锁定模式名
资源名
逻辑
UMS 调度程序 ID
拥有的 SPID
拥有的 ECID
拥有的资源名
SQL Server 2000
Error 1229:Process ID %d:%d owns resources that are blocking processes on scheduler %d.
参数描述:
拥有的 SPID
拥有的 ECID(子进程执行 ID)
拥有的逻辑 UMS 调度程序 ID
UMS
为了更好地理解一些附加的运行状况诊断,您必须首先理解 SQL Server 是如何使用 User Mode Scheduling (UMS) Ums.dll 帮助文件的。
SQL Server 7.0 和 Microsoft SQL Server 2000 都使用逻辑调度程序。这些调度程序可帮助确保 SQL Server 能最大限度地利用与关键数据库操作路径相关的操作系统资源。UMS 层可确保 SQL Server 正确使用 Win32 事件,严格控制线程和纤程(或两者)调度对操作系统的可见性。通过严格控制可以运行的线程或纤程,当涉及数据库基元(如锁定)时,SQL Server 可以最大限度地使用 CPU。
例如,逻辑调度允许锁定等待线程休眠(Win32 事件上的 WaitForSingleObject),直到锁定所有者解除锁定并发出信号 (SetEvent) 将其唤醒。
示例情形
客户机 1 连接到 SQL Server 上。
客户机 1 运行 Transact-SQL 命令,该命令启动一个事务并执行数据修改。
例如:
客户机 1 变为 IDLE,显示为休眠状态,并等待 sysprocesses 系统表中带有打开事务的命令。
客户机 2 到 255:大约 254 多台客户机登录到 SQL Server,并从authors 表发布 SELECT 命令。这些客户机在初始更新时将全部阻塞。
客户机 1 试图提交事务,但是由于客户机 2 到 255 占用了所有工作线程,因此客户机 1 只能排队。
最后,通过修改SQL Server端口,禁止应用登陆,运行一段时间都正常,后修改回原端口,监控client端登陆,怀疑有程序存在并行事务,设置max degree of parallelism为1强制禁止并行事务并通知开发修改应用。
参考: 中文http://support.microsoft.com/kb/319892/zh-cn
英文http://support.microsoft.com/default.aspx?scid=kb;en-us;319892
建议还是看英文版的好...
另外可以参看tolywang的文章:http://space.itpub.net/trackback.php?code=NArf3QAjhhe5xXyUlrdUlC4DA8kEU1QN%2FkYIlGSAxg
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/110321/viewspace-608760/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/110321/viewspace-608760/