Database Monitor(資料庫管理器)——捕獲活動執行個體的資訊
Database(資料庫)—————捕獲所有資料庫或單個資料庫的資訊
Applications(應用程式)————-捕獲所有應用程式或單個應用程式的資訊
Table Space(表空間)————-捕獲資料庫中各個表空間的資訊
Table(表)—————————-捕獲資料庫中各個表的資訊Lock(鎖)——————————捕獲使用了資料庫的應用程式持有的各種鎖資訊
db2 get snapshot for dbm
db2 get snapshot for database on testdb
db2 get snapshot for tablespaces on testdb
db2 get snapshot for bufferpools on testdb
db2 get snapshot for tables on testdb
db2 get snapshot for locks on testdb
db2 get snapshot for applications on testdb
db2 get snapshot for dynamic sql on testdb
1.監控案例1———動态SQL語句
db2 get snapshot for dynamic SQL on testdb > snap.out
grep -n "Deadlocks detected" snap.out | grep -v "= 0" | more
2.鎖表
1。看鎖表的情況
db2的指令中:
db2 => get snapshot for locks on testdb
可以看到什麼表被鎖住了。
其中有一項: Application handle表示程序的辨別号。該程序鎖住什麼表在下面會詳細的列出來。
或者
list application for database testdb show detail
看看應用程式執行的情況
2。斷掉連接配接:
通過
force application all //強行終止所有連接配接
terminate //清除所有db2的背景程序
将所有的程序全部清除
或者:
force application(程序号),将特定的程序号kill
3.
1.查詢鎖表情況,可以擷取哪個表被鎖,其中agent_id為哪個DB2程序鎖了表
因為在終端下,不友善看,就把查詢結果輸出到lock.txt檔案裡
db2 "export to lock.txt of del select * from sysibmadm.locks_held with ur"
2.拿到上述的agent_id xxx,查詢具體鎖表的IP和應用程式
db2 list application | grep xxx
db2 " force application(xxx)"