ORA-16014錯誤解決(歸檔區滿)

hexel發表於2013-11-12

好久前維護的一個測試庫,今天一看停留在mount狀態了:

SQL> alter database open;

alter database open

*

第 1 行出現錯誤:

ORA-16014: 日誌 3 sequence# 117 未歸檔, 沒有可用的目的地

ORA-00312: 聯機日誌 3 執行緒 1:

'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCLJJYF2\REDO03.LOG'

資料庫在歸檔模式下,由於rman指令碼計劃任務執行出問題,未能把過期的歸檔檔案清除,造成USE_DB_RECOVERY_FILE_DEST區域被用完

SQL>  select * from v$flash_recovery_area_usage;

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES

------------ ------------------ ------------------------- ---------------

CONTROLFILE                   0                         0               0

ONLINELOG                     0                         0               0

ARCHIVELOG                98.86                         0              44

BACKUPPIECE                 .39                         0               1

IMAGECOPY                     0                         0               0

FLASHBACKLOG                  0                         0               0

已選擇6行。

在這種情況下,可以通過增大db_recovery_file_dest_size解決,也可以刪除備份集檔案和歸檔檔案:

RMAN> delete noprompt obsolete;

RMAN 保留策略將應用於該命令

將 RMAN 保留策略設定為冗餘 1

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=151 devtype=DISK

未找到已廢棄的備份

RMAN>  crosscheck backupset;

使用通道 ORA_DISK_1

交叉校驗備份片段: 找到為 'AVAILABLE'

備份段 handle=E:\HX\BACKUP\LEVEL0_4BOJTU25_1_1.BKP recid=134 stamp=826210385

交叉校驗備份片段: 找到為 'AVAILABLE'

備份段 handle=E:\HX\BACKUP\LEVEL0_4COJTU4E_1_1.BKP recid=135 stamp=826210459

交叉校驗備份片段: 找到為 'AVAILABLE'

備份段 handle=E:\HX\BACKUP\LEVEL0_4DOJTU60_1_1.BKP recid=136 stamp=826210516

交叉校驗備份片段: 找到為 'AVAILABLE'

………………………………………………………………………………………………………………

已交叉檢驗的 32 物件

沒有冗餘和無效的備份集,說明在rman刪除之前,歸檔檔案就把空間用完了。

SQL> select distinct  CHECKPOINT_CHANGE#  from v$datafile_header;

CHECKPOINT_CHANGE#

------------------

13414847

SQL> select  distinct CHECKPOINT_CHANGE# from v$datafile;

CHECKPOINT_CHANGE#

------------------

13414847

1. 可以選擇手動刪除歸檔檔案,然後再用rman清除資訊:

RMAN> crosscheck archivelog all;

RMAN> delete noprompt expired archivelog all;

SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES

------------ ------------------ ------------------------- ---------------

CONTROLFILE                   0                         0               0

ONLINELOG                     0                         0               0

ARCHIVELOG                13.46                         0               6

BACKUPPIECE                 .39                         0               1

IMAGECOPY                     0                         0               0

FLASHBACKLOG                  0                         0               0

已選擇6行。

接著啟動資料庫:

SQL> alter database open;

資料庫已更改。

2. 如果手動修改db_recovery_file_dest_size,則如下操作:

SQL> alter system set db_recovery_file_dest_size=5G;

SQL> alter database open;

資料庫已更改。

接著,再做一次rman全備吧。

教訓:歸檔模式下一定要注意監控恢復區的使用情況,避免不必要的麻煩

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

相關文章