Oracle主从数据库清理归档日志
2021-12-22 本文已影响0人
沁园Yann
一、手动清理归档日志
1、查看磁盘空间:
df -h
2、查看归档日志空间使用情况
select * from v$flash_recovery_area_usage; //返回使用百分百
select * from v$recovery_file_dest; //返回实际使用情况
3、切换Oracle用户:
su - oracle
4、免密码进入 rman:
rman target sys/pass
5、删除7天前的归档日志:
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
6、删除截止到前一天的所有archivelog:
delete archivelog until time 'sysdate-1' ;
7、查看在线日志状态:
select group#,sequence#,status,archived from v$log;
8、切换日志:
alter system switch logfile;
二、定时清理归档日志
1、
切换至oracle用户
su - oracle
2、进入Oracle安装目录下的app文件夹
cd /usr/local/oracle/app
3、新建目录并创建脚本文件(一定要在oracle用户下操作)
mkdir arcclear
cd arcclear
vi arcclear.sh # 会自动创建新文件
arcclear.sh 脚本内容如下
source ~/.bash_profile
rman target / <<EOF
delete noprompt archivelog until time "sysdate-6";
exit;
EOF
4、给文件分配权限(一定要在oracle用户下操作)
chmod +x arcclear.sh
5、给Oracle 用户创建计划任务(一定要在oracle用户下操作)
crontab -e
新增内容
30 1 1 * * sh /usr/local/oracle/app/arcclear/arcclear.sh >> /usr/local/oracle/app/arcclear/arcclear.log # 每月1号1点30份执行
crontab 计划任务时间设置说明
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
6、重启 crontab 服务
service crond restart