DB2 9.5 中的锁定超时分析新方法

回顾 DB2 9.1 中的锁定超时分析

使用 db2pd 工具和 db2cos 脚本进行锁定超时分析的方法包含以下几步:

  1. 使用一个特殊的 DB2 脚本 — 名为 db2cos — 在每次调用 db2cos 脚本时执行一个 db2pd 调用。db2pd 调用收集与锁定、事务、应用程序、语句缓存相关的信息,并将信息存储在一个文本文件中以供分析。
  2. 要在锁定超时发生时自动执行 db2cos 脚本(以及包含的 db2pd 命令,需要使用 db2pdcfg 命令注册锁定超时事件。
  3. 在锁定超时事件中,DBA 可以检查通过自动调用 db2cos 脚本生成的 db2pd 输出。这使 DBA 能够确定发生锁定争用的原因,从而设法在以后避免发生这类情形。

要通过一个示例场景了解详细的步骤说明,请参阅 参考资料 部分中刚刚提到的文章。

尽管其中介绍的方法提供了大量信息,使得锁定超时分析比以前的 DB2 9 for Linux, Unix, and Windows 版本更加简单,但它仍然存在一些不足:

  • 使用此方法需要手动改写 db2cos 脚本并通过调用 db2pdcfg 来注册锁定超时事件。两个步骤都不复杂,但是对于新手来说可能有些困难。
  • 解释 db2pd 输出以识别锁定超时情形中涉及的应用程序和 SQL 语句,这个任务并不容易,而且需要一些尝试。
  • 如果锁定超时是由包含多个 SQL 命令的事务引起的,那么 db2pd 收集的信息可能还不足以确定导致锁定的 SQL 语句。

DB2 9.5 中全新的锁定超时报告功能

在 DB2 9.5 的锁定超时报告功能中,引入了一个新特性,使得锁定超时分析变得非常简单。要激活锁定超时报告,只需将 DB2 注册变量 DB2_CAPTURE_LOCKTIMEOUT 设置为 ON,并重新启动您的 DB2 实例:

清单 1. 激活 DB2 9.5 中的锁定超时报告
                
db2set DB2_CAPTURE_LOCKTIMEOUT=ON
db2stop
db2start
      

是的,就是这么简单。当 DB2_CAPTURE_LOCKTIMEOUT 设置为 ON 时,DB2 为每个锁定超时事件自动创建一个报告文件。报告文件保存在 DIAGPATH 数据库管理员配置(DBM CFG)参数指向的目录中,包含的信息有:锁定超时的日期和时间、存在问题的锁定、锁定请求程序和锁定拥有者。

那么 DB2 9.5 中就不使用 db2cos 脚本了吗?事实并非如此。将 db2cos 脚本和 db2pd 工具结合具有非常广泛的用途。这意味着,这些工具组合仍然可用于捕捉与 SQL 代码和 DB2 内部返回代码相关的任何 DB2 事件信息,而不仅仅是锁定超时信息。

现在看看新的 DB2 9.5 注册变量 DB2_CAPTURE_LOCKTIMEOUT 并查看一个使用 DB2 SAMPLE 数据库的锁定超时示例场景。如果 SAMPLE 数据库不存在,可以调用下面的命令创建一个:

 

 

本文转自IBM Developerworks中国

        请点击此处查看全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值