rac数据库的服务无法启动,报错ORA-03113: end-of-file on communication channel

启动数据库服务出现如下错误:

[grid@rac2 ~]$ srvctl start database -d orcl
PRCR-1079 : 无法启动资源 ora.orcl.db
CRS-5017: The resource action "ora.orcl.db start" encountered the following error:
ORA-03113: end-of-file on communication channel
Process ID: 21123
Session ID: 63 Serial number: 3
. For details refer to "(:CLSN00107:)" in "/u01/app/11.2.0/grid/log/rac1/agent/crsd/oraagent_oracle/oraagent_oracle.log".

CRS-2674: Start of 'ora.orcl.db' on 'rac1' failed
CRS-2632: There are no more servers to try to place resource 'ora.orcl.db' on that would satisfy its placement policy
CRS-5017: The resource action "ora.orcl.db start" encountered the following error:
ORA-03113: end-of-file on communication channel
Process ID: 19773
Session ID: 63 Serial number: 3
. For details refer to "(:CLSN00107:)" in "/u01/app/11.2.0/grid/log/rac2/agent/crsd/oraagent_oracle/oraagent_oracle.log".

CRS-2674: Start of 'ora.orcl.db' on 'rac2' failed

查看日志文件如下

2015-05-21 10:11:22.245: [ USRTHRD][1073740096]{1:59151:1636} Thread:DedicatedThreadstop {
2015-05-21 10:11:22.245: [ USRTHRD][1073740096]{1:59151:1636} Thread:DedicatedThreadstop }
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] DbAgent:getOracleSid getResAttribute GEN_USR_ORA_INST_NAME = orcl1
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] DbAgent:getOracleSid 23 oracle_sid = orcl1
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] DbAgent:getOracleSid  oracle_sid = orcl1
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] CssData Constructor groupName:DBORCL cssRegistrationType:0 memno:-1
2015-05-21 10:11:22.246: [ USRTHRD][1073740096]{1:59151:1636} CssData::initMutex &m_cssDataLock:38036618
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] CssGroup::regis registration of groupName:DBORCL mbrid:-1 m_grpNum:-1 regType:0 succeeded
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] CssData::Constructor regis succeeded groupName:DBORCL memno:-1
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] CssData::Constructor m_pCssGroup:3800c6c0 group DBORCL
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstAgent::init m_groupName:DBORCL m_pCssData 38035550
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] getOracleHomeAttrib: oracle_home = /u01/app/oracle/product/11.2.0/db_1
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::ConnectionPool 2 m_oracleHome:/u01/app/oracle/product/11.2.0/db_1, m_oracleSid:orcl1, m_usrOraEnv:
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] clean {
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstAgent::stop_option stop mode immediate option 1
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstAgent::stop {
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] getResAttrib: attrib name USR_ORA_OPI value true len 4
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] Agent::flagUsrOraOpiIsSet(true) reason not dependency
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstAgent::stop original reason system do shutdown abort
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] Gimh::check OH /u01/app/oracle/product/11.2.0/db_1 SID orcl1
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] Gimh::check condition changes to (GIMH_NEXT_NUM) 0 exists
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] (:CLSN00007:)DbAgent::check failed gimh state 0
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] clsnDbAgent:checkCbk clsagfw_res_status ret 5
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstAgent::check db/asm 2clsagfw_res_status 5 poolState 0
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] (:CLSN00007:)InstAgent::check: return unplanned offline
2015-05-21 10:11:22.246: [ USRTHRD][1073740096]{1:59151:1636} Gimh::destructor gimh_dest_query_ctx rc=0
2015-05-21 10:11:22.246: [ USRTHRD][1073740096]{1:59151:1636} Gimh::destructor gimh_dest_inst_ctx rc=0
2015-05-21 10:11:22.246: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::stopConnection
2015-05-21 10:11:22.247: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::removeConnection connection count 0
2015-05-21 10:11:22.247: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::removeConnection freed 0
2015-05-21 10:11:22.247: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::stopConnection sid orcl1 status  1
2015-05-21 10:11:22.247: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstAgent::check 1 prev clsagfw_res_status 32513 current clsagfw_res_status 1
2015-05-21 10:11:27.247: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstAgent::check prev clsagfw_res_status 1 current clsagfw_res_status 1
2015-05-21 10:11:27.247: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstAgent::stop  shutdown mode: 4
2015-05-21 10:11:27.247: [ora.orcl.db][1073740096]{1:59151:1636} [clean] DbAgent::preStopCbk {
2015-05-21 10:11:27.247: [ora.orcl.db][1073740096]{1:59151:1636} [clean] DbAgentEventModule::stop Forcing stop because of clean
2015-05-21 10:11:27.247: [ USRTHRD][1073740096]{1:59151:1636} Thread:DedicatedThreadstop {
2015-05-21 10:11:27.247: [ USRTHRD][1073740096]{1:59151:1636} Thread:DedicatedThreadstop }
2015-05-21 10:11:27.247: [ora.orcl.db][1073740096]{1:59151:1636} [clean] DbAgent::preStopCbk }
2015-05-21 10:11:27.247: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::getConnection 160 ERROR sid orcl1 pool status 1
2015-05-21 10:11:27.247: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstAgent::stop pool pConnxn 00000000
2015-05-21 10:11:27.247: [ USRTHRD][1073740096]{1:59151:1636} InstConnection::initMutex AttachLock 00ae3210 DetachLock 00ae3228
2015-05-21 10:11:27.247: [ora.orcl.db][1073740096]{1:59151:1636} [clean] clsnInstConnection::makeConnectStr UsrOraEnv  m_oracleHome /u01/app/oracle/product/11.2.0/db_1 Crshome /u01/app/11.2.0/grid
2015-05-21 10:11:27.247: [ora.orcl.db][1073740096]{1:59151:1636} [clean] makeConnectStr = (DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app/oracle/product/11.2.0/db_1/bin/oracle)(ARGV0=oracleorcl1)(ENVS='ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1,ORACLE_SID=orcl1,LD_LIBRARY_PATH=')(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))(CONNECT_DATA=(SID=orcl1)))
2015-05-21 10:11:27.249: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstAgent::stop non pool pConnxn 1 38015a70
2015-05-21 10:11:27.249: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstConnection::connectInt: server not attached
2015-05-21 10:11:27.259: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0

2015-05-21 10:11:27.259: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstConnection::connectInt (2) Exception OCIException
2015-05-21 10:11:27.259: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstConnection:connect:excp OCIException OCI error 1034
2015-05-21 10:11:27.259: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstAgent::stop: connect1 errcode 1034
2015-05-21 10:11:27.259: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstAgent::stop: connect2 oracleHome /u01/app/oracle/product/11.2.0/db_1 oracleSid orcl1
2015-05-21 10:11:27.259: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstConnection::connectInt: server not attached
2015-05-21 10:11:27.269: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstConnection:connectInt connected
2015-05-21 10:11:27.269: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstConnection::shutdown mode 4
2015-05-21 10:11:27.269: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::removeConnection connection count 1
2015-05-21 10:11:27.269: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::removeConnection sid  orcl1, InstConnection 38015a70
2015-05-21 10:11:27.269: [ USRTHRD][1073740096]{1:59151:1636} InstConnection::breakCall pConnxn:38015a70  DetachLock:00ae3228 m_pSvcH:380b2570
2015-05-21 10:11:27.269: [ USRTHRD][1073740096]{1:59151:1636} InstConnection:~InstConnection: this 38015a70
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::removeConnection delete InstConnection 38015a70
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::removeConnection freed 1
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::stopConnection
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::removeConnection connection count 0
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::removeConnection freed 0
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::stopConnection sid orcl1 status  1
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstAgent::stop db/asm
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::stopConnection
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::removeConnection connection count 0
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::removeConnection freed 0
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] ConnectionPool::stopConnection sid orcl1 status  1
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] getResAttrib: attrib name USR_ORA_OPI value true len 4
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] Agent::flagUsrOraOpiIsSet(true) reason not dependency
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] InstAgent::stop: }
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] clean  }
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [clean] (:CLSN00106:) clsn_agent::clean }
2015-05-21 10:11:27.270: [    AGFW][1073740096]{1:59151:1636} Command: clean for resource: ora.orcl.db 1 1 completed with status: SUCCESS
2015-05-21 10:11:27.270: [CLSFRAME][1161484016] TM [MultiThread] is changing desired thread # to 3. Current # is 2
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [check] ConnectionPool::resetConnection  s_statusOfConnectionMap 00ae9760
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [check] ConnectionPool::resetConnection sid orcl1 status  2
2015-05-21 10:11:27.270: [    AGFW][1071638848]{1:59151:1636} Agent sending reply for: RESOURCE_CLEAN[ora.orcl.db 1 1] ID 4100:27163
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [check] Gimh::check OH /u01/app/oracle/product/11.2.0/db_1 SID orcl1
2015-05-21 10:11:27.270: [CLSFRAME][1161484016] TM [MultiThread] is changing desired thread # to 4. Current # is 3
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [check] Gimh::check condition changes to (GIMH_NEXT_NUM) 0 exists
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [check] (:CLSN00007:)DbAgent::check failed gimh state 0
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [check] clsnDbAgent:checkCbk clsagfw_res_status ret 5
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [check] (:CLSN00007:)InstAgent::check: return unplanned offline
2015-05-21 10:11:27.270: [ USRTHRD][1073740096]{1:59151:1636} Gimh::destructor gimh_dest_query_ctx rc=0
2015-05-21 10:11:27.270: [ USRTHRD][1073740096]{1:59151:1636} Gimh::destructor gimh_dest_inst_ctx rc=0
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [check] ConnectionPool::stopConnection
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [check] ConnectionPool::removeConnection connection count 0
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [check] ConnectionPool::removeConnection freed 0
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [check] ConnectionPool::stopConnection sid orcl1 status  1
2015-05-21 10:11:27.270: [ora.orcl.db][1073740096]{1:59151:1636} [check] InstAgent::check 1 prev clsagfw_res_status 2 current clsagfw_res_status 1
2015-05-21 10:11:32.271: [ora.orcl.db][1073740096]{1:59151:1636} [check] InstAgent::check prev clsagfw_res_status 1 current clsagfw_res_status 1
2015-05-21 10:11:32.271: [    AGFW][1071638848]{1:59151:1636} ora.orcl.db 1 1 state changed from: CLEANING to: OFFLINE
2015-05-21 10:11:32.271: [    AGFW][1071638848]{1:59151:1636} Agent sending last reply for: RESOURCE_CLEAN[ora.orcl.db 1 1] ID 4100:27163
2015-05-21 10:11:32.271: [    AGFW][1071638848]{1:59151:1636} Agent has no resources to be monitored, Shutting down ..
2015-05-21 10:11:32.271: [    AGFW][1071638848]{1:59151:1636} Agent sending message to PE: AGENT_SHUTDOWN_REQUEST[Proxy] ID 20486:28
2015-05-21 10:11:32.273: [    AGFW][1071638848]{1:59151:1636} Agent is shutting down.
2015-05-21 10:11:32.273: [    AGFW][1071638848]{1:59151:1636} Agent is exiting with exit code: 1

没看懂日志是什么意思,有看懂的大神可以帮忙分析一下

后来从网上查找这个错误前辈们的解决方式,试了一个  竟然成功了,下面是解决方法:

 

[grid@rac1 ~]$ su - oracle
口令:
[oracle@rac1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu May 21 10:17:29 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1636814848 bytes
Fixed Size      2253744 bytes
Variable Size   1023413328 bytes
Database Buffers   603979776 bytes
Redo Buffers      7168000 bytes
Database mounted.
SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE   MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS   FIRST_CHANGE# FIRST_TIME    NEXT_CHANGE#
---------------- ------------- ------------------- ------------
NEXT_TIME
-------------------
  1     1       11   52428800    512  2 NO
CURRENT         1659086 2015-05-18 16:00:24   2.8147E+14


  2     1       10   52428800    512  2 NO
INACTIVE        1623813 2015-05-18 12:08:34 1659086
2015-05-18 16:00:24

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE   MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS   FIRST_CHANGE# FIRST_TIME    NEXT_CHANGE#
---------------- ------------- ------------------- ------------
NEXT_TIME
-------------------

  3     2        5   52428800    512  2 NO
CURRENT         1726288 2015-05-19 05:43:12   2.8147E+14


  4     2        4   52428800    512  2 NO
INACTIVE        1610346 2015-05-18 11:00:44 1726288

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE   MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS   FIRST_CHANGE# FIRST_TIME    NEXT_CHANGE#
---------------- ------------- ------------------- ------------
NEXT_TIME
-------------------
2015-05-19 05:43:12

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
[oracle@rac1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu May 21 10:20:43 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
[oracle@rac1 ~]$ cd /u01/app/11.2.0/grid/bin/
[oracle@rac1 bin]$ crs_stat -t
Name           Type           Target    State     Host       
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    rac1       
ora.DBFILE1.dg ora....up.type ONLINE    ONLINE    rac1       
ora.FRA.dg     ora....up.type ONLINE    ONLINE    rac1       
ora....ER.lsnr ora....er.type ONLINE    ONLINE    rac1       
ora....N1.lsnr ora....er.type ONLINE    ONLINE    rac1       
ora.asm        ora.asm.type   ONLINE    ONLINE    rac1       
ora.cvu        ora.cvu.type   ONLINE    ONLINE    rac1       
ora.gsd        ora.gsd.type   OFFLINE   OFFLINE              
ora....network ora....rk.type ONLINE    ONLINE    rac1       
ora.oc4j       ora.oc4j.type  ONLINE    ONLINE    rac1       
ora.ons        ora.ons.type   ONLINE    ONLINE    rac1       
ora.orcl.db    ora....se.type ONLINE    ONLINE    rac1       
ora....SM1.asm application    ONLINE    ONLINE    rac1       
ora....C1.lsnr application    ONLINE    ONLINE    rac1       
ora.rac1.gsd   application    OFFLINE   OFFLINE              
ora.rac1.ons   application    ONLINE    ONLINE    rac1       
ora.rac1.vip   ora....t1.type ONLINE    ONLINE    rac1       
ora....SM2.asm application    ONLINE    ONLINE    rac2       
ora....C2.lsnr application    ONLINE    ONLINE    rac2       
ora.rac2.gsd   application    OFFLINE   OFFLINE              
ora.rac2.ons   application    ONLINE    ONLINE    rac2       
ora.rac2.vip   ora....t1.type ONLINE    ONLINE    rac2       
ora....ry.acfs ora....fs.type ONLINE    ONLINE    rac1       
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    rac1       

到此服务已经启动成功了,虽然服务成功启动了  但是原理却不是很理解 ,有能明白的大神希望能帮忙分析下

下面是我从网上看到的解决方法,我自己运行的时候看到数据库已经mount状态了 就没再往下执行

报错ORA-03113: end-of-file on communication channel (通信通道的文件结尾)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
SQL> startup
ORACLE instance started.
  
Total System Global Area 1252663296 bytes
Fixed Size 2227944 bytes
Variable Size 704643352 bytes
Database Buffers 536870912 bytes
Redo Buffers 8921088 bytes
Database mounted.
ORA-03113: end - of -file on communication channel
Process ID: 8117
Session ID: 191 Serial number: 3
网上分析,可能由于昨晚数据库强制关闭,导致文件状态可能不一致,因为正常关闭数据库会同步校验各文件,使得重新启动的时候文件时间点一致。解决方案如下
启动DB
SQL> conn / as sysdba
Connected to an idle instance.
  
SQL> startup mount
ORACLE instance started.
直接reset不成功
SQL> select * from v$log;
  
     GROUP # THREAD# SEQUENCE # BYTES BLOCKSIZE MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------------- ------------- --------- ------------ ---------
          1 1 112 52428800 512 1 NO
INACTIVE 3826382 16-JUL-13 3857158 17-JUL-13
  
          3 1 114 52428800 512 1 NO
CURRENT 3886899 17-JUL-13 2.8147E+14
  
          2 1 113 52428800 512 1 NO
INACTIVE 3857158 17-JUL-13 3886899 17-JUL-13
  
  
SQL> alter database open resetlogs 2;
alter database open resetlogs 2
                               *
ERROR at line 1:
ORA-02288: invalid OPEN mode
恢复数据库
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01139: RESETLOGS option only valid after an incomplete database recovery
  
  
SQL> recover database until time '2013-07-05'
Media recovery complete.
SQL> alter database open resetlogs;
  
Database altered.
成功。

 

<think>嗯,用户咨询Oracle RAC恢复到单机后启动时报ORA-01589错误的解决方案。这个错误很典型啊,核心在于恢复操作破坏了原集群的一致性状态,导致数据库需要明确的日志重置指令才能真正打开。 我注意到用户提供的引用资料虽然涉及RAC错误,但没有直接匹配ORA-01589的场景。引用[1]提到resetlogs用法但讨论的是无效打开模式ORA-02288;引用[2][3]讨论的是RAC实例号冲突和启动错误;引用[4]涉及存储层问题。不过这些材料倒印证了RAC配置的复杂性。 用户的需求其实是单机环境下的恢复启动问题。ORA-01589的本质是重做日志连续性中断,这在RAC转单机的场景特别常见——因为集群环境默认是多线程重做日志,转单机时必然出现日志不同步。解决方案必须使用resetlogs重建控制点,但要注意两个关键点:一是恢复操作可能不完整,二是字符集参数容易被忽略。 考虑到用户正在做恢复操作,可能需要补充说明:如果备份文件来自RAC环境,单机恢复时还要注意删除所有RAC相关的隐藏参数,否则即使resetlogs成功也可能报内部错误。另外用户没提数据库版本,但11g和12c的resetlogs处理机制稍有不同,需要准备两套方案。 用户应该已经完成了基础恢复操作,否则不会卡在open阶段。ta可能漏掉了resetlogs指令,或者误用了noresetlogs选项。需要提醒ta检查归档日志完整性,这个错误有时伴随隐含的介质损坏问题。不过从提问看用户对Oracle恢复流程已有基础认知,可以适当使用专业术语。 </think>根据您描述的 Oracle RAC 恢复到单机后启动时报 **ORA-01589: must use RESETLOGS or NORESETLOGS option for database open** 错误,结合 Oracle 恢复机制,解决方案如下: --- ### **错误原因分析** 1. **日志连续性中断** RAC 环境使用共享存储的在线重做日志和归档日志。恢复到单机环境时,备份通常基于某个 **SCN(系统变更号)**。当使用 `RECOVER DATABASE` 命令完成恢复后,数据库会检测到当前重做日志的连续性已被破坏(例如日志序列号不匹配或 SCN 断层),此时必须使用 `RESETLOGS` 或 `NORESETLOGS` 选项打开数据库[^1]。 2. **RESETLOGS 的作用** `RESETLOGS` 会重置日志序列号(从 1 开始),清空在线重做日志内容,并创建一个新的数据库 Incarnation(化身)。**这是从备份恢复后开库的标准操作**[^1][^3]。 --- ### **解决步骤** ```sql -- 步骤1: 确保数据库处于 MOUNT 状态 STARTUP MOUNT; -- 步骤2: 执行恢复操作(若未完成) RECOVER DATABASE; -- 若提示需要特定归档日志,但已缺失,可执行: RECOVER DATABASE UNTIL CANCEL; -- 输入 CANCEL 中断恢复 -- 或强制完成恢复: RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL; -- 输入 CANCEL -- 步骤3: 使用 RESETLOGS 开库 ◆ 关键步骤 ◆ ALTER DATABASE OPEN RESETLOGS; ``` --- ### **注意事项** 1. **字符集与参数文件** - 检查单机环境的 `NLS_LANG` 和数据库字符集是否与原 RAC 一致(可通过 `SELECT * FROM nls_database_parameters;` 查看)。 - 移除参数文件(`pfile/spfile`)中 RAC 相关配置(如 `cluster_database=true`, `instance_number`, `thread` 等)。 2. **控制文件与日志文件** - 若恢复时使用了旧控制文件备份,需确保其兼容性。必要时重建控制文件: ```sql ALTER DATABASE BACKUP CONTROLFILE TO TRACE; -- 生成重建脚本 ``` - 单机环境需重新配置在线重做日志路径(原 RAC 日志可能在共享存储上不可访问)。 3. **数据文件状态检查** 开库后立即验证数据: ```sql ALTER SESSION SET NLS_LANGUAGE='AMERICAN'; -- 避免语言报错干扰 ALTER DATABASE OPEN; -- 若 RESETLOGS 成功,此命令应正常执行 SELECT NAME, OPEN_MODE FROM V$DATABASE; -- 确认状态为 READ WRITE ``` 4. **备份新化身** 成功开库后立即执行全量备份:**RESETLOGS 后的数据库是一个新起点,原有备份失效**[^3]。 --- ### **可能关联问题排查** - **ORA-600 [2662]**:若开库时出现此错误,表明 SCN 不一致(常见于未彻底恢复)。需重新执行 `RECOVER DATABASE UNTIL CANCEL` 并应用所有可用归档日志[^3]。 - **文件路径错误**:单机环境需检查参数文件中 `*.control_files`、`*.log_archive_dest_1` 等路径有效性。 --- ### **根本原因总结** | **阶段** | **RAC 环境** | **单机恢复后** | **解决方案** | |----------------|-------------------------------|-------------------------------|--------------------------| | **日志连续性** | 多节点共享日志序列 | 日志序列断裂 | 必须使用 `RESETLOGS` | | **配置依赖** | 依赖集群参数(如实例号) | 需清除集群参数 | 修改 `pfile/spfile` | | **文件路径** | 指向共享存储(ASM/GPFS) | 需指向本地有效路径 | 更新控制文件/参数文件 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值