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