ORACLE清理歸檔日誌

當oracle歸檔日誌滿了後,將沒法正常登入oracle,須要擴充空間或刪除一部分歸檔日誌。

一.首先刪除歸檔日誌物理文件,歸檔日誌通常都是位於archive目錄下。建議操做前先對數據庫進行備份,刪除時至少保留最近幾天的日誌用於數據庫恢復。

二.刪除歸檔日誌的物理文件後便可正常登入oracle,可是尚未吧歸檔日誌刪除乾淨,oracle的control file裏面仍然記錄着這些archivelog的信息。

利用rman進行刪除操做

RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

附上自動清理歸檔的腳本:

#!/bin/bash     
      
      
    if [ -f ~/.bash_profile ]; then   
    . ~/.bash_profile    
    fi    
         
         
    ORACLE_SID=$1;                 
    export  ORACLE_SID=$ORACLE_SID  
    $ORACLE_HOME/bin/rman log=/users/robin/log/rman.log <<EOF       
    connect target /    
    run{    
    crosscheck archivelog all;    
    delete noprompt expired archivelog all;    
    delete noprompt archivelog all completed before 'sysdate - 1';    
    }    
    exit;    
    EOF