Posted on 2009-07-23 23:20
Prayer 阅读(541)
评论(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