ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle hang 之sqlplus -prelim使用方法

Oracle hang 之sqlplus -prelim使用方法

原创 Linux操作系统 作者:season0891 时间:2011-08-16 10:09:37 0 删除 编辑
转自:http://itspace.iteye.com/blog/626121
很多情况下,Oracle hang导致sqlplus无法连接,从而无法获得Oracle系统和进程状态,使得定位问题缺少强有力的依据。所幸的是Oracle 10g推出了sqlplus -prelim选项,在Oracle挂起时依然能使用sqlplus,从而能获得数据库状态。
使用方法如下
引用
$ sqlplus -prelim "/as sysdba"

SQL*Plus: Release 10.2.0.4.0 - Production on Sun Mar 28 06:40:21 2010

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

在prelim模式下,不可以查询数据字典,但可以关闭数据库
引用
SQL> select status from v$instance;
select status from v$instance
*
ERROR at line 1:
ORA-01012: not logged on

引用
SQL> shutdown abort
ORACLE instance shut down.

但可以使用oradebug,但对于系统诊断,已经足够了
dump系统状态
引用
SQL> oradebug setmypid                                            
Statement processed.
SQL> oradebug unlimit
Statement processed.
SQL> oradebug dump systemstate 266
Statement processed.

或者dump hanganalyze
引用
SQL> oradebug  hanganalyze 3
Hang Analysis in /oracle/app/oracle/admin/ora10g/udump/ora10g_ora_52642.trc

对于rac

引用
SQLPLUS> oradebug setmypid

SQLPLUS>oradebug setinst all

SQLPLUS>oradebug -g def hanganalyze 3


或者dump 进程状态
引用
SQL> oradebug dump processstate 10
Statement processed.


进一步,如果有10g客户端,数据库是9i,依然可以用-prelim
引用
$ sqlplus -prelim /nolog

SQL*Plus: Release 10.2.0.4.0 - Production on Sun Mar 28 06:50:19 2010

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

SQL> conn sys/oracle@ora9i as sysdba
Prelim connection established
SQL>  oradebug setmypid
Statement processed.
SQL> oradebug unlimit
Statement processed.
SQL>  oradebug dump systemstate 266
Statement processed.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/90618/viewspace-704959/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-06-10

  • 博文量
    791
  • 访问量
    1946791