`
javathinker
  • 浏览: 235450 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

DB2并发锁的问题诊断

 
阅读更多

最近有一项目经常出现DB2表锁情况,从存储过程,到应用程序,如果你靠去查代码还真是费劲,也记得以前有人问过我如何看DB2表的锁,这次都在这里一一讲清楚了,讲归讲,大家记得自己多去试试,实战是最佳的学习方法,我一直比较崇尚“从问题中学习结”。

―――Dream

第一步,打开Snapshot监控

 db2 update monitor switches using lock on statement on uow on

第二步,检查锁等待情况

 db2pd -db sample -locks wait showlocks

Database Partition 0 -- Database SAMPLE -- Active -- Up 3 days 08:33:05

Locks:

AddressTranHdlLockname 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

--Sts列 W 表示等待 G代表被授权获得锁

第三步,找到TransID对应的ApplID

 db2pd -db sample –trans

Database Partition 0 -- Database SAMPLE -- Active -- Up 3 days 08:34:47

Transactions:

AddressAppHandl[nod-index]TranHdl Locks State Tflag Tflag2

0x0514188030 [000-00030]2 9 WRITE 0x00000000 0x00000

0x0514488034 [000-00034]6 5 WRITE 0x00000000 0x00000

 

第四步,通过获取快照,定位锁的SQL

 db2 get snapshot for application agentid 30
 db2 get snapshot for application agentid 34
 接下来也可以通过db2pd分析,不通过snapshot

第五步,获得应用程序与相关代理信息

 db2pd -agents

Database Partition 0 -- Active -- Up 3 days 08:35:42

Agents:

Current agents: 2

Idle agents: 0

Active coord agents: 2

Active agents total: 2

Pooled coord agents: 0

Pooled agents total: 0

AddressAppHandl[nod-index]AgentTid Priority Type State

0x04449BC034 [000-00034]3392 0 Coord Inst-Active

0x0444924030 [000-00030]2576 0 Coord Inst-Active

ClientPid Userid ClientNm Rowsread Rowswrtn LkTmOt DBName

3916 USER_B db2bp.ex 43 43 NotSet SAMPLE

2524 USER_A db2bp.ex 153 14 NotSet SAMPLE

 

第六步,获取应用程序其他信息

db2pd -db sample -applications

Database Partition 0 -- Database SAMPLE -- Active -- Up 3 days 08:36:14

Applications:

AddressAppHandl[nod-index] NumAgents CoorTid Status

0x04AF808034 [000-00024] 1 3940 Lock-wait

0x0384196030 [000-00020] 1 2548 UOW-Waiting

C-AnchIDC-StmtUID L-AnchID L-StmtUID Appid

195 1 0 0 *LOCAL.DB2.061122195637

0 0 60 1 *LOCAL.DB2.061122195609

第七步,检查动态语句缓存的内容

db2pd -db sample -dynamic

Database Partition 0 -- Database SAMPLE -- Active -- Up 3 days 08:37:39

Dynamic Cache:

Current Memory Used 187188

Total Heap Size 1271398

Cache Overflow Flag 0

Number of References 2

Number of Statement Inserts 3

Number of Statement Deletes 0

Number of Variation Inserts 2

Number of Statements 3

Dynamic SQL Statements:

Address AnchID StmtUID NumEnv NumVar NumRef NumExe

0x056CEBD0 60 1 1 1 1 1

0x056CE850 180 1 0 0 0 0

0x056CFEA0195 1 1 1 1 1

Text

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

SET CURRENT LOCALE LC_CTYPE = 'de_DE'

UPDATE EMPLOYEE SET SALARY = SALARY * 0.02

Dynamic SQL Environments:

Address AnchID StmtUID EnvID Iso QOpt Blk

0x056CECD0 60 1 1 CS 5 B

0x056D30A0 195 1 1 CS 5 B

Dynamic SQL Variations:

AddressAnchIDStmtUID EnvID VarID NumRef Typ

0x056CEEB0 60 1 1 1 1 4

0x056D3220195 1 1 1 1 4

Lockname

010000000100000001003C0056

01000000010000000100C30056

第八步,锁分析的重复获取

db2pd -db sample -locks wait showlocks -transactions -agents -applications –dynamic -file 
分享到:
评论

相关推荐

    DB2问题诊断方法探讨

    DB2问题诊断是数据库管理员在面对系统异常或性能问题时的关键技能。DB2提供了丰富的工具和日志资源,帮助诊断并解决可能出现的问题。以下是一些关键的DB2问题诊断工具和方法: 1. **管理通知日志(Management ...

    DB2锁问题处理最佳实践

    DB2锁问题处理最佳实践,是指在使用DB2数据库过程中,针对数据库锁相关问题的一系列预防、诊断和解决方法。数据库锁是数据库管理系统保证数据完整性和并发控制的重要机制,但不当的锁使用也会导致性能瓶颈和应用程序...

    db2_查询锁方法

    ### DB2 查询锁的方法 在DB2数据库管理系统中,锁是一种重要的机制,用于管理多个用户对数据资源的同时访问,...这些信息对于理解数据库中并发控制的行为至关重要,并且对于数据库管理员来说是非常有价值的诊断工具。

    The DB2Night Show #216 Db2 LUW Problem Determination Class

    * Latching:Db2 LUW 的锁机制,可以帮助数据库管理员解决并发问题。 Db2 LUW 问题诊断中的一些常见的问题类型包括: * 数据库崩溃 * 数据库挂起 * 性能问题 * 数据损坏 * 客户机问题 * 服务器机问题 * 操作系统...

    DB2锁相关情况介绍

    这有助于DBA诊断性能问题和优化数据库配置。 #### 八、总结 DB2的锁机制是其并发控制的核心,通过合理配置锁模式和管理策略,可以显著提高数据库系统的性能和稳定性。对于DBA来说,深入理解DB2的锁机制是优化...

    db2 故障诊断指南

    8. **锁问题**:并发访问数据库时,可能会出现死锁或等待锁的情况。理解锁的类型和工作原理是解决这类问题的关键。 9. **表空间和分区**:表空间管理不当可能导致磁盘空间问题,而分区策略错误可能影响查询效率。 ...

    DB2 重命名不同的索引时出现的锁等待问题-contracted.doc

    总的来说,本文通过深入探讨一个具体的DB2锁等待问题,展示了如何使用锁等待分析方法和db2trc工具来诊断和解决此类问题。这对于提升DBA在处理复杂并发问题时的能力,以及理解DB2内部机制具有很大的帮助。通过学习和...

    DB2 最佳实践: 性能调优和问题诊断最佳实践

    例如,监控SQL查询的执行计划可以帮助识别低效的查询,而检查系统锁和事务状态可以揭示并发控制的问题。 最后,当性能问题出现时,要有条不紊地进行故障诊断。这通常包括收集和分析系统日志、跟踪性能指标、定位...

    深入解析DB2--高级管理,内部体系结构与诊断案例.pdf

    锁机制是并发控制的基础,DB2提供了多种锁类型,如行锁、表锁和页面锁,以保证多用户环境下的数据完整性。 ### 诊断案例 诊断案例部分提供了实际问题的解决思路和方法,通常包括: #### SQL性能分析 分析慢查询的...

    DB2 基础---DB2进程

    当DB2出现问题时,分析进程状态和行为是常见的诊断方法。DB2提供了多种工具,如db2pd、db2top等,用于查看和分析进程的详细信息,帮助定位问题。 总结,DB2进程是其核心运行机制的关键组成部分,涉及到数据库的启动...

    DB2最佳实践性能调优和问题诊断最佳实践.pdf

    DB2最佳实践性能调优和问题诊断涉及到数据库系统的多个层面,包括硬件配置、监控和故障诊断。以下是对这些关键知识点的详细阐述: 1. **硬件配置**:硬件配置是DB2性能的基础,尤其是在商务智能(BI)环境中。CPU...

    db2 锁分析

    DB2 锁分析是指对 DB2 数据库中锁的分析和诊断。锁是数据库系统中的一种机制,用于控制并发访问数据的资源,以避免数据的不一致和损坏。DB2 锁分析的目的是为了检测和解决锁相关的问题,从而提高数据库的性能和可靠...

    牛新庄 db2 dba教程

    他们还需要熟悉 DB2 的各种管理工具,如 db2top 和 db2pd,这些工具可以帮助实时查看数据库的状态,进行问题诊断。同时,了解数据库的内部架构,如缓冲池、日志管理等,对于理解和解决问题至关重要。 总的来说,这...

    深入解析DB2--高级管理,内部体系结构与诊断案例.part1.rar

    第12章 DB2调优案例、问题总结和技巧 12.1 调优案例一:某移动公司存储设计不当和SQL引起的I/O瓶颈 12.2 调优案例二:某银行知识库系统锁等待、锁升级引起性能瓶颈 12.3 调优案例三:某汽车制造商ERP系统通过调整...

    DB2错误码及其函数

    除了基本的错误处理和诊断,了解DB2的事务处理、锁机制、性能优化、备份恢复策略等也是至关重要的。例如,错误码407可能涉及到事务的并发控制,需要理解死锁和事务隔离级别。而错误码104可能是由于语法错误,这可能...

    从Db2 package 层面优化OLTP系统的性能(2)在实践中遇到的package相关性能问题.doc

    Db2 Package不仅涉及到SQL语句的预编译,还与数据库的锁机制、并发控制以及资源竞争紧密相关。在本文中,我们将探讨几个在实际操作中遇到的Db2 Package相关的性能问题,以及如何解决这些问题。 首先,我们要明确,...

    IBM+DB2数据库系统管理与性能调优

    并发控制是指对数据库系统的并发访问进行控制,以避免数据不一致和锁等问题。 DB2 数据库系统提供了多种并发控制机制,包括锁机制、事务机制等。 故障诊断 故障诊断是指对数据库系统的故障进行诊断和解决。 DB2 ...

    DB2系统临时表空间过大引发的性能问题-contracted.doc

    本文以某银行的DB2数据库系统为例,深入探讨了如何诊断和解决此类问题。 首先,当遇到系统响应变慢、ACTIVE SESSION数量异常增加时,DBA通常会检查一系列关键指标,如CPU、内存、I/O、LOCK WAIT和缓冲池命中率。...

    DB2 习题+认证指南

    8. **故障诊断与问题解决**:理解错误日志和跟踪文件的分析,以及如何解决常见的数据库运行问题。 9. **高可用性与灾难恢复**:了解DB2的复制技术,如纯异步复制、半同步复制,以及全局数据库集群的概念。 10. **...

Global site tag (gtag.js) - Google Analytics