Oracle主从数据库清理归档日志

一、手动清理归档日志

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 / <

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

你可能感兴趣的:(Oracle主从数据库清理归档日志)