技术开发 频道

DB2数据库锁的问题

  2. 查看当前并发应用

  CLP方式:

  db2 list applications

  或db2 list applications show detail

  或 db2 list applications for database dbname [ show detail]

  该命令可以查看当前是否有多个应用在连接着数据库,从而排查是否有并发的存在。

  注意Application Name 和Application Id两栏,Application Name栏列出了应用的名字,db2bp通常意味着目前有CLP在连接数据库,java则意味着可能有db2cc或用户自己的java应用在连接数据库,在application Id栏中可以看到这些应用来自于哪些机器,本机的就显示为 LOCAL + 用户名 + 开始连接上的时间,远程的就会显示为16进制的IP地址+用户名+开始连接上的时间。通过排查并发应用从而消除测试中不必要的锁现象。

  3. 查看和更改快照参数

  如果在合理设置了DLCHKTIME和LOCKTIMEOUT参数仍然出现锁现象,可以查看快照或者创建事件监控器来分析原因。要采用快照,首先要打开快照开关

  db2 get monitor switches

  输出中将包含以下参数:

  监控开关 数据库管理器参数 注释

  BUFFERPOOL DFT_MON_BUFPOOL 缓冲区的读写情况和发生时间

  LOCK DFT_MON_LOCK 锁持有,锁等待,以及死锁的发生情况

  SORT DFT_MON_SORT Heap的使用情况,排序性能

  STATEMENT DFT_MON_STMT 语句起始时间,语句内容

  TABLE DFT_MON_TABLE Measure of activity (rows read/written)

  UOW DFT_MON_UOW Start/end times, completion status

  TIMESTAMP DFT_MON_TIMESTAMP Timestamps

  为了观察快照中的锁和执行语句情况,一般把LOCK和STATEMENT选项设为ON,也可以酌情把其他开关打开,示例如下: db2 update monitor switches using lock on statement on

0
相关文章