当前位置: 代码迷 >> 综合 >> 关于trace追踪日志的产出及查看
  详细解决方案

关于trace追踪日志的产出及查看

热度:55   发布时间:2024-01-31 09:37:36.0

1.首先查看当前系统是否会产出trace文件
show parameter sql_trace;
若value为false,则不会产出,运行以下命令产出文件
alter session(system) set sql_trace=true; 
①system跟踪整个数据库实例,所有进程都会被跟踪,包括后台进程,会导致数据库下降明显,不推荐使用
②session会话级跟踪,sql_trace的通常使用方式是仅跟踪一个会话
2.执行几条sql,然后开始查看文件
文件位置一般用以下sql查询
新方法(11g):select p.tracefile from v$mystat m, v$session s, v$process p where m.statistic#=1 and s.sid=m.sid and p.addr=s.paddr
老方法:(select d.value||'/' || lower(rtrim(i.instance, chr(0)))|| '_ora_' || p.spid || '.trc' trace_file_name
from (select p.spid from v$mystat m, v$session s, v$process p where m.statistic#=1 and s.sid=m.sid and p.addr=s.paddr) p, 
----> 获取当前会话的系统进程id
(select t.instance from v$thread t, v$parameter v where v.name='thread' and (v.value=0 or t.thread#=to_number(v.vallue))) i, ------>获取实例包
(select value from v$parameter where name='user_dump_dest') d  ------>获取跟踪文件主路径
es:/oracle/produce/18.3/rdbms/log/mcam1_ora_19624.trc)

找到文件后 将文件通过tkprof工具格式化
①先到oracle的安装目录bin文件夹下查看是否有该工具 es:/oracle/product/18.3/db_1/bin
②然后将文件格式化,服务器运行命令 
tkprof .trc的路径  格式化后文件存储路径及名称 执行计划(用户名/密码) 是否打印SYS用户的操作  是否将所有相同的sql在输入文件中做合并
es:tkprof mcam1_ora_19624.trc tk_test.prf  explain=oracle/oraclepwd sys=no aggregate=no
格式化cat查看或者 ftp下载下来查看均可

    可根据sql_id查询相应的sql执行过程,于v$sql/V$sqlarea....取sql_id