ORA-16038,日誌 X 序列號 XXX 無法歸檔,資料庫啟動失敗故障解決一例

djb1008發表於2012-02-17
今天上班後,啟動本人筆記本上的資料庫,居然報錯起不來;忙活了5分鐘,搞定了,下面給出問題解決的步驟,供大家批評指正.
C:UsersAdministrator>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 2月 17 09:06:41 2012
Copyright (c) 1982, 2006, Oracle.?All Rights Reserved.
已連線到空閒例程。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area?612368384 bytes
Fixed Size 1292036 bytes
Variable Size 331352316 bytes
Database Buffers 272629760 bytes
Redo Buffers 7094272 bytes
資料庫裝載完畢。
ORA-16038: 日誌 2 序列號 584 無法歸檔
ORA-19809: 超出了恢復檔案數的限制
ORA-00312: 聯機日誌 2 執行緒 1: 'Y:ORACLEORADATAAIDUREDO02.LOG'
[@more@]

檢查是否是歸檔模式

SQL> archive log list;
資料庫日誌模式 存檔模式
自動存檔 啟用
存檔終點 USE_DB_RECOVERY_FILE_DEST
最早的聯機日誌序列 584
下一個存檔日誌序列 584
當前日誌序列 586

檢查歸檔日誌的歸檔情況

SQL> select name ,recid from v$archived_log;
NAME RECID
---------- ......
C:ORACLEO1_MF_1_581_7JJ3P401_.ARC 44
C:ORACLEO1_MF_1_582_7MJRMVWX_.ARC 45
C:ORACLEO1_MF_1_583_7MK5MJCK_.ARC 46
已選擇46行。

檢查redo檔案的狀態,發現redo2的狀態為inactive,放心了不少.

SQL> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME

---------- ---------- ---------- ---------- ---------- --- ----------------------------- -------------------
1 1 586 52428800 1 NO CURRENT 29058619 2012-02-15 14:17:02
3 1 585 52428800 1 NO INACTIVE 29013803 2012-02-14 13:07:46
2 1 584 52428800 1 NO INACTIVE 28967584 2012-02-13 12:49:52

開始檢查相關的SCN,看是否一致,最後發現db的scn等於file的scn

SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#
------------------
29121580
SQL> select name,file#,checkpoint_change# from v$datafile
NAME FILE# CHECKPOINT_CHANGE#
--------------------------------------------- ---------- ------------------
1 29121580
2 29121580
3 29121580
4 29121580
5 29121580
......
18 29121580

已選擇17行。

檢查redo的scn,發現資料庫不需要介質恢復

SQL> select sequence#,status,first_change# from v$log;

SEQUENCE# STATUS FIRST_CHANGE#
---------- ---------------- -------------
586 CURRENT 29058619
585 INACTIVE 29013803
584 INACTIVE 28967584

得出結論:資料庫的歸檔出現了問題,著手檢查archive的設定

SQL> show parameter archi
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_2 string
log_archive_dest_state_1 string enable
…...
log_archive_duplex_dest string
log_archive_format string ARC%S_%R.%T

設定歸檔日誌的路徑,重新啟動資料庫,啟動成功.

SQL> alter system set log_archive_dest_1='LOCATION=c:oracle' scope=spfile;
系統已更改。

SQL> shutdown immediate;
ORA-01109: 資料庫未開啟
已經解除安裝資料庫。
ORACLE 例程已經關閉。


SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1292036 bytes
Variable Size 339740924 bytes
Database Buffers 264241152 bytes
Redo Buffers 7094272 bytes
資料庫裝載完畢。
資料庫已經開啟。

資料庫可以正常開啟後,檢查歸檔日誌的歸檔情況

SQL>select * from v$log;

RECID NAME SEQUENCE# FIRST_CHANGE#
---- ----------------------------- -------------------- ----------------
......
46 583 28929595
47 584 28967584
48 585 29013803
49 586 29058619

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/32980/viewspace-1057382/,如需轉載,請註明出處,否則將追究法律責任。

相關文章