当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