很多情况下,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.
0
sqlplus -prelim/ as sysdba用法 2009-02-03 14:20:47
分类: Oracle
原文见:eygle博客
在某些情况下,数据库失去响应,sqlplus也无法连接,此时通常只能通过杀掉进程来解决。
但是我们仍然希望能够获得此时的数据库状态信息,以便用于事后诊断。
从Oracle10g开始,sqlplus提供了一个参数选项-prelim,可以在通常sqlplus无法连接的情况下进行连接。
通过以下步骤可以获取系统信息:
sqlplus -prelim / as sysdba
oradebug setmypid
oradebug unlimit;
oradebug dump systemstate 10
这种方法非常有用:
$ sqlplus -prelim / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Oct 25 09:42:20 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL>
但是需要注意的是,在Oracle 10.2.0.1中,使用如上方法会出现一个错误:
$ sqlplus -prelim / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Oct 25 09:38:14 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> oradebug setmypid
Statement processed.
SQL> oradebug unlimit
Statement processed.
SQL> oradebug dump systemstate 10
ORA-03113: end-of-file on communication channel
ORA-24323: value not allowed
此时在alert文件中会记录如下错误提示:
Thu Oct 25 09:38:32 2007
System State dumped to trace file
Thu Oct 25 09:38:32 2007
Errors in file /opt/oracle/admin/test201/udump/test201_ora_1402.trc:
ORA-07445: exception encountered: core dump [kgldmp()+1360] [SIGSEGV] [Address not mapped to object] [0x000000030] [] []
这是由于一个Bug导致的,Bug号为5730231,该Bug在10.2.0.3中修正。
对于9i也有变通的方法使用
-prelim is feature of Sql*Plus 10g and latter.
So as long you have any Sql*Plus 10g or latter version (ex. from client installation) and a valid net service name to connect to your 9i database you should be able to establish a "backdoor" connection.
You can do the following:
$sqlplus -prelim /nolog
and once you are in, just connect to the database using SYSDBA account
SQL> connect sys/password@net_service_name as sysdba
Prelim connection established
相关推荐
oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.ziporacle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.ziporacle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.ziporacle-instantclient11.2-sqlplus...
oracle-instantclient-sqlplus-21.6.0.0.0-1.x86_64.rpm oracle-instantclient-tools-21.6.0.0.0-1.x86_64.rpm oracle-instantclient19.10-basic-19.10.0.0.0-1.aarch64.rpm oracle-instantclient19.10-devel-19.10....
oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm --补充包/文件,是为了运行sql*plus 的即时客户端; oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm --补充包/文件,为运行ODBC环境附加库; ...
oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
在本案例中,我们关注的是专为Windows IA64架构设计的"Oracle-instantclient-sqlplus-win-ia64"版本,这表明它是针对Itanium处理器的64位系统。 SQL*Plus是Oracle数据库的一个组件,它是一个命令行接口,用户可以...
连接oracle使用 oracle-instantclient-sqlplus-10.2.0.3-1.x86_64.rpm
oracle-instantclient-sqlplus-11.1.0.1-1.i386.rpm
"instantclient-sqlplus-windows.x64-12.2.0.1.0.zip"文件是针对Windows 64位系统的Oracle Instant Client SQL*Plus版本,版本号为12.2.0.1.0。 **Oracle Instant Client的主要功能:** 1. **数据库连接**:提供了...
oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm 64位 只为了方便大家下载,请还是以官方的为准
sftp直接上载到home文件夹下方便调用(可以先解压缩之后再传,虽然网速会慢一丢丢) sudo apt-get install alien ...sudo alien -i /home/ubuntu/oracle-instantclient-sqlplus-21.1.0.0.0-1.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.i386.rpm
1. **解压RAR文件**:首先,需要使用RAR解压工具将"oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.rar"解压到一个合适的目录,例如`/opt/oracle/instantclient_11_2`。 2. **设置环境变量**:为了使系统能找到...
标题中的“instantclient-sqlplus-windows.x64-12.1.0.2.0.zip”是一个Oracle数据库的客户端工具包,专为Windows 64位操作系统设计。这个压缩包包含了Oracle Instant Client和SQL*Plus,是开发人员、系统管理员和DBA...
标题“instantclient-sqlplus-windows.x64-12.2.0.1.0”指的是Oracle Instant Client的SQL*Plus组件的Windows 64位版本,版本号为12.2.0.1.0。Oracle Instant Client是Oracle公司提供的一套轻量级客户端工具集,它...
官网太难下 遂下了老版本后,上传分享
instantclient-sqlplus-nt-11.2.0.3.0.zip instantclient-basic-nt-11.2.0.3.0.zip 链接: http://download.csdn.net/detail/lh11077/7727125 免安装客户端
《Oracle客户端:深入理解instantclient-sqlplus-linux.x64-11.2.0.4.0》 Oracle数据库是全球广泛使用的大型关系型数据库系统之一,为满足远程访问和本地开发的需求,Oracle提供了轻量级的客户端工具——Instant ...
Navicat for oracle、PL/SQL 都可以使用这个插件。instantclient-basic-win-x86-64-11.2.0.1.0,instantclient-sqlplus-windows.x64-11.2.0.4.0,解压合并到一个文件夹中。
1. 使用`sudo rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm`命令进行安装。 2. 配置环境变量。在~/.bashrc或/etc/profile中添加以下行: ``` export ORACLE_HOME=/path/to/oracle/instant...