赛迪网 > IT技术 数据库 > DB2开发者园地
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

实例讲解如何在DB2 UDB中正确的监控死锁 (1)

发布时间:2008.09.17 15:30     来源:赛迪网    作者:fen

【赛迪网-IT技术报道】前言:这篇文章通过详细的实例阐述了如何在DB2 UDB 中监控死锁的发生。在DB2 UDB中有两种类型的监控器:快照监控器和事件监控器。快照顾名思义就是数据库连续状态下的一个切面,通过快照监控器,你可以很方便地查看当前连接的应用程序,当前等待的锁,当前的死锁,以及正在执行的SQL语句,同时你可以查看缓冲区,表和表空间的用法。如果保存历史数据,并且能够做出比较,对于分析数据库的并发性能有很大的帮助。

但是我们并不能预测什么时候发生死锁,所以如果有一个后台程序能够一直监控数据库的活动,记录下所有的死锁事件,这对于数据库管理员来说是非常重要的。DB2 UDB提供了事件监控器。通过不遗漏地获得一段时间内所有的数据库事件(在本文中只关心其中的死锁事件),事件监控器提供了一种可以分析历史数据(本文的重点),预测将来趋势的可能。DB2 UDB同时提供了DB2 Performance Expert (DB2/PE) 或者类似的程序用来生成分析报表,不过这已经超出了本文的范畴。

常用术语

锁是控制应用程序并发的数据库软件机制,锁用来防止以下情况的发生:

1. 丢失以前更新

2. 不可重复读取

3. 访问未提交数据

锁的模式包括共享锁和排他锁,共享锁允许其他程序读取已经被其他共享锁占用的资源,所以也叫读锁,排他锁意味着在释放资源以前其他的应用程序无法访问同一资源,所以也叫写锁。此外,DB2 UDB 还提供了不同的锁级别,不同的应用程序可能会要求访问不同范围的数据,锁级别有利于充分利用系统资源,提高系统性能。若一个应用程序请求一个锁,而该锁被另外一个应用程序所使用且不能共享,DB2 UDB 就会挂起前一个应用程序。锁升级就是当LOCKLIST (LOCKLIST代表锁能够占用的内存空间) 耗尽或者一个应用程序所拥有的锁大于MAXLOCKS*LOCKLIST的时候(MAXLOCKS 代表应用程序所拥有的锁占所空间的百分比),DB2 UDB 就试图把几个行级别的锁合并为一个表级别的锁,从而释放锁空间。虽然锁升级本身并不耗费多少时间,但是锁住整个表通常会大大地降低并发性能。

当应用程序处于挂起状态超过了一段规定的时间后,DB2 UDB就会自动中止这个应用程序,同时会向SQLCA发送描述性的错误信息。当两个或者更多的应用程序都持有另外一个应用程序所需资源上的锁,没有这些资源,那些应用程序都无法继续完成其工作的时候,就会发生死锁。

在DLCHKTIME超时之后,DB2 UDB会中止发生死锁的某个应用程序(通常为所做工作最少的那个应用程序),这会释放这个应用程序所持有的所有的锁,并允许别的应用程序继续工作,DB2 UDB 将向被终止的应用程序的SQLCA发送描述性的错误信息。LOCKTIMEOUT 指定一个应用程序被允许的锁等待的时间,这将避免全局的死锁从而导致整个应用崩溃。如果LOCKTIMEOUT 的值为-1,应用程序会等待直到该锁被释放或者发生一个死锁。

事件监控器

事件监控器用来收集当一个数据库事件发生时所关联的应用程序的信息。这里的事件指,连接,死锁,声明和事务。你可以定义你想监控的事件类型的监控器。比如说,一个死锁监控器就是用来监控死锁的发生。

在DB2 UDB 中存在两种和死锁有关的事件类型:

DEADLOCKS

记录简单的应用程序信息。

DEADLOCKS WITH DETAILS

记录所有复杂的信息,包括应用程序、执行语句声明以及死锁的详细信息。但是使用这种事件监控器会因为需要得到大量额外的信息而降低系统的性能。

1 2 3 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· IBM DB2数据库文件系统已满的解决方法 (09-03) · 祥解IBM DB2数据库的常用日期操作函数 (09-03)
· 深入了解IBM DB2数据库的数据移动的作用 (09-01) · DB2在控制中心点选数据库出现SQL1031N问题 (08-28)
· DB2在控制中心点选数据库时:SQL1031N问题 (08-26) · DB2数据库物化视图:MQT物化查询表的使用 (08-06)
· DB2 sqlstate 57016 原因码 "7"错误详解 (08-06) · 解决DB2数据库备份参数修改后的报错问题 (08-06)
· 带你深入了解IBM DB2的通信与连接过程 (08-01) · 带你深入了解IBM DB2的通信与连接过程 (08-01)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 电子商务盈利新招:垂直化渠道管理新趋势
· 互联网加速蜕变 运营商进军搅动市场格局
· 08 IT技术风起云涌 专访 ITIL落地难在哪
· 视频加密保护解决方案 文档安全解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统