首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 操作系统-> Solaris教程
[SQL]启动SQLServer的死锁检查-数据库专栏,SQL Server
作者:网友供稿 点击:143
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
启动sqlserver的死锁检查
report date:   2003/12/11

prepared by:     郑昀

article last modified on 2004-2-16

the information in this article applies to:

ü        microsoft sql server 2000,7.0
陈述:
对于数据库死锁,通常可以通过trace flag 1204、1205、1206,检查errorlog里面的输出,和分析sqltrace的执行上下文判断死锁问题的来由。

traceon函数的第三个参数设置为-1,表示不单单针对当前connection,而是针对所有包括未来建立的connection。这样,才够完全,否则只是监视当前已经建立的数据库连接了。

 

执行下面的话可以把死锁记录到errorlog中:

dbcc traceon (1204, 3605, -1)
go
dbcc tracestatus(-1)
go

  

 

得到的输出为:

dbcc 执行完毕。如果 dbcc 输出了错误信息,请与系统管理员联系。
traceflag status
--------- ------
1204      1
1205      1
3605      1

(所影响的行数为 3 行)

dbcc 执行完毕。如果 dbcc 输出了错误信息,请与系统管理员联系。

  

   

 

 

 

 

此后,你可以查看数据库的例行日志,每隔一段时间,数据库都会检查死锁,日志文本如下所示:

2004-01-16 18:34:38.50 spid4     ----------------------------------
2004-01-16 18:34:38.50 spid4     starting deadlock search 1976

 

2004-01-16 18:34:38.50 spid4     target resource owner:
2004-01-16 18:34:38.50 spid4      restype:lockowner stype:or mode: u spid:55 ecid:0 ec:(0xaa577570) value:0x4c25cba0
2004-01-16 18:34:38.50 spid4      node:1  restype:lockowner stype:or mode: u spid:55 ecid:0 ec:(0xaa577570) value:0x4c25cba0
2004-01-16 18:34:38.50 spid4      node:2  restype:lockowner stype:or mode: u spid:71 ecid:0 ec:(0xabf07570) value:0x9bd0ba00
2004-01-16 18:34:38.50 spid4    
2004-01-16 18:34:38.50 spid4     -- next branch --
2004-01-16 18:34:38.50 spid4      node:2  restype:lockowner stype:or mode: u spid:71 ecid:0 ec:(0xabf07570) value:0x9bd0ba00
2004-01-16 18:34:38.50 spid4    
2004-01-16 18:34:38.50 spid4    
2004-01-16 18:34:38.50 spid4     end deadlock search 1976 ... a deadlock was not found.
2004-01-16 18:34:38.50 spid4     ----------------------------------

 

 

 

 

 

 

 

 

 



以下实际检测到死锁的日志输出,来自于一份非常棒的讲义“log shipping in sql server 2000.ppt”,作者是ron talmage:

deadlock encountered .... printing deadlock information

 

wait-for graph

 

node:1

key: 7:1977058079:1 (f600d547433a) cleancnt:1 mode: x flags: 0x0

grant list::

   owner:0x19090e20 mode: x        flg:0x0 ref:0 life:02000000 spid:54 ecid:0

   spid: 54 ecid: 0 statement type: select line #: 1

   input buf: language event: select * from authors

 

requested by:

   restype:lockowner stype:or mode: s spid:53 ecid:0 ec:(0x19c5d530) value:0x19090dc0 cost:(0/114)

 

node:2

key: 7:1977058079:1 (f5006f164aa3) cleancnt:1 mode: x flags: 0x0

grant list::

   owner:0x19091000 mode: x        flg:0x0 ref:0 life:02000000 spid:53 ecid:0

   spid: 53 ecid: 0 statement type: select line #: 1

   input buf: language event: select * from authors

 

requested by:

   restype:lockowner stype:or mode: s spid:54 ecid:0 ec:(0x19dc3530) value:0x19091180 cost:(0/114)

victim resource owner:

restype:lockowner stype:or mode: s spid:54 ecid:0 ec:(0x19dc3530) value:0x19091180 cost:(0/114)

 

 

这份讲义的下载地址:

http://www.sqlpass.org/resources/sessions/summit2002/s231_s348.ppt

数据库管理员必看哦。

 
附录:dbcc traceon
打开(启用)指定的跟踪标记。

 
注释
跟踪标记用于自定义某些控制 microsoft® sql server? 操作方式的特性。跟踪标记在服务器中一直保持启用状态,直到通过执行 dbcc traceoff 语句对其禁用为止。在发出 dbcc traceon 语句之前,连入到服务器的新连接看不到任何跟踪标记。一旦发出该语句,该连接就能看到服务器中当前启用的所有跟踪标记(即使这些标记是由其它连接启用)。
跟踪标记
跟踪标记用于临时设置服务器的特定特征或关闭特定行为。例如,如果启动 microsoft® sql server? 时设置了跟踪标记 3205,将禁用磁带驱动程序的硬件压缩。跟踪标记经常用于诊断性能问题,或调试存储过程或复杂的计算机系统。

下列跟踪标记在 sql server 中可用。

跟踪标记

描述

1204

返回参与死锁的锁的类型以及当前受影响的命令。

 

实际上可以在“错误 1000 -1999”中找到他们:

 

1204

19

sql server 此时无法获取 lock 资源。请在活动用户数较少时重新运行您的语句,或者请求系统管理员检查 sql server 锁和内存配置。

1205

13

事务(进程 id %1!)与另一个进程已被死锁在资源 {%2!} 上,且该事务已被选作死锁牺牲品。请重新运行该事务。

1206

18

事务管理器已取消了分布式事务。

 

 

 

writen by zhengyun.nojunk(at)tomosoft.dot.com
disclaimers:
本文档所包含的信息代表了在发布之日,zhengyun 对所讨论问题的当前看法,zhengyun 不保证所给信息在发布之日以后的准确性。

本文档仅供参考。对本文档中的信息,zhengyun 不做任何明示或默示的保证。

用户必须遵守所有适用的版权法。在不对版权法所规定的权利加以限制的情况下,如未得到 zhengyun和csdn.net明确的书面许可,不得出于任何目的、以任何形式或手段(电子的、机械的、影印、录制等等)复制、传播本文的任何部分,也不得将其存储或引入到检索系统中。

文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·使用JSP对文件下载的控制-JSP教程,Jsp/Servlet
·[ASP.net(C#)]XML操作类(一)-.NET教程,C#语言
·java网络五子棋的源代码-JSP教程,Java技巧及代码
·用C#给程序加启动画面并只允许一个应用程序实例运行-.NET教程,C#语言
·.Net平台下开发中文语音应用程序-.NET教程,VB.Net语言
·用java取得本机的ip和机器名-JSP教程,Java技巧及代码
·动力设备环境及图像集中监控管理系统若干新问题——王观坤、刘崇海
·Java下XML编程接口比较:DOM SAX JDOM JAXP-.NET教程,XML应用
·使用Java技术在Cocoon中实现商业逻辑-JSP教程,Java技巧及代码
·[SQL]启动SQLServer的死锁检查-数据库专栏,SQL Server
最新文章
·日一万ip网站 gg月入万刀_网赚技巧
·浅谈cpm、cpc、cpa、pfp网站赚钱说明_网赚技巧
·王通:网站赚钱靠服务、产品和投资三种方式_网赚技巧
·网站的首页最应该放什么?_站长心得
·简洁而不简单:google成功十条真理_google推广
·google排名 如何用关键字优化网站_google推广
·用google adsense渠道跟踪你的广告(新手读)_google推广
·全面了解google 网页目录_google推广
·做完网站别忘调试----网站调试全攻略2_站长心得
·网上开店快乐赚钱-发现潜在商机_站长心得
相关主题
  • [SQL]啊?!查询分析器的BUG?!-数据库专栏,SQL Server
  • [SQL]对于“无法用TCP/IP协议和远端SQL Server数据库连接”问题-数据库专栏,SQL Server
  • [SQL]数据库置疑的故事-数据库专栏,SQL Server
  • [SQL]不要让SQLServer帮你自动转换SQL命令中的数据类型-数据库专栏,SQL Server
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭