最近在维护一个比较旧的系统,数据库用的是db2,维护中为了查找系统功能对应操作的是哪张表可谓是煞费苦心啊。之前用过SQL Server的数据库跟踪很是方便,很容易就知道操作对应哪张表了,而db2确实比较麻烦。以下就分享一下网上收集并亲身使用了的db2数据库跟踪方法,欢迎大家批评指正!
首先进入db2控制台(dos窗口-db2cmd-在弹出的控制台中输入db2)
1)查看监视器选项
db2 => get monitor switches;
2)修改语句跟踪选项
db2 => update monitor switches using statement on;
3)创建语句监视器
db2 => connect to dbname user db2admin using db2admin ;
db2 => create event monitor state_event for statements write to file 'c:\state_event\';
linux:
db2 connect to dbname user db2inst4 using db2inst4;
db2 create event monitor state_event for statements write to file '/home/db2inst4/state_event/';
4)激活监视器
mkdir c:\state_event(在c盘根目录下创建文件夹state_event,执行这个语句去需要先退出db2,建议最好是手动去c盘创建,避免出错)
db2 => set event monitor state_event state=1;
5)运行应用程序,或者在任何地方执行查询,例如查询:select * from table_name;
6)完成输出
db2 => flush event monitor state_event buffer;
7)关闭监视器
db2 => set event monitor state_event state=0;
db2 => update monitor switches using statement off;
db2 => drop event monitor state_event;
8)格式化结果
db2 => quit;(先退出db2,再执行下面的语句)
db2evmon -path c:\state_event> c:\sql.txt;
db2evmon -path /home/db2inst4/state_event > /home/db2inst4/sql.txt;
这样执行完成后,就可以在c盘根目录下找到sql.txt文件去查看跟踪记录了!