zoukankan      html  css  js  c++  java
  • del_archivelog

    #!/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
  • 相关阅读:
    【剑指Offer-循环和递归】面试题10.4:矩形覆盖
    【剑指Offer-循环和递归】面试题10.3:变态跳台阶
    【剑指Offer-面试案例】面试题66:把字符串转为整数
    【剑指Offer-发散思维能力】面试题66:构建乘积数组
    【剑指Offer-发散思维能力】面试题65:不用加减乘除做加法
    【剑指Offer-发散思维能力】面试题64:求1+2+...+n
    【剑指Offer-抽象建模能力】面试题62:圆圈中最后剩下的数字
    【剑指Offer-抽象建模能力】面试题61:扑克牌中的顺子
    【剑指Offer-知识迁移能力】面试题59:滑动窗口的最大值
    【剑指Offer-知识迁移能力】面试题58.2:左旋转字符串
  • 原文地址:https://www.cnblogs.com/liang545621/p/9410577.html
Copyright © 2011-2022 走看看