問題描述:洗掉歸檔的備份,在進行歸檔的重新備份,提示:skipping archived logs of thread 1 from sequence 29 to 46; already backed up,這個也不算報錯,接著之前的ORA-19625
1.進行備份,但是提示我歸檔已經存在,但是我已經把備份全都物理洗掉了,rm * /u01/app/oracle/oradata/Backup 已經洗掉過Backup下所有的備份,包括這些歸檔,但是提示過下邊這些歸檔已經存在,很奇怪

然后我的備份路徑下只有資料庫的備份檔案,沒有歸檔備份?全部刪掉重來

2.查看rman備份的歸檔資訊,然而這個路徑下是沒有任何檔案的,在之后find這個bak也是沒有找到的
RMAN> list backup of archivelog all;

3.重啟,重啟完重新執行以下腳本,這里很有意思,看起來沒有問題,
run{
allocate channel ch_1 type disk;
backup database format '/u01/app/oracle/oradata/Backup/database_$t_%u_%c.bak'';
backup archivelog all format '/u01/app/oracle/oradata/Backup/archive_$t_%u_%c.bak';
}

4.但是下邊這個就不明白了,我就已經洗掉歸檔備份了,怎么還有這幾個歸檔已經有備份了,直接被跳過了,而且歸檔檔案是存在的,這里是我重啟完資料庫,而且shutdown immediate了一次資料庫,要注意的是這時會產生歸檔檔案,所以資料庫備份的是我shutdown產生的一次歸檔檔案,之前的該跳過還是跳過了

5.后來才知道這個原因,物理洗掉歸檔備份,資料庫是知道的,但是控制檔案是還有記錄的,這個單詞一開始不知道什么意思,這次可記住了”過期“!
RMAN> crosscheck backup; 這里查看一下所有的備份,這里的備份是EXPIRED過期的,但是控制檔案不知道,下邊就要告訴控制檔案

RMAN> delete expired backup; 洗掉掉過期的備份,選擇yes


6.在此進行備份,第無數次備份了,這里需要注意的是最好一行一行來,點擊回車系統會檢測你的語法,備份成功

7.查看一下備份的檔案,這里的歸檔備份是沒有問題的,當時調整了show all命令的引數,設定成了兩個備份歸檔保留數,先記錄一下,忽略一下show all里邊設定路徑%_后邊的錯誤語法,沒有改過來,這里回頭再研究一下


轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/25101.html
標籤:Oracle
