Oracle手動刪除歸檔日誌厚,出現ORA-19571錯誤

一、使用以下的命令清理了空間:

1.   cd /orabak
2.   find . -type f -mtime +30 -exec rm -rf {} \;

二、然後開始使用rman備份的腳本進行備份,備份到最後出現以下報錯

-------------------------------------------------------------------------------------------
archive log filename=/oralog/1_20800_812554797.dbf recid=20799 stamp=839154512
archive log filename=/oralog/1_20801_812554797.dbf recid=20800 stamp=839154513
released channel: ch1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
 
RMAN-03009: failure of backup command on ch1 channel at 02/10/2014 10:33:46
ORA-19571: archived-log recid 19009 stamp 837863118 not found in control file
-------------------------------------------------------------------------------------------

三、分析及處理過程


1、當手工刪除了歸檔日誌以後,Rman備份會檢測到日誌缺失,從而無法進一步繼續執行。

所以此時需要手工執行crosscheck過程,之後Rman備份可以恢復正常。


2、Crosscheck日誌

$ rman target /
RMAN> crosscheck archivelog all;#Oracle 9i及以後的版本用crosscheck archivelog all;
RMAN> change archivelog all crosscheck; #Oracle 8i中用change archivelog all crosscheck;

3、再次運行備份腳本

--
archive log filename=/oralog/1_20887_812554797.dbf recid=20886 stamp=839198925 archive log filename=/oralog/1_20888_812554797.dbf recid=20887 stamp=839198982 archive log filename=/oralog/1_20889_812554797.dbf recid=20888 stamp=839199982 archive log filename=/oralog/1_20890_812554797.dbf recid=20889 stamp=839199982 Finished backup at 10-FEB-14
Starting backup at 10-FEB-14
channel ch1: starting full datafile backupset channel ch1: specifying datafile(s) in backupset including current control file in backupset channel ch1: starting piece 1 at 10-FEB-14 channel ch1: finished piece 1 at 10-FEB-14 piece handle=/orabak/control_11839200079688 tag=TAG20140210T230759 comment=NONE channel ch1: backup set complete, elapsed time: 00:00:01 Finished backup at 10-FEB-14
released channel: ch1
--
完成

4、參考資料

http://www.eygle.com/archives/2004/12/rman_crosscheck.html


5、rman的備份腳本

run{
allocate channel ch1 device type DISK;
backup full filesperset 50
database format'/orabak/full_%c_%p_%t_5s';
sql 'alter system archive log current';
backup  filesperset 50 archivelog all
format '/orabak/arch%c%p%t%s' delete input;
backup current controlfile 
format  '/orabak/control_%c%p%t%s';
release channel ch1;
}


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