【IT168 技术文章】警告:本工具目前为beta版,可能会造成系统出现不可预知的异常,切勿在任何重要环境中运行!
基于以前开发的一个用于监控线程的CPU使用状况的小工具,TopShow,我开发了一个用于追踪Oracle内部函数调用的追踪器——OraTracer. 你可以用该工具追踪监控Oracle多个内部函数的调用情况,还可以尝试探测函数的输入参数的值,也可以打印追踪点被触发时的调用堆栈。追踪可以设置在整个Oracle进程的级别,也可以设置在某个线程以追踪特定的会话。
例子 1:
捕获oracle整个实例中被执行的SQL语句。
首先,在与可执行文件相同的目录下设置追踪点文件"TracePoints.txt",内容如下:
_opiprs 6*1
_rpisplu 6*2
_kprbprs 6
_rpisplu 6*2
_kprbprs 6
与函数名用空格相隔的数值为探测的参数数量,如果再加上"*N",则表示尝试将双字节数字作为指针对待,递归获取其执行的值,后面的数字为递归深度。例如,对于第一个追踪点,函数名为"_opiprs",探测6个参数,递归探测指针数据的深度为1。
注意:"#"为注释符。
然后从进程列表中选择"ORACLE.EXE",不要选择任何线程: