db2監控

 設置快照監控:
db2 update dbm cfg using dft_mon_stmt on(整個實例中有效)
db2 get monitor switches(當前會話有效)

db2 update monitor switches using bufferpool on lock on sort on statement on table on uow on


查詢:
db2 get snapshot for tables on sample
db2 get snapshot for locks on sample
db2 get snapshot for locks for application agentid
db2 get snapshot for all on sample
db2 get snapshot for dynamic sql on sample
db2 get snapshot for locks on sample

快照表函數
db2 select * from table(SNAPSHOT_lock('zmdb',-1)) as t > c:snap

SNAPSHOT_DBM 數據庫管理器信息。
SNAPSHOT_DATABASE 數據庫信息。只有當至少有一個應用程序連接至數據庫時,纔會返回信息。
SNAPSHOT_APPL 連接至分區上數據庫的應用程序上有關鎖等待的應用程序信息。
 這包括累積計數器、狀態信息和最近執行的 SQL 語句(如果設置了語句監視器開關)。
SNAPSHOT_APPL_INFO 每個連接至分區上數據庫的應用程序的常規應用程序標識信息。
SNAPSHOT_LOCKWAIT 有關鎖等待連接至分區上數據庫的應用程序的應用程序信息。
SNAPSHOT_STATEMENT 有關連接至分區上數據庫的應用程序的語句的應用程序信息。
 這包括最近執行的 SQL 語句(如果設置了語句監視器開關)。
SNAPSHOT_TABLE 連接至數據庫的應用程序所訪問的每個表的表活動信息。需要表監視器開關。
SNAPSHOT_LOCK 數據庫級別上的鎖信息,
 以及每個連接至數據庫的應用程序在應用程序級別上的鎖信息。需要鎖監視器開關。
SNAPSHOT_TBS 數據庫級別上的表空間活動信息、
 每個連接至數據庫的應用程序在應用程序級別上的表空間活動信息
 以及連接至數據庫的應用程序已訪問過的每個表空間在表空間級別上的表空間活動信息。
SNAPSHOT_BP 指定數據庫的緩衝池活動計數器。需要緩衝池監視器開關。
SNAPSHOT_DYN_SQL查詢動態sql語句

示例:
1)db2 update monitor switches using locks on
2)打開一個clp執行語句:
  db2 connect to sample
  db2 +c update staff set comm = 0 where id = 280
3)打開另外一個窗口執行:
  db2pd -db sample -agents
  得到apphandle值
4)db2 get snapshot for locks for application agentid apphandle_value
  得到相關表
  或者:db2 select * from table(snapshot_lock('SAMPLE',-1)) as locktable


二、事件監控

--死鎖監控
create event monitor deadlock_db
for deadlocks
write to file 'c:deadlock_db'
maxfiles 1
maxfilesize none

--語句監控(寫到文件)
create event monitor sql_db
for statements
write to file 'c:sql_db'
maxfiles 1
maxfilesize none


db2 "create event monitor m_sql for statements write to file '/zcmdata/monitor/m_sql' maxfiles 1 maxfilesize none "

db2 "create event monitor m_t for statements write to file '/zcmdata/monitor/m_t' maxfiles 1 maxfilesize none "

--語句監控(寫到表)
create event monitor sql_db
for statements
write to table
stmt(table sql.stmttab)
includes(rows_read,rows_writen_stmt_text)


--清空事件監視器
db2 flush event monitor eventmonitorname

--打開或關閉監視器
db2 set event monitor eventmonitorname state 0/1

db2 "set event monitor m_sql state 0"
db2 "set event monitor m_sql state 1"

db2 "set event monitor m_t state 0"
db2 "set event monitor m_t state 1"

0 關閉監視器
1 打開監視器


--查看監視器狀態
select event_mon_state('envetmonitorname') from sysibm.sysdummy1


--查看事件跟蹤文件

db2evmon -path c:sql_db > c:sql_db.txt

db2evmon -path /zcmdata/monitor/m_sql > /zcmdata/monitor/m_sql.txt
db2evmon -path /zcmdata/monitor/m_t > /zcmdata/monitor/m_t.txt

發佈了29 篇原創文章 · 獲贊 4 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章