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