2013年7月24日 星期三

Oracle 11g-遇到ORA-03113: end-of-file on communication channel

我的這台VM OS 中一共有 2個Instance 2個DB(orcl 與 orcl2) ,orcl2 是用來放RMAN catalog用的
今天想說把它開起來讓orcl連過去做一下備份,但是一直連不過去都會出現錯誤


[oracle@oracledb admin]$ rman target / catalog vpc1/oracle@192.168.56.2:1521/orcl2
Recovery Manager: Release 11.2.0.1.0 - Production on Wed Jul 24 22:32:59 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
connected to target database: ORCL (DBID=1346113250)
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04004: error from recovery catalog database: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor


一開始以為是Listener的問題,檢查了一下也沒啥異狀,接著去看了一下orcl2順便重啟了一下DB結果出現一個錯誤

[oracle@oracledb /]$ sqlplus "/as sysdba"
SQL*Plus: Release 11.2.0.1.0 Production on Wed Jul 24 22:48:58 2013
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
Connected to an idle instance.

SQL> startup
ORACLE instance started.
Total System Global Area  523108352 bytes
Fixed Size    1337632 bytes
Variable Size  423626464 bytes
Database Buffers   92274688 bytes
Redo Buffers    5869568 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 16039
Session ID: 136 Serial number: 5


看了一下alert log 出現錯誤的原因是

(事實上整個內容還蠻多的我就只貼最後一段就好)

Errors in file /u01/app/oracle/diag/rdbms/orcl2/orcl2/trace/orcl2_ora_17012.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 48234496 bytes disk space from 4039114752 limit
ARCH: Error 19809 Creating archive log file to '+FRA'
ARCH: Archival stopped, error occurred. Will continue retrying
ORACLE Instance orcl2 - Archival Error
ORA-16038: log 2 sequence# 89 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 2 thread 1: '+DATA/orcl2/onlinelog/group_2.273.818334511'
ORA-00312: online log 2 thread 1: '+FRA/orcl2/onlinelog/group_2.263.818334523'
Errors in file /u01/app/oracle/diag/rdbms/orcl2/orcl2/trace/orcl2_arc2_17066.trc:
ORA-16038: log 2 sequence# 89 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 2 thread 1: '+DATA/orcl2/onlinelog/group_2.273.818334511'
ORA-00312: online log 2 thread 1: '+FRA/orcl2/onlinelog/group_2.263.818334523'
Errors in file /u01/app/oracle/diag/rdbms/orcl2/orcl2/trace/orcl2_ora_17012.trc:
ORA-16038: log 1 sequence# 88 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 1 thread 1: '+DATA/orcl2/onlinelog/group_1.272.818334495'
ORA-00312: online log 1 thread 1: '+FRA/orcl2/onlinelog/group_1.262.818334505'
USER (ospid: 17012): terminating the instance due to error 16038

Instance terminated by USER, pid = 17012




看起來應該是logfile sequence#88  89沒辦法 archived的關係,所以DB在recover的時候出現意外導致DB開不起來

    GROUP# STATUS  TYPE    MEMBER  IS_
---------- ------- ------- ---------------------------------------------------------------------- ---
3   ONLINE  +DATA/orcl2/onlinelog/group_3.274.818334529  NO
3   ONLINE  +FRA/orcl2/onlinelog/group_3.264.818334539  YES
2   ONLINE  +DATA/orcl2/onlinelog/group_2.273.818334511  NO
2   ONLINE  +FRA/orcl2/onlinelog/group_2.263.818334523  YES
1   ONLINE  +DATA/orcl2/onlinelog/group_1.272.818334495  NO

1   ONLINE  +FRA/orcl2/onlinelog/group_1.262.818334505  YES


    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE  MEMBERS ARC STATUS       FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
1    1      91   52428800   512 2 NO  CURRENT     3217365 24-JUL-13 2.8147E+14
2    1      89   52428800   512 2 NO  INACTIVE     3170929 21-JUL-13    3187976 21-JUL-13
3    1      90   52428800   512 2 YES INACTIVE     3187976 21-JUL-13    3217365 24-JUL-13



查了一下解決方法,找出比較可能的方式所以我執行了clear unarchived logfile 事著看看能不能修復,運氣不錯....只清除了group1就好了!!


SQL> ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 1;

Database altered.

SQL> shutdown immediate;
ORA-01109: database not open
Database dismounted.
startORACLE instance shut down.
     
SQL> startup
ORACLE instance started.

Total System Global Area  523108352 bytes
Fixed Size    1337632 bytes
Variable Size  423626464 bytes
Database Buffers   92274688 bytes
Redo Buffers    5869568 bytes
Database mounted.
Database opened.

SQL>


會發生這個問題我猜有可能是我的手殘因為不想要天天都開機等很久所以我有時候會用休眠的方式,沒想到用了這麼久都沒事今天卻.......所以趕快紀錄一下




**** 如果您也喜歡本篇內容的話,請幫忙點選一下下方的廣告,做為對小弟的鼓勵****

****當然如果我的內容不好也請您給予寶貴建議以做為檢討的基礎****


沒有留言:

張貼留言