快速找到oradebug hanganalyze产生的trace文件
当数据库hang住时,我们DBA经常会使用hang analyze来dump出trace文件,分析hang住的原因,其中用得最多的方法数oradebug hanganalyze了。我们都知道产生的trace文件是存放在bdump目录下,但产生的trc文件名称是什么呢,不知道文件名称,我们就很难找到trc文件。下面就来分析一下在数据库hang住时使用oradebug hanganalyze后显示产生的trc文件路径与名称的方法:
一、sqlplus“/as sysdba”可正常登陆时找到hazenganalyze产生的trc文件
当数据库还能使用sqlplus “/as sysdba”命令登陆数据库时,使用oradebughanganalyze时,只要在oradebug hangahalyze前,使用了oradebug setmypid,就很容易找到其产生的trc文件的路径与文件号了,如:
$sqlplus “/as sysdba”
SQL> oradebug setmypid;
已处理的语句
SQL> oradebug hanganalyze 3
Hang Analysis in /dba/oracle/product/diag/rdbms/litest/trace/litest_ora_5032.trc
二、sqlplus “/assysdba”已无法登陆时找到hazenganalyze产生的trc文件
如果当数据库已经不能用sqlplus “/as sysdba”登陆数据库了,这时,就只能使用sqlplus –prelim /nolog方式强行登陆数据库了,在此种模式下,即便在oradebug hanganalyze前使用了oradebug setmypid,也无法显示出oradebug hanganalyze所产生的trc文件,如下所示:
$sqlplus -prelim /nolog
SQL*Plus: Release 11.2.0.1.0Production on 星期日 4月 14 13:55:32 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> connect / as sysdba
初级连接已建立
SQL>oradebug setmypid
已处理的语句
SQL>oradebug hanganalyze 3
已处理的语句
SQL>
到此时,无任何信息输出,不知产生的trc文件的名称。
但是,紧接着加上下面命令,就可以显示出oradebug产生的trc文件路径与名称:
SQL> oradebug tracefile_name
/dba/oracle/product/diag/rdbms/litest/trace/litest_ora_3184.trc
总结,当数据库hang住,已经无法正常登陆时,使用-prelim方式强制登陆数据库,要显示出oradebug hang analyze产生的trc文件,记得使用:oradebug tracefile_name 命令。