RMAN Crosscheck 和 Delete 命令的2個例項

dawn009發表於2014-03-28

例項一
假如我們在oracle資料庫在遷移當中不小心丟失了一個歸檔檔案 此時RMAN 會因為缺少歸檔日誌而不能完成備份,而且Veritas等備份軟體由於歸檔日誌的異常導致歸檔日誌備份失敗是經常碰到的  解決方法很簡單,執行下面2條命令即可: 
RMAN>crosscheck archivelog all;
RMAN>delete expired archivelog all;

 


對這2條命令做一下說明:


在controlfile中記錄著每一個archivelog的相關資訊,當我們在OS下把這些物理檔案delete掉或異常變動後,在controlfile中仍然記錄著這些archivelog的資訊,當我們手工清除archive目錄下的檔案後,這些記錄並沒有被我們從controlfile中清除掉,也就是oracle並不知道這些檔案已經不存在了!這時候我們要做手工的清除。

 

crosscheck archivelog all 的作用就是檢查控制檔案和實際物理檔案的差別。
delete expired archivelog all;  就是同步控制檔案的資訊和實際物理檔案的資訊。

 

如果單獨執行crosscheck而沒有執行delete那麼備份還是失敗的,原因是那些控制檔案的資訊和實際的資訊還是不同。

 

 

 

例項二

 

這種情況可以透過CROSSCHECK BACKUPPIECE的方式對問題備份進行單獨的檢查:
    RMAN> crosscheck backuppiece ’/u01/backup/orcl_iljnvkad_1_1’;
    RMAN> delete obsolete;

進行檢查之後的備份就可以順利的刪除了。
   RMAN> crosscheck backupset 1612;
   RMAN> delete backupset 1612;

  使用CROSSCHECK BACKUPSET的方式也可以,但是比較單獨指定被刪除的備份,而透過CROSSCHECK BACKUP是無法找到的。其他手工刪除的備份,則沒有這個問題。

 

RMAN>crosscheck backup; 

RMAN>delete expired backup;

 

 

說明一下:

crosscheck backupset命令是檢查備份集和實際的檔案

1備份集有兩種狀態A(Available,RMAN認為該項存在於備份介質上) X(Expired,備份存在於控制檔案或恢復目錄中,但是並沒有物理存在於備份介質上)
2) crosscheck 的目的是檢查RMAN 的目錄以及物理檔案,如果物理檔案不存在於介質上,將標記為Expired。如果物理檔案存在,將維持Available。如果原先標記為Expired的備份集再次存在於備份介質上(如恢復了損壞的磁碟驅動器後),crosscheck將把狀態重新從Expired標記回Available
3 crosscheck 輸出分兩部分。第一部分列出確定存在於備份介質上的所有備份集片,第二部分列出不存在於備份介質上的備份集片,並將其標記為Expired。當設定備份儲存策略後,一個備份過期,crosscheck之後標記為丟棄的備份狀態依舊為availabel。備份策略不會刪除過期的備份集,可以使用report obsolete命令檢視過期的備份,delete obsolete 命令刪除過期的備份。
--------------&gt>obsolete[過期的]與expired[失效的]對比:

 ----------------------------------------------------------------------------
轉載於---&gt>http://blog.csdn.net/tianlesoftware/article/details/5741577

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29119536/viewspace-1131436/,如需轉載,請註明出處,否則將追究法律責任。

相關文章