oracle归档日志隔一段时间就会满了,需要手动清理。
使用linux定时任务 crontab +rman 定时清理oracle 归档日志
编写脚本:
vim test.sh
#!/bin/bash
rman target "数据库用户"/"数据库密码" <<EOF
delete force noprompt archivelog all completed before 'sysdate-3';
exit;
EOF
设置定时任务:
crontab -e
00 1 * * * sh /u01/app/test.sh >> /u01/app/test.log
:wq保存退出
遇到问题:
1、定时任务不执行,log没有内容
解决:手动执行./test.sh 查看效果
2、bash: ./test.sh: Permission denied
没有执行权限,chmod a+x test.sh
3、出现类似于bash: ./test.sh: /usr/bin: bad interpreter: Permission denied这种错误
解决: 检查sh文件头部文本,#!/bin/bash。并检查bash目录位置
附:查询归档日志空间情况:
su oracle 切换用户
sqlplus /nolog 登录oracle
SQL> conn / as sysdba 以dba身份连接
SQL> SELECT * FROM V$FLASH_RECOVERY_AREA_USAGE; 查看归档目录使用情况。