数据库hang
分析(sql*plus
不能登陆)
状态转储的常用命令
当数据库出现一些挂起状态时,往往会严重的影响数据库使用,进程级的问题影响范围小,而系统级的问题则会影响全局。
当数据库系统或进程失去响应事,如果SQL*Plus
工具仍然可以连接,可能试图查询没有相应,但是可以通过oradebug
工具来经行进程及系统状态信息的转储,从而可以进行HANG
分析
Sql*plus
可以连接数据库时
DUMP
进程状态可以使用:
Alter
sessions set events ‘immediate trace name processstate level ’;
或者使用:
Oradebug
setmypid
Oradebug
ulimit
Oradebug
dump processstate
如果为了获取全面的一点的信息,可以使用level 10
Sql*plus
不可以连接数据库时(10g
之后)
sqlplus
-prelim '/ as sysdba '
Oradebug
setmypid
Oradebug
unlimit
Oradebug
dump systemstate 10
Hanganalyze
产生trace
文件方法
--For
单实例
SQL> oradebug hanganalyze 3;
Hang Analysis in
/u01/app/oracle/admin/rac/udump/dave1_ora_20962.trc
这个命令会提示我们生成的trace
文件。
--For RAC
SQL> oradebug setmypid
Statement processed.
SQL> oradebug setinst all
Statement processed.
SQL> oradebug -g def hanganalyze 3;
Hang Analysis in
/u01/app/oracle/admin/rac/bdump/dave1_diag_32435.trc
转载: