WEB开发网
开发学院数据库DB2 DB2 for Linux, UNIX, and Windows 的锁事件,第 ... 阅读

DB2 for Linux, UNIX, and Windows 的锁事件,第 1 部分: 分析 DB2 for Linux, UNIX, and Windows 中的锁等待情形

 2010-08-03 00:00:00 来源:WEB开发网   
核心提示: wait:如果指定 wait 子选项,则 db2pd 只显示事务当前正在等待的锁,DB2 for Linux, UNIX, and Windows 的锁事件,第 1 部分: 分析 DB2 for Linux, UNIX, and Windows 中的锁等待情形(2),以及对等待情形负责的锁,这个

wait:如果指定 wait 子选项,则 db2pd 只显示事务当前正在等待的锁,以及对等待情形负责的锁。这个子选项大大简化了锁等待分析,因为它将输出限制为参与锁等待情形的锁。

db2pd database 和 file 选项不是特定于锁监视的,但是适用于(几乎)所有 db2pd 调用。database 选项将 db2pd 返回的监视器数据限制为某个数据库的监视器数据。而 file 选项则允许定义一个文件,以便将 db2pd 输出写到该文件。

锁等待分析场景

接下来,我们开始使用前面介绍的 db2pd 选项来分析一个示例锁等待情形。为此,我们创建 DB2 SAMPLE 数据库:

清单 2. 创建 SAMPLE 数据库

db2sampl 

用户 A 执行事务 A,以根据每个经理的薪水为他们提供 10% 的奖金:

清单 3. 事务 A 执行的更新操作

UPDATE EMPLOYEE 
SET BONUS = SALARY * 0.1 
WHERE JOB = 'MANAGER' 

当事务 A 仍然在运行(因为用户 A 还没有使用 COMMIT 或 ROLLBACK 终止该事务)时,用户 B 执行事务 B,以将每个雇员的薪水提高 2%:

清单 4. 事务 B 执行的更新操作

UPDATE EMPLOYEE 
SET SALARY = SALARY * 0.02 

由于事务 B 没有完成,用户 B 请求 DBA 确定问题的原因。于是,DBA 调用 db2pd,看是否存在锁等待情形:

清单 5. 检查锁等待情形

db2pd -db sample -locks wait showlocks 
 
Database Partition 0 -- Database SAMPLE -- Active -- Up 3 days 08:33:05 
 
Locks: 
Address  TranHdl  Lockname          Type    Mode Sts Owner   Dur 
0x050A0240 6     02000600050040010000000052 Row    ..X W  2     1  
0x050A0DB0 2     02000600050040010000000052 Row    ..X G  2     1  
 
HoldCount Att ReleaseFlg 
0     0x00 0x40000000  TbspaceID 2 TableID 6 PartitionID 0 Page 320 Slot 5 
0     0x00 0x40000000  TbspaceID 2 TableID 6 PartitionID 0 Page 320 Slot 5 

上一页  1 2 3 4 5 6 7  下一页

Tags:DB for Linux

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接