ORA-19625 ORA-27037

在進行rman備份的時候報ORA-19625 ORA-27037 這個錯誤,原因就是在os上直接刪除了歸檔日誌,而控制文件中還是有這些歸檔的信息
此時需要同步二者的狀態

crosscheck archivelog all

用RMAN的備份中(Veritas等備份軟件由於歸檔日誌的異常導致歸檔日誌備份失敗)是經常碰到的,解決方法也是非常解單,就是執行2條RMAN的命令:
1. 進入rman
2. connect target /
3. crosscheck archivelog all;
4. delete expired archivelog all;
===========================
這2條命令做什麼事情,原理是什麼。下面說明一下:
在controlfile中記錄着每一個archivelog的相關信息,當我們在OS下把這些物理文件delete掉或異常變動後,在controlfile中仍然記錄着這些archivelog的信息,當我們手工清除archive目錄下的文件後,這些記錄並沒有被我們從controlfile中清除掉,也就是oracle並不知道這些文件已經不存在了!這時候我們要做手工的清除。
crosscheck archivelog all;的作用就是檢查控制文件和實際物理文件的差別。
delete expired archivelog all;就是同步控制文件的信息和實際物理文件的信息。
如果單獨執行crosscheck而沒有執行delete那麼備份還是失敗的,原因是那些控制文件的信息和實際的信息還是不同。

crosscheck backupset

crosscheck backupset 是檢查備份集和實際的文件
1 備份集有兩種狀態A(Available,RMAN認爲該項存在於備份介質上)X(Expired,備份存在於控制文件或恢復目錄中,但
是並沒有物理存在於備份介質上)
2 crosscheck 的目的是檢查RMAN 的目錄以及物理文件,如果物理文件不存在於介質上,將標記爲Expired。如果物理文件
存在,將維持Available。如果原先標記爲Expired的備份集再次存在於備份介質上(如恢復了損壞的磁盤驅動器後),
crosscheck將把狀態重新從Expired標記回Available。
3 crosscheck 輸出分兩部分。第一部分列出確定存在於備份介質上的所有備份集片,第二部分列出不存在於備份介質上的
備份集片,並將其標記爲Expired。當設置備份保存策略後,一個備份過期,crosscheck之後標記爲丟棄的備份狀態依舊爲
availabel,要刪除丟棄備份delete obsolete

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