RAC+存储模式下的Oracle数据库归档日志定时清理

需求:数据库服务器为RAC的模式,并且挂着存储,数据库文件都在存储上放着,由于日常业务操作表数据较频繁,归档日志长的较快,需要用计划任务定时处理

1.登录到oracle用户,创建目录结构
su - oracle
mkdir delarch
cd delarch
mkdir logs
2.创建sh脚本
touch del_arch.sh
3.编辑sh脚本
vi del_arch.sh
4.sh脚本中加入下面内容
#!/bin/sh 
export BACK_DATE=`date +%Y%m%d` 
export BACKUP_PATH=/home/oracle/delarch/logs 
echo `mkdir -p {BACKUP_PATH}` 
rman msglog=BACKUP_PATH/arch_0_BACK_DATE.log << EOF 
connect target /; 
delete noprompt archivelog all completed before 'SYSDATE-7'; 
exit 
EOF
5.赋予可执行权限
chmod +x del_arch.sh
6.手工执行一遍
sh del_arch.sh
7.检查是否正常删除
select name,total_mb,free_mb from vasm_disk;
8.创建脚本的执行计划
su - root
crontab -e
30 3 * * 6 su - oracle -c '/home/oracle/delarch/del_arch.sh' 引号内为脚本位置。(代表每周六3:30执行脚本,删除日志)

30 5 * * * su - oracle -c '/home/oracle/delarch/del_arch.sh'




以下为rman定时删除归档日志方法:
将附件中del_arch.sh文件上传至数据库服务器,oracle用户的可读取目录,例如/home/oracle。赋予可执行权限(chmod +x del_arch.sh)
在root用户下,crontab -e
03 00 * * 6 su - oracle -c '/home/oracle/delarch/del_arch.sh' 引号内为脚本位置。(代表每周六3:00执行脚本,删除日志)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注