Posted on 2009-07-23 23:20
Prayer 閱讀(569)
評論(0) 編輯 收藏 引用 所屬分類:
DB2
由于項目中數(shù)據(jù)庫數(shù)據(jù)被莫名修改,曾經(jīng)想過db2能不能對數(shù)據(jù)操作進行跟蹤,包括知道執(zhí)行的語句是什么,是誰執(zhí)行的。今天特意google了一下:
/***********************
DB2中跟蹤SQL
************************/
1.創(chuàng)建事件監(jiān)視器
1)查看監(jiān)視器選項
db2 get monitor switches
2)修改語句跟蹤選項
db2 update monitor switches using statement on
3)創(chuàng)建語句監(jiān)視器
db2 create event monitor state_event for statements write to file 'f:\test\'
4)激活監(jiān)視器
db2 set event monitor state_event state=1
5)運行應用程序
eg:select * from staff
6)完成輸出
db2 flush event monitor state_event buffer
7)關(guān)閉監(jiān)視器
db2 set event monitor state_event state=0
8)格式化結(jié)果
db2evmon -path f:\test > sql.txt
現(xiàn)在可以在當前所在路徑的sql.txt文件中查看跟蹤結(jié)果了,其他監(jiān)視選項同理。
在sql.txt中可以看到每一個sql語句的應用程序標識(Appl Id)、語句內(nèi)容、Bufferpool的使用情況。并且從語句的Prepare、Open、Describe、Close每個階段的執(zhí)行時間都有記錄。
注:應用程序標識中前8位是客戶機機器 IP
http://www.ibm.com/developerworks/cn/db2/library/techarticles/0302stolze/0302stolze.html