【避坑小贴士】- 关于查找trace file的存储位置

Vince 2021-4-2 7502

Oracle Support给出一条用来查找trace file存储位置的命令:


SQL> SELECT name,value FROM v$parameter WHERE name LIKE 'user_dump_dest';


查询后得到结果:


NAME                   VALUE
---------------------- -------------------------------------------------
user_dump_dest         /u01/app/oracle/product/19.3/db1/rdbms/log


当你去查询到的路径里寻找你需要的trace file时,你很有可能一无所获。如果你使用的Oracle Database是11g以前的老版本,如9g、10g,或许你能在这个路径中找到trace file;但现在都1202年了,谁还会用那么老的数据库?!我想你一定是使用11g及11g以后的新版本了,那么大概率的要恭喜你成功入坑!


通过查询USER_DUMP_DESTOracle官方文档可以看到:


Note:This parameter is ignored by the diagnosability infrastructure introduced in Oracle Database 11g Release 1 (11.1), which places trace and core files in a location controlled by the DIAGNOSTIC_DEST initialization parameter.


根据官方说明,这个参数在11g中已被忽略,trace file的位置由这个参数DIAGNOSTIC_DEST来控制。那么我们就来查询下DIAGNOSTIC_DEST


SQL> show parameter DIAGNOSTIC_DEST

NAME                                 TYPE        VALUE
------------------------------------ ----------- ----------------------------
diagnostic_dest                      string      /u01/app/oracle


但查询出来的只是大致路径,并不是具体的路径,还是无法知道trace file具体的存储位置。问题来了,如何在新版本的数据库中查询trace file的具体存储路径呢?


接下来就是出坑环节:


SQL> SELECT name,value FROM v$diag_info WHERE name LIKE 'Diag Trace';

NAME                 VALUE
-------------------- -----------------------------------------------------------
Diag Trace           /u01/app/oracle/diag/rdbms/nwt/NWT/trace


通过这个SQL语句查询出来的路径就成功的找到了需要的trace file。








本人Oracle小学生一枚,如有纰漏和不足,欢迎批评指正,谢谢

最新回复 (2)
返回
发新帖