查询oracle dump文件位置:
SQL> show parameter dump;
NAMETYPE VALUE
------------------------------------ -----------------------------------------
background_core_dumpstring partial
background_dump_deststring/oracle/admin/insmix/bdump
core_dump_deststring/oracle/admin/insmix/cdump
max_dump_file_sizestring UNLIMITED
shadow_core_dumpstring partial
user_dump_dest string /oracle/admin/insmix/udump
查询v$session中重要的列信息:
SQL> select sid,serial#,username from v$session;
SID SERIAL# USERNAME
---------- ---------- ------------------------------
105 40950 SYS
109 44692 TRAVEL
114 13454 TRAVEL
115 16376 TRAVEL
117 16717 TRAVEL
120 27350 TRAVEL
123 48541
133 19474 TRAVEL
141 52625 SYS
142 8549 TRAVEL
149 2
150 3
153 57669 TRAVEL
155 1
158 54 TRAVEL
160 1
161 1
162 1
163 1
164 1
SID SERIAL# USERNAME
---------- ---------- ------------------------------
165 1
166 1
167 1
168 1
169 1
170 1
发现username为空的是oracle系统的连接。
设置sql_trace参数跟踪执行的sql:
SQL> alter session set sql_trace=true;
Sessionaltered
SQL> select * from dual;
DUMMY
-----
X
SQL> show parameter dump;
NAMETYPE VALUE
------------------------------------ -----------------------------------------
background_core_dump string partial
background_dump_deststring/var/oracle/oracle/admin/traveldb/bdump
core_dump_deststring/var/oracle/oracle/admin/traveldb/cdump
max_dump_file_sizestring UNLIMITED
shadow_core_dumpstring partial
user_dump_dest string /var/oracle/oracle/admin/traveldb/udump
这个文件名字中的数字对应oracle进程的pid:
Cat一下这个trace文件:
发现了刚才执行的sql。
也可以针对不同的用户产生trace文件,oracle提供了一个包:set_sql_trace_in_session:
首先确定要跟踪的用户:
executedbms_system.set_sql_trace_in_session(139,72,true);
让travel用户执行一些sql:
Cat一下这个trace文件:
发现了我们刚才执行的语句。
这个参数是控制全局的sql是不是trace 一般不用这个,而是精确控制到用户的trace。