Oracle开启归档日志并定时清除归档日志的方法

环境:Centos7.9  oracle11g

0x01归档日志开启

#一致性关库
sqlplus / as sysdba

shutdown immediate;

0x02 启动数据库至mount阶段

startup mount;

0x03  查看确认当前归档状态

archive log list;

0x03 查询归档路径,修改归档路径

show parameter recover;
alter system set log_archive_dest_1='location=/u01/app/oracle/arc_direc' scope=both
alter system set log_archive_format='arch_prod_t%_%s_%r.dbf' scope=spfile;

0x04 更改数据库模式为归档模式并打开数据库

alter database archivelog;
alter database open;
alter system switch logfile; #实验归档是否生效,进入归档目录看是否生成新的归档文件

0x05 定时清理oracle归档日志

编写rman的cmdfile文件

#创建自动清理脚本文件所在目录,cmdfile文件及清理脚本
mkdir /home/oracle/delarc
cd /home/oracle/delarc
vi del_ora_log.rman
crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt archivelog until time 'sysdate-30'; #清理周期30天
exit;

编写自动清理脚本并生成日志

#!/bin/bash
# author: xxxx
# description: auto delete archivelog with special time
#注意修改为自己的路径和sid
export ORACLE_HOME=/home/data/oracle/product/11.2.0/db_1
export ORACLE_SID=proddb
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib 
rman target/ cmdfile=/home/oracle/delarc/del_ora_log.rman msglog=/home/oracle/delarc/del_ora_log.rman.log >>/home/oracle/delarc/rman.log 2>&1
#添加执行权限
chmod +x /路径/脚本名

0x06 添加定时任务

crontab -e
0 1 * * * /脚本执行路径/脚本.sh
阅读剩余
THE END