ORA-19809: limit exceeded for recovery files(超出了恢復文件數的限制)

            
客戶數據庫宕掉了,連接過去一看
可以正常到mount狀態,然後alter database open,觀察日誌裏面提示:
ORA-19809: limit exceeded for recovery files
Cause: The limit for recovery files specified by the DB_RECOVERY_FILE_DEST_SIZE was exceeded.

 

查詢官方對錯誤的處理方式如下:
http://docs.oracle.com/cd/E16655_01/server.121/e26079/e19500.htm
ORA-19809: limit exceeded for recovery files
Cause:The limit for recovery files specified by the DB_RECOVERY_FILE_DEST_SIZE was exceeded.
Action:There are five possible solutions: 
    1) Take frequent backup of recovery area using RMAN. 
    2) Consider changing RMAN retention policy. 
    3) Consider changing RMAN archived log deletion policy. 
    4) Add disk space and increase DB_RECOVERY_FILE_DEST_SIZE.
    5) Delete files from recovery area using RMAN.

於是做如下操作:
 crosscheck archivelog all;
   直接刪除7天之前的歸檔日誌,騰出空間來
 delete noprompt archivelog until time 'sysdate - 7';

現在sqlplus / as sysdba過去,正常啓動數據庫

SQL> select status from v$instance;

STATUS
------------
MOUNTED

SQL> alter database open;


SQL>  select status from v$instance;

STATUS
------------
OPEN

後續處理,防止該問題頻繁發生:

RMAN> CONFIGURE RETENTION POLICY TO RECOVERY  WINDOW OF 7 DAYS;

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;


SQL>  alter system set db_recovery_file_dest_size=10G scope=both;
SQL>  alter system set log_archive_dest_1='location=/opt/oracle/oradata/archive_log' scope=both;


現在切換日誌alter system archive log current;可以通過select name from v$archived_log;查看,看歸檔已經到了新路徑,也可去select name from v$archived_log;下檢查。

 

 

 

分析:導致該問題主要由於歸檔日誌在快速恢復區下,當快速恢復區被充滿的時候,則無法進行歸檔,所以導致數據庫宕機,處理方式即 

   (1)改變rman的策略,從而進行定期清理歸檔日誌。

   (2)修改歸檔路徑,從而不受快速恢復區的影響

   (3)修改db_recovery_file_dest_size大小

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章