#!/bin/ksh # ==================================================================================================== # Title: RMAN_DB_Cleardown.ksh # Author: Richard Wilson # Date: 28.12.2017 # File Name: RMAN_DB_Cleardown_v1.ksh # Description: Uses RMAN to cleardown archived redo logs and other backups. # Usage: Usage: RMAN_DB_Cleardown.ksh # # Warning: THINK! # # History: # 28.12.2017 RW First version. # # ---------------------------------------------------------------------------------------------------- function is_sid_valid { if [ `ps -ef | grep -v grep | grep "ora_pmon_${ORACLE_SID}$" | wc -l 2> /dev/null` -eq 0 ] then return 1 else return 0 fi } function is_no_restore_point { return `${ORACLE_HOME}/bin/sqlplus -S / "as sysdba" <<-EOF set pagesize 0 feedback off verify off heading off termout off echo off select count(1) FROM V\\$RESTORE_POINT; EOF` } # ---------------------------------------------------------------------------------------------------- export ORACLE_SID=`echo ${1} | tr "[a-z]" "[A-Z]"` export SCRIPT_DIR="/home/oracle/Scripts/RMAN" export RMAN_CMD_FILE=${SCRIPT_DIR}/${ORACLE_SID}_rman_cleardown_cmds.rman test `uname -n` = "uks-odbnrgtst-02" && export ORACLE_HOME="/u01/app/oracle/product/11.2.0/dbhome_1" || export ORACLE_HOME="/u01/app/oracle/product/11.2.0/db_1" if [ ${#} -eq 2 ] then if is_sid_valid then if [[ "${2}" = +([0-9]) ]] then if is_no_restore_point then echo "connect target / " > ${RMAN_CMD_FILE} echo "run {" >> ${RMAN_CMD_FILE} echo "sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';" >> ${RMAN_CMD_FILE} echo "CROSSCHECK backup of database;" >> ${RMAN_CMD_FILE} echo "CROSSCHECK backup of controlfile;" >> ${RMAN_CMD_FILE} echo "CROSSCHECK backup of spfile;" >> ${RMAN_CMD_FILE} echo "CROSSCHECK backup of archivelog all;" >> ${RMAN_CMD_FILE} echo "CROSSCHECK copy of archivelog all;" >> ${RMAN_CMD_FILE} echo "backup archivelog all not backed up 1 times;" >> ${RMAN_CMD_FILE} echo "backup current controlfile;" >> ${RMAN_CMD_FILE} echo "delete noprompt archivelog all backed up 1 times to disk completed before 'sysdate-${2}';" >> ${RMAN_CMD_FILE} echo "}" >> ${RMAN_CMD_FILE} echo "exit" >> ${RMAN_CMD_FILE} ${ORACLE_HOME}/bin/rman cmdfile=${RMAN_CMD_FILE} log=${SCRIPT_DIR}/logs/${ORACLE_SID}_RMAN_cleardown.log else echo -e "\nINFO: Illegal cleardown when Restore Points exist!\n\n" > ${RMAN_CMD_FILE} fi else echo -e "\nERROR: Non-numeric entered.\n" fi else echo -e "\nERROR: Parameter 1: Database '${ORACLE_SID}' does not exist.\n" fi else echo -e "\nUsage: RMAN_DB_Cleardown.ksh \n" fi # --------- End of File ------------------------------------------------------------------------------