#!/usr/bin/env bash                         
# INTRO : The script for delete physical standby applied archivelog.
#         Please set ur environment variables before use it.
#         Please execute the script on physical standby site.
#
# USAGE : ./del_archivelog.sh                                                            
#                                                                     
# TEST  : This script has been successfully tested on these platforms:                                                                     
#         Linux 
#         Physical standby
#         Oracle Database 10gR2,11gR2,Include RAC                            
#                                                       
# NOTE  : Please test this script in ur development environment 
#         before attempting to run it in production.                                     
# =================================================================================
 
#----------------------------------------------------------------------------------
###setup environment variables
export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db_1
export ORACLE_SID=standby
export PATH=$ORACLE_HOME/bin:$PATH
#export ARCHIVE_DIR=+DATA/standby/archivelog
export LOG_FILE=$HOME/scripts/logs/del_archive.log
#----------------------------------------------------------------------------------
 
###determine user 
if [ `whoami` != 'oracle' ];then
echo "Warning: Please use oracle execute.">>$LOG_FILE
exit 99
fi
 
###define archivelog sequence will be deleted
sqlplus -s / as sysdba << EOF > tmp.log
set lines 100 feedback off echo off heading off;
select thread#,max(sequence#) from v\$archived_log where applied='YES' group by thread# order by thread#;
EOF
 
MAXLINE=`cat tmp.log|wc -l`
 
for (( i=1;i<$MAXLINE;i++ )); do
 
i=$(( i + 1 ))
THREAD=`sed -n "$i,$i"p tmp.log|awk -F' ' '{print $1}'`
MAXSEQ=`sed -n "$i,$i"p tmp.log|awk -F' ' '{print $2}'`
 
###Retains the most recent five Archive
MAXSEQ=$(( $MAXSEQ - 5 ))
 
###Delete physical standby applied archivelog
echo "****************************************************************************" >> $LOG_FILE
echo ">>> Begin deleting applied archivelogs : `date` <<<">>$LOG_FILE
 
i=$(( i - 1 ))
 
rman target / <<EOF >> $LOG_FILE
##catalog start with '$ARCHIVE_DIR' noprompt;
delete noprompt archivelog until sequence $MAXSEQ thread $THREAD;
EOF
 
echo >> $LOG_FILE
echo ">>> End delete applied archivelogs : `date` <<<">>$LOG_FILE
 
echo "****************************************************************************" >> $LOG_FILE
echo >> $LOG_FILE
 
done
 
rm -f tmp.log

del_archivelog的更多相关文章

随机推荐

  1. zzuoj--10399--Turing equation(模拟)

    Turing equation Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 152  Solved: 85 [Submit][Status][Web ...

  2. 简易Servlet计算器1.0

    编写一个简易的Servlet计算器,暂时仅能实现 + - * / % 五种运算 jsp界面: <%@ page language="java" contentType=&qu ...

  3. (转载)你真的理解Android AIDL中的in,out,inout么?

    前言 这其实是一个很小的知识点,大部分人在使用AIDL的过程中也基本没有因为这个出现过错误,正因为它小,所以在大部分的网上关于AIDL的文章中,它都被忽视了——或者并没有,但所占篇幅甚小,且基本上都是 ...

  4. VP相关

    1.485模块电平,如果是集成的IC模块,则发送低电平,接收高电平: 2.阀门程序移植至PLC注意事项: 1) 阀门程序中的变量厘清,移植过程中阀门程序中的模块有些用到了,有些没用到,所以这是变量也很 ...

  5. SpringCloud学习笔记(18)----Spring Cloud Netflix之服务网关Zuul原理

    1. Zuul的工作机制 Zuul提供了一个框架,可以对过滤器进行动态的加载,编译,运行.过滤器之间没有直接的相互通信,他们是通过一个RequestContext的静态类来进行数据传递的.Requet ...

  6. ZBrush中独特功能Projection Master

    Projection Master可以理解为投影大师,它是ZBrush®的一个独特功能,该功能可以让用户使用所有的2D和2.5D笔刷工具在3D模型上进行雕刻.纹理绘制和其他的操作. 简单来说,Proj ...

  7. vue下面的scoped

    scope这个属性限制了下面的css代码的作用域只在当前组件中生效,此时直接去更改elementui的属性,浏览器搜索不到这个元素的最外层的父级,于是这个东西不会生效

  8. 使用VUE开发微信小程序

    使用 mpvue 开发小程序,你将在小程序技术体系的基础上获取到这样一些能力: 彻底的组件化开发能力:提高代码复用性完整的 Vue.js 开发体验方便的 Vuex 数据管理方案:方便构建复杂应用快捷的 ...

  9. HDU-3065 病毒侵袭持续中 字符串问题 AC自动机

    题目链接:https://cn.vjudge.net/problem/HDU-3065 题意 跟上一道题是几乎一模一样,这次是统计关键词的出现次数 一个相当坑的地方,注意多组样例 思路 套模版 改in ...

  10. HDU-2087 剪花布条 字符串问题 KMP算法 查匹配子串

    题目链接:https://cn.vjudge.net/problem/HDU-2087 题意 中文题咯 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条, ...