Linux下清理归档日志的定时任务(相关问题ORA-00257)

数据库报错:ORA-00257: archiver error. Connect internal only, until freed
原因是部署OGG之后数据库开启了归档日志,且归档日志空间占用率达到100%
避免该问题需要从两方面下手:
1、保证足够大的归档空间,建议计算方法:日平均归档大小的N*2倍,有条件的话多多益善。
N是归档要保留天数,建议为7;*2是为了保证发生临时大批量数据操作时归档不会满。
2、定时清理归档日志(物理删除日志不能解决问题,必须逻辑删除):
#1、创建清理归档日志的脚本

#su - oracle
#vim /home/oracle/delete_archive_log.sh
#添加以下内容
#!/bin/sh
echo "-------------------------------------------------"
echo delete_archive_log-`date +%Y%m%d%H%M`
echo "-------------------------------------------------"
#set ev
SHELL=/bin/bash
RMAN_HOME=/home/oracle/app/oracle/product/11.2.0/db_1/bin
LOGNAME=oracle
source /home/oracle/.bash_profile
#delete shell
$RMAN_HOME/rman << EOF
connect target sys/sys_passwd
crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt archivelog all completed before 'sysdate-7';
exit;
EOF

#2、脚本添加可执行权限
chmod +x delete_archive_log.sh

#3、新增定时任务
crontab -e
#添加以下内容
0 1 * * * /home/oracle/delete_archive_log.sh >> /home/oracle/delete_archive.log

备注:
1、查看归档日志空间占用率:select * from v$flash_recovery_area_usage;
2、delete noprompt expired archivelog all;
–清除过期的归档日志
3、delete noprompt archivelog all completed before ‘sysdate-7’;
–删除7天以前的归档日志
–noprompt,rman参数,删除时免确认,否则需输入yes,定时任务的脚本中一定要加,否则脚本不会执行删除操作
4、 0 1 * * * ,linux定时任务的执行时间设置,依次代表分时天月周。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值