| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #!/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 1 ]
- then
- if is_sid_valid
- then
- # is_restore_point
- # fred=$?
- # echo "is_restore_point returned .$fred."
- 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-8';" >> ${RMAN_CMD_FILE}
- echo "}" >> ${RMAN_CMD_FILE}
- echo "exit" >> ${RMAN_CMD_FILE}
- echo ${ORACLE_HOME}/bin/rman cmdfile=${RMAN_CMD_FILE} log=${SCRIPT_DIR}/logs/${ORACLE_SID}_RMAN_cleardown.log
- else
- echo -e "\t\nIllegal cleardown when Restore Points exist!\n\n" > ${RMAN_CMD_FILE}
- fi
- else
- echo -e "\nERROR: Parameter 1: Database '${ORACLE_SID}' does not exist.\n"
- fi
- else
- echo -e "\nUsage: RMAN_DB_Cleardown.ksh <ORACLE_SID>\n"
- fi
- # --------- End of File ------------------------------------------------------------------------------
|