日期:2014-05-16  浏览次数:20428 次

oracle自动清理archivelog文件
  1. 登陆到服务器上创建rman自动删除两天前的归档日志脚本
[oracle@108?~]$?cat?>>del_ora_log.rman?<<EOF
?crosscheck?archivelog?all;
delete?noprompt?expired?archivelog?all;
delete?noprompt?force?archivelog?until?time?'sysdate?-2';?? -------删除两天前的archivelog
exit;
EOF
? 2.??手动执行清除日志
[oracle@108?~]$?rman?target/?cmdfile=/home/oracle/del_ora_log.rman?msglog=/home/oracle/del_ora_log.rman.log
?
??3. 将脚本加入系统定时任务
注意:任务执行的时候环境变量不能应用上,导致rman命令不能执行成功,可以将环境变量和命令放到一个脚本中,这样执行就没有问题。
PATH=$PATH:$HOME/bin

export PATH

export ORACLE_BASE=/home/oracle/app

export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1

export ORACLE_SID=ORCL

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/del_ora_log.rman msglog=/home/oracle/del_ora_log.rman.log >>/home/oracle/rman.log 2>&1
?
[oracle@108?~]$?crontab?-e???
13 * * * * /home/oracle/del_ora_log.sh >>del_ora_log.log 2>&1
?
?? 4.? 某些表插入数据频繁但数据又不太重要可以去掉log。
alter table? <tablename> ?NOLOGGING;
?