Oracle 删除归档日志
背景:Oracle突然报错‘ORA-00257’无法登录,原因为Oracle归档日志爆满,通过以下操作可进行解决;
一、以ORACLE用户身份登录到数据库服务器主机或通过网络连接
sql>conn username/password;
二、查看是否开启归档日志
查看是否开启归档:
SQL> archive log list;
三、删除数据库归档文件
执行下面命令删除7天以前的归档日志:
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
四、执行Rman逻辑上删除过期日志
Rman备份后如果存在有过期备份没有被删除时,需要手工对过期备份删除,做法如下:
Rman target / catalog rman/rman@rman
report obsolete; ---显示过期备份
delete obsolete; ---删除过期备份
五、附上自动清理归档的脚本:
#!/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;