問題描述:rman進行備份的時候,出現報錯ORA-19625,無效的文件 1.進行資料庫備份,然後就出現了報錯,沒有這個24號的歸檔日誌 RMAN> run{ 2> allocate channel ch_1 type disk; 3> allocate channel ch_2 type disk ...
問題描述:rman進行備份的時候,出現報錯ORA-19625,無效的文件
1.進行資料庫備份,然後就出現了報錯,沒有這個24號的歸檔日誌
RMAN> run{
2> allocate channel ch_1 type disk;
3> allocate channel ch_2 type disk;
4> backup database format '/u01/app/oracle/oradata/Backup/database_%t_%u_%c.bak';
5> backup archivelog all format '/u01/app/oracle/oradata/Backup/archive_%t_%u_%c.bak';
6> }
2.想起來之前是做SCN增量備份的時候,把24號歸檔就不知道是刪除了還是mv到哪了,反正就是丟了,這個其它文檔交代的很清楚,操作系統刪除了這個歸檔日誌,但是還沒備份過,找不到歸檔就出錯了。然後就執行以下命令,發現了failed for archived log
RMAN> change archivelog all crosscheck; (物理上刪除了歸檔,但是控制文件不知道,需要交叉同步消息
3.一開始不知道直接以為執行change archivelog all crosscheck; 告訴控制文件這個歸檔已經不行了,找不到了,就可以了。然後就進行備份,在我本地的備份路徑上所有東西都是ok的,但是rman備份的時候發現24號歸檔還是被備份進去了,這裡沒有來的及截圖,下邊可以備份到完整的bak
RMAN> run{
2> allocate channel ch_1 type disk;
3> allocate channel ch_2 type disk;
4> backup database format '/u01/app/oracle/oradata/Backup/database_%t_%u_%c.bak';
5> backup archivelog all format '/u01/app/oracle/oradata/Backup/archive_%t_%u_%c.bak';
6> }
4.這裡就牽扯到另外一條命令:delete expired archivelog all; 這條命令才是同步控制文件和實際物理文件的信息的,之前的change archivelog all crosscheck; 是比較一下控制文件和物理文件的差別的,所以我又把備份文件全都刪除,重新備了一遍
刪除備份
delete expired archivelog all; 同步信息
重新rman備份
5.完成