最近在摆弄DG,由于磁盘资源紧缺,需要一个归档日志处理的策略网上找了几个脚本,发现写的那么麻烦毛了,于是简单写了一个,实际路径等可以自己在修改主库备库都可以用,自己再做crontab就好,建议错开时间进行需要注意,提前查询DEST_ID,下面这个是主库删除的脚本(备库只需更改dest_id即可),我的主库v$archived_log里,主库的归档dest_id=1,备库是dest_id=2
- #!/bin/bash
-
- ############ easy script by lcrash @ 2011-1-25############
- # for delete DG archive log #
- # you should modify USER_HOME && make sure del_dir exists#
- # and you can change your keep date by modify SQL below #
- ##########################################################
-
- USER_HOME=/opt/Oracle
- DEL_DIR=$USER_HOME/del_arch
-
- source $USER_HOME/.bash_profile
- $ORACLE_HOME/bin/sqlplus -S "/as sysdba" <<EOF
- set heading off
- set feedback off
- spool /opt/oracle/del_arch/del_arch.list
- select "rm -rf "||name from v$archived_log
- where DEST_ID=1 and SEQUENCE#<(select max(SEQUENCE#) from v$archived_log where applied="YES") and COMPLETION_TIME<=sysdate-0;
- spool off
- exit
- EOF
-
- cd $DEL_DIR
- sed -n "/dbf/p" del_arch.list>del_arch_do.sh
- chmod +x del_arch_do.sh
- source del_arch_do.sh
-
- rm del_arch.list
- mv {,`date +%Y-%m-%d-%H`}del_arch_do.sh
-
-
- rman target / <<EOF
- crosscheck archivelog all;
- delete obsolete;
- delete noprompt expired archivelog all;
- EOF
by the way:1、我开始使用uniread sqlplus,发现动不了,浪费时间,后面修改为$ORACLE_HOME/bin/sqlplus防止其他别名取代出问题2、脚本中的SQL语句一句话太长居然给我认成两行,非常恼火于是将where语句另换行
╮(╯▽╰)╭MongoDB分片集群(Sharding whith Replica Set)使用LVS-NAT+ipvsadm实现RHEL 5.7上的服务集群相关资讯 Oracle数据库基础教程
- 在Oracle数据库中插入含有&符号的 (03/06/2013 09:20:14)
- Oracle 执行计划更改导致数据加工 (02/13/2013 14:45:04)
- 判断Oracle Sequence是否存在 (02/13/2013 14:32:26)
| - Oracle数据库中无法对数据表进行 (02/26/2013 14:24:58)
- Oracle 在同一台主机上建立用户管 (02/13/2013 14:40:58)
- Oracle em 无法启动,报not found错 (02/13/2013 14:29:48)
|
本文评论 查看全部评论 (0)