由於archivelog的相關信息是記錄在controlfile中的,當物理刪除後不會改變controlfile的設置。而且在查詢相關的動態視圖(例如v$archived_log)時,該部分日誌仍然標註爲存在,也就是說rest
Oracle並不認爲這些日誌被刪除了。日誌
這種錯誤信息會致使在rman在備份archivelog終止,出現不能完成備份,而且阻塞後續的備份操做。orm
1、直接使用RMAN刪除archivelog
RMAN>crosscheck archivelog all;
RMAN>delete noprompt archivelog until time 'sysdate-3';
刪除三天前的歸檔日誌,不通過提示、直接刪除。get
或者
RMAN>delete archivelog all completed before 'sysdate3';input
2、使用RMAN備份archivelog以後,進行刪除動做。
RMAN>backup format '/backup/archlog_%T_%s_%U' archivelog all delete input;io
或
RMAN>backup format '/backup/archlog_%T_%s_%U' archivelog all delete all input;
這個表示備份全部的archivelog以後,刪除全部路徑下archivelog 由於有些庫的archivelog 是多份的。form
或者在備份database的語句中加上plus archivelog;
RMAN>backup database plus archivelog;sed
3、若是是在OS層手工進行了archivelog或者文件丟失。
先進行archivelog 交叉檢查
RMAN>crosscheck archivelog all;
RMAN>delete noprompt expired archivelog all;date
4、查出某個時間段所涉及到的archivelog;
RMAN>list backup of archivelog time between "to_date('2012-04-12 12:00:00','yyyy-mm-dd,hh24:mi:ss')" and "to_date('2012-04-25 12:00:00','yyyy-mm-dd hh24:mi:ss')";file
根據以上查出的類容,咱們就能夠經過備份還原出archivelog
RMAN>restore archivelog from logseq 11111 until logseq 11150;
5、與archivelog相關的命令
RMAN>crosscheck archivelog all; -----交叉檢查歸檔日誌信息。
RMAN>list expired archivelog all; -----列出全部過時的歸檔日誌信息。
RMAN>list archivelog all; -----查看當前歸檔日誌列表信息。
RMAN>list archivelog from time='sysdate-2'; -----查看至今兩天的日誌信息。
RMAN>backup archivelog all format '/u03/rman/arch_log_%d_%T_%s_%p'; -------備全部歸檔。
RMAN>backup as compressed backupset archivelog all format '/u03/rman/arch_log_%d_%T_%s_%p'; -------採用壓縮,備全部歸檔。
RMAN>backup archivelog from time 'sysdate-3'; -------備份3天以來的歸檔日誌。
RMAN>backup archivelog from sequence 5; -------從日誌序列是5的開始備份。
RMAN>backup archivelog from sequence 5 until sequence 10; -------備份日誌序列從5到10的日誌。
RMAN>backup archivelog all delete all input; --------備份完全部的日誌後,刪除全部歸檔目錄的日誌。
RMAN>delete noprompt expired archivelog all; --------刪除過時的archivelog
RMAN>restore archivelog all; --------還原全部的archivelog日誌
RMAN>restore archivelog all preview; --------不真實還原,只是預覽操做
RMAN>delete archivelog all; --------刪除全部的archivelog日誌
RMAN>restore archivelog from logseq 11111 until logseq 11150; -------還原某個段的archivelog日誌
RMAN>restore archivelog from sequence 36 until sequence 50;
RMAN>restore archivelog low sequence 36 high sequence 50;
RMAN>restore archivelog time between "to_date('2012-04-22 10:00:00','yyyy-mm-dd hh24:mi:ss')" and "to_date('2012-04-26 16:20:00','yyyy-mm-dd hh24:mi:ss')" preview;
RMAN>restore archivelog time between "to_date('2012-04-22 10:00:00','yyyy-mm-dd hh24:mi:ss')" and "to_date('2012-04-26 16:20:00','yyyy-mm-dd hh24:mi:ss')" ;
指定archivelog的恢復目的地,如你想把archivelog恢復到一個臨時目錄時有用RMAN>run {set archivelog destination to '/home/temp';}