今天虚拟机里的oracle打不开了,郁闷了半天,结果从网上搜了搜答案,东拼西凑
,终于弄好啦。现把操作步骤整理出来,一来向各位网友分享一下,二来给自己备个案。呵呵~
[oracle@RHEL5 ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Sat Mar 31 15:34:45 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 730714112 bytes
Fixed Size 2216944 bytes
Variable Size 268438544 bytes
Database Buffers 452984832 bytes
Redo Buffers 7073792 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 8698
Session ID: 63 Serial number: 5


SQL> startup nomount
ORACLE instance started.
Total System Global Area 730714112 bytes
Fixed Size 2216944 bytes
Variable Size 268438544 bytes
Database Buffers 452984832 bytes
Redo Buffers 7073792 bytes
nomount 阶段没有问题。在nomount阶段,oracle首先寻找参数文件(pfile/spfile),然后
根据参数文件中的设置,创建实例,分配内存,启动后台进程。所以这个阶段只
要拥有了一个参数文件,就可以启动实例,而不需要任何控制文件或数据文件的
参与。据此,我们可以排除系统配置(内核参数等)存在问题。
 

接下来看看mount阶段
SQL> alter database mount;

Database altered.
ok!mount阶段通过。控制文件也不存在问题。

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 9219
Session ID: 63 Serial number: 3
open阶段终于出现了03113错误。这时提示中给出的信息还是不完整。我们要查看
一下警报日志里的记录啦。其实一般oracle遇到问题,我们首先想到的就是查看警
报日志alert,
我也是后知后觉啦。哈哈。好了,我们看下警告日志吧。
在这里我要提一下,我的oracle版本是11gR2的。而11g一个比较大的变化就是多了
一个以xml文件格式存在的alert文件,而xml格式的文件在字符界面下查看并不友好
,更令人费解的是,这个xml文件就存放在以前版本alert的默认位置。那么文本格
式的alert文件在哪里呢?看一下动态视图V$DIAG_INFO吧。
SQL> select * from v$diag_info ;

INST_ID NAME VALUE
---------- ------------------------------ ----------------------------------------
1 Diag Enabled TRUE
1 ADR Base /oracle
1 ADR Home /oracle/diag/rdbms/orcl/orcl
1 Diag Trace /oracle/diag/rdbms/orcl/orcl/trace
1 Diag Alert /oracle/diag/rdbms/orcl/orcl/alert
1 Diag Incident /oracle/diag/rdbms/orcl/orcl/incident
1 Diag Cdump /oracle/diag/rdbms/orcl/orcl/cdump
1 Health Monitor /oracle/diag/rdbms/orcl/orcl/hm
1 Default Trace File /oracle/diag/rdbms/orcl/orcl/trace/orcl_
ora_9219.trc
---------- ------------------------------ ----------------------------------------
xml格式的alert在Diag Alert对应的目录里,而文本格式的alert存放在Diag Trace对应的
目录下。来吧,让我们到/oracle/diag/rdbms/orcl/orcl/trace下看看吧。
[oracle@RHEL5 ~]$ cd /oracle/diag/rdbms/orcl/orcl/trace
[oracle@RHEL5 trace]$ ls
alert_orcl.log orcl_m000_19221.trm orcl_mman_8647.trm orcl_ora_23621.trm
orcl_arc0_26094.trc orcl_m000_19807.trc orcl_mman_9204.trc .......
找到alert_orcl.log啦。还等什么,直接vi,shift+g啦。
-----------------------------------------------------------------------------------
Sat Mar 31 16:19:23 2012
alter database open
Sat Mar 31 16:19:23 2012
LGWR: STARTING ARCH PROCESSES
Sat Mar 31 16:19:23 2012
ARC0 started with pid=18, OS id=10286
ARC0: Archival started
LGWR: STARTING ARCH PROCESSES COMPLETE
ARC0: STARTING ARCH PROCESSES
Errors in file /oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_9219.trc:
ORA-19504: failed to create file "/backup/arch_log/1_23_779060511.dbf"
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 13: Permission denied
ARCH: Error 19504 Creating archive log file to '/backup/arch_log/1_23_779060511.dbf'
Sat Mar 31 16:19:25 2012
ARC1 started with pid=19, OS id=10288
Errors in file /oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_9219.trc:
ORA-16038: log 2 sequence# 23 cannot be archived
ORA-19504: failed to create file ""
ORA-00312: online log 2 thread 1: '/oracle/oradata/orcl/redo02.log'
USER (ospid: 9219): terminating the instance due to error 16038
-------------------------------------------------------------------------------------
原来费了半天劲查找出来的问题,竟是permission denied!不说了,查下归档日志目
录的权限吧。
[oracle@RHEL5 trace]$ cd /
[oracle@RHEL5 /]$ ll
total 211
drwxr-xr-x 3 root root 4096 Mar 27 10:52 backup
-rw-r--r-- 1 root root 549 Oct 6 13:20 backup.log
drwxr-xr-x 2 root root 4096 Oct 3 11:23 bin
drwxr-xr-x 4 root root 1024 Sep 12 2011 boot
...........................................
让我汗颜啊。竟然会犯这么低级的错误。接下来不说废话啦。直接上步骤。
[root@RHEL5 ~]# chown -R oracle:oinstall /backup
[root@RHEL5 ~]# chmod -R 775 /backup
[oracle@RHEL5 ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Sat Mar 31 16:25:33 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 730714112 bytes
Fixed Size 2216944 bytes
Variable Size 268438544 bytes
Database Buffers 452984832 bytes
Redo Buffers 7073792 bytes
Database mounted.
Database opened.

数据库成功打开!丢人中~