如果使用专用服务器连接,会在 USER_DUMP_DEST 参数指定的目录中生成跟踪文件。
如果使用共享服务器连接,则在 BACKGROUND_DUMP_DEST 参数指定的目录中生成跟踪文件。
要想知道跟踪文件放在哪里,可以从 SQL*Plus 执行 SHOW PARAMETER DUMP_DEST 命令来查看,也可以直接查询 V$PARAMETER 视图:
SQL> connect / as sysdba
Connected.
SQL> select name, value
2 from v$parameter
3 where name like '%dump_dest%'
4 /
NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
background_dump_dest
D:\ORACLE\PRODUCT\10.1.0\ADMIN\ORCL\BDUMP
user_dump_dest
D:\ORACLE\PRODUCT\10.1.0\ADMIN\ORCL\UDUMP
core_dump_dest
D:\ORACLE\PRODUCT\10.1.0\ADMIN\ORCL\CDUMP
跟踪文件名中的数字是(专用服务器)的进程 ID , 可以从 V$PROCESS 视图得到。因此,在实际中(假设使用专用服务器模式),需要访问 4 个视图:
V$PARAMETER :找到 USER_DUMP_DEST 指定的跟踪文件位置。
V$PROCESS :查找进程 ID 。
V$SESSION :正确地标识其他视图中的会话信息。
V$INSTANCE :得到 ORACLE_SID 。
如果无法访问 V$PARAMETER 视图,那么可以使用 DBMS_UTILITY 来访问大多数(但不是全部)参数
的值。从下面的例子可以看出,要看到这个信息(还不止这些),只需要 CREATE SESSION 权限:
SQL> declare
2 l_string varchar2(255);
3 l_dummy number;
4 begin
5 l_dummy := dbms_utility.get_parameter_value
6 ('background_dump_dest', l_dummy, l_string);
7 dbms_output.put_line('background: ' || l_string);
8 l_dummy := dbms_utility.get_parameter_value
9 ('user_dump_dest', l_dummy, l_string);
10 dbms_output.put_line('user: ' || l_string);
11 end;
12 /
background: D:\ORACLE\PRODUCT\10.1.0\ADMIN\ORCL\BDUMP
user: D:\ORACLE\PRODUCT\10.1.0\ADMIN\ORCL\UDUMP
PL/SQL procedure successfully completed.
可以使用 DBMS_UTILITY 来找到位置,而且通常你 “ 知道 ” ORACLE_SID ,所以从理论上
讲只需要访问 V$SESSION 和 V$PROCESS。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15742414/viewspace-607379/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15742414/viewspace-607379/