例子:
trcsess output=XXX_main.trc service=xxxx module=OEM.SystemPool XXXX_ora_1699*.trc
使用TRCSESS将多个跟踪文件保存到一个文件中(10g的新特性)
使用这个Oracle 10g的新特性可以有选择性地从多个跟踪文件中提取跟踪数据,并且将这些跟踪数据基于会话ID或模块名等标准保存到一个跟踪文件中。这个命令行实用程序在 连接池和共享服务器配置中特别有用,在这些配置中,每个用户请求可能都以一个单独的跟踪文件结束。使用TRCSESS可以获得属于某个用户会话的统一的跟 踪信息。
可以根据如下一些标准创建这个统一的跟踪文件:
会话ID
客户端ID
服务名
操作名
模块名
命令语法如下:
trcsess [output=] [session=] [clientid=] |
其中output= 输出目的地默认值(作为标准输出)
session= 跟踪的会话(SID和SERIAL#)
clientid= 跟踪的客户端ID
service= 跟踪的服务
action= 跟踪的操作
module= 跟踪的模块
trace_file= 以空格分隔的跟踪文件名的列表,trcsess命令需要搜索该列表。如果没有列出任何文件,则搜索当前目录中的所有文件。在文件名中可以使用通配符*。
1. 示例1
这是来自于前面的小节"使用DBMS_MONITOR"中的一个示例,其中service_name= ebk2、module= salary_update、action = insert_item。进入user_dump_dest目录并运行如下的命令:
trcsess output=combo.trc service="ebk2" |
这将搜索满足前面标准的所有跟踪文件,并且将创建名为combo.trc的统一的跟踪文件。
现在可以对combo.trc运行TKPROF:
tkprof combo.trc output=combo_report sort=fchela |
2. 示例2
设置客户端ID:
SQL> exec dbms_session.set_identifier('ebk3'); |
对 该客户端ID启用跟踪:
SQL> EXECUTE DBMS_MONITOR.CLIENT_ID_STAT_ENABLE(ebk3); |
跟踪这个客户端ID,然后执行如下的命令(从user_dump_dest目录中):
trcsess output=combo2.trc clientid=ebk3 *.trc |
Trcsess将对所有跟踪文件检查指定的客户端ID。现在可以对combo2.trc(合并的跟踪文件)运行TKPROF。
3. 示例3
在第一种情况中,当前目录中的所有跟踪文件用作输入,并且将创建一个跟踪文件(combo3.trc),该文件具有session=17.1988 的所有跟踪信息。
trcsess output=combo3.trc session=17.1988 |
在 当前情况中,只有列出的两个trc文件用作输入,并且根据两个列出的跟踪文件创建一个跟踪文件(combo4.trc),该文件具有 session=17.1988(注意,17.1988是<SID>.<Serial#>)的所有跟踪信息。