tracing application tracing
关于跟踪的几种设置
实例级别跟踪
alter system set sql_trace=true;
会话级别跟踪
跟踪自定义的会话
(1) alter session set sql_trace=true/false;
(2) dbms_session.set_sql_trace(true/false);
跟踪其他会话(具备sysdba的权限)
SQL> desc dbms_system.set_sql_trace_in_session;
Parameter Type Mode Default?
--------- ------- ---- --------
SID NUMBER IN v$session.sid
SERIAL# NUMBER IN v$session.SERIAL#
SQL_TRACE BOOLEAN IN true/false
客户ID级别跟踪、模块、服务、动作级别
SQL> desc dbms_monitor
Element Type
-------------------------- ---------
ALL_MODULES CONSTANT
ALL_ACTIONS CONSTANT
CLIENT_ID_STAT_ENABLE PROCEDURE
CLIENT_ID_STAT_DISABLE PROCEDURE
SERV_MOD_ACT_STAT_ENABLE PROCEDURE
SERV_MOD_ACT_STAT_DISABLE PROCEDURE
CLIENT_ID_TRACE_ENABLE PROCEDURE
CLIENT_ID_TRACE_DISABLE PROCEDURE
SERV_MOD_ACT_TRACE_ENABLE PROCEDURE
SERV_MOD_ACT_TRACE_DISABLE PROCEDURE
SESSION_TRACE_ENABLE PROCEDURE
SESSION_TRACE_DISABLE PROCEDURE
DATABASE_TRACE_ENABLE PROCEDURE
DATABASE_TRACE_DISABLE PROCEDURE
(1)客户ID级别跟踪
如何标识客户端ID
SQL> desc dbms_session.set_identifier
Parameter Type Mode Default?
--------- -------- ---- --------
CLIENT_ID VARCHAR2 IN
跟踪客户端ID
SQL> desc dbms_monitor.CLIENT_ID_TRACE_ENABLE
Parameter Type Mode Default?
--------- -------- ---- --------
CLIENT_ID VARCHAR2 IN -- 客户端 identifier 监控者可以在v$session中获取
WAITS BOOLEAN IN Y --true 包含等待信息
BINDS BOOLEAN IN Y --true 包含绑定变量信息
取消
SQL> desc dbms_monitor.CLIENT_ID_TRACE_ENABLE
Parameter Type Mode Default?
--------- -------- ---- --------
CLIENT_ID VARCHAR2 IN
WAITS BOOLEAN IN Y
BINDS BOOLEAN IN Y
收集统计信息
SQL> desc dbms_monitor.client_id_stat_enable
Parameter Type Mode Default?
--------- -------- ---- --------
CLIENT_ID VARCHAR2 IN
(2)模块、服务、动作级别跟踪
SQL> desc dbms_monitor.SERV_MOD_ACT_TRACE_ENABLE
Parameter Type Mode Default?
------------- -------- ---- --------
SERVICE_NAME VARCHAR2 IN --通过向database listener注册的服务例如 实例 后台进程等
MODULE_NAME VARCHAR2 IN Y --可以为不同的活动级别生成不同的程序模块
ACTION_NAME VARCHAR2 IN Y --特定PL/SQL过程的动作
WAITS BOOLEAN IN Y
BINDS BOOLEAN IN Y
INSTANCE_NAME VARCHAR2 IN Y
(3)session级别
SQL> desc dbms_monitor.SESSION_TRACE_ENABLE
Parameter Type Mode Default?
---------- -------------- ---- --------
SESSION_ID BINARY_INTEGER IN Y
SERIAL_NUM BINARY_INTEGER IN Y
WAITS BOOLEAN IN Y
BINDS BOOLEAN IN Y
收集统计信息
SQL> desc dbms_monitor.serv_mod_act_stat_enable
Parameter Type Mode Default?
------------ -------- ---- --------
SERVICE_NAME VARCHAR2 IN
MODULE_NAME VARCHAR2 IN
ACTION_NAME VARCHAR2 IN Y
查看统计信息
SQL> select * from v$service_stats;
SERVICE_NAME_HASH SERVICE_NAME STAT_ID STAT_NAME VALUE
----------------- ------------------------ ------------------------------ ---------- ------
3427055676 SYS$USERS 2666645286 logons cumulative 511
SQL> select * from v$serv_mod_act_stats;
AGGREGATION_TYPE SERVICE_NAME MODULE ACTION STAT_ID STAT_NAME VALUE
--------------------- --------------- ---------- -------- ---------- ----------- ----------
查看启动的跟踪
v$dba_enable_traces;
使用em的顶级使用者模块 能更直观的实现上述功能。
问题二:
如果有N多的客户端或服务同时发起连接且被跟踪,那跟踪文件将会变得庞大复杂
trcsess utility的出现解决了这个问题,它依据客户端ID或服务、模块名称把跟踪日志单独抽出来
trcsess
[session=]
[clientid=]
[service=]
[action=]
[module=]
[output=
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21993926/viewspace-667270/
,如需转载,请注明出处,否则将追究法律责任。