一 查看现在用了多少归档日志空间(按百分比):
select * from v$flash_recovery_area_usage;
如果超过90%随时有宕机的危险
二 通过RMAN删除归档日志,也可以手动找到归档日志存放位置,直接删除,但不推荐
rman target sys/pass
crosscheck archivelog all;
## 删除方式
delete expired archivelog all;(全部删除)
delete archivelog until time 'sysdate - 1';(保留当天删除,删除之前所有,这个天数是可变动的)
三 linux自动删除归档脚本
- vim一个shell脚本:del_log_day_once.sh (脚本名自定义)
#!/bin/bash
source ~/.bash_profile
#记录归档删除的日志
exec>>/home/del_log/log/bak_log/del_arch`date +%F-%H`.log
$ORACLE_HOME/bin/rman target / <<EOF
crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt archivelog until time 'sysdate-1';
exit;
EOF
- 用linux crontab 定时开启运行
# crontab -e 输入以下内容并:wq保存
0 0 * * * /home/del_log/log/del_log_day_once.sh 2>&1 >/dev/null &