Skip to content

Instantly share code, notes, and snippets.

@iacosta
Created July 30, 2012 13:46
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iacosta/3207025 to your computer and use it in GitHub Desktop.
Save iacosta/3207025 to your computer and use it in GitHub Desktop.
rman.sh
#!/bin/bash
# Script de copias RMAN Oracle Database
# Autor by IVAN ACOSTA
export PATH=$PATH:/usr/local/bin:/bin:/usr/bin
echo "***********************************************"
echo "*Backup Database (UNIMINUTO) Inicializando *"
echo "***********************************************"
echo "Fecha:`date "+%Y-%m-%d %H:%M:%S"` ............."
echo "***********************************************"
echo "***********************************************"
echo "* Verifica la disponibilidad de los SID's *"
echo "***********************************************"
# Check to see if a Database name was received
if [[ $# -eq 0 ]]
then
echo "Database name argument is missing"
exit 1
fi
export ORA_SID_LOWER=`/bin/echo $1 | /usr/bin/tr "[:upper:]" "[:lower:]"`
export ORA_SID_UPPER=`/bin/echo $1 | /usr/bin/tr "[:lower:]" "[:upper:]" `
# varaibles for RAC
export ORA_DB=$ORA_SID_UPPER
#export ORA_INSTANCE=$ORA_SID_UPPER"1"
# variable for non-RAC
export ORA_INSTANCE=$ORA_SID_UPPER
export MP="/u04"
# Verify that the database is available:
DBVERIFY=`ps -ef | grep ora_pmon_$ORA_SID_UPPER | grep -v 'grep' | wc -l`
if [ $DBVERIFY = "0" ]; then
echo "Base de datos con nombre $ORA_SID_UPPER no esta arriba"
exit 1
else
echo "Base de datos con nombre $ORA_SID_UPPER se encuentra arriba"
fi
ZZ=`/bin/date +%w`
ZZ=`/bin/date +%w`
if [ $ZZ = "0" ]; then
# Sunday
INCREMENTAL_LVL="0"
elif [ $ZZ = "1" ]; then
# Monday
INCREMENTAL_LVL="1"
elif [ $ZZ = "2" ]; then
# Tuesday
INCREMENTAL_LVL="1"
elif [ $ZZ = "3" ]; then
# Wednesday
INCREMENTAL_LVL="0"
elif [ $ZZ = "4" ]; then
# Thursday
INCREMENTAL_LVL="1"
elif [ $ZZ = "5" ]; then
# Friday
INCREMENTAL_LVL="1"
elif [ $ZZ = "6" ]; then
# Saturday
INCREMENTAL_LVL="1"
else
# Unknown day
INCREMENTAL_LVL="0"
fi
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
ORAENV_ASK=NO; export ORAENV_ASK
ORACLE_SID=$ORA_INSTANCE; export ORACLE_SID
echo $ORACLE_SID
source /usr/local/bin/oraenv
export BACKUP_HOME=/home/oracle/rman_backup_scripts
export RMAN_COMMAND_FILE=$BACKUP_HOME/command_file.rman
# POPULATING THE COMMAND FILE:
echo "SQL 'alter system checkpoint';" > $RMAN_COMMAND_FILE
echo "SQL 'truncate table sys.fga_log$';" > $RMAN_COMMAND_FILE
echo "DELETE ARCHIVELOG ALL COMPLETED BEFORE 'sysdate -1';" >> $RMAN_COMMAND_FILE
echo "DELETE NOPROMPT OBSOLETE;" >> $RMAN_COMMAND_FILE
echo "CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;" >> $RMAN_COMMAND_FILE
echo "CONFIGURE CONTROLFILE AUTOBACKUP ON;" >> $RMAN_COMMAND_FILE
echo "CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;" >> $RMAN_COMMAND_FILE
echo "CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;" >> $RMAN_COMMAND_FILE
echo "CONFIGURE MAXSETSIZE TO 50G;" >> $RMAN_COMMAND_FILE
echo "CONFIGURE DEFAULT DEVICE TYPE TO sbt;">>$RMAN_COMMAND_FILE
echo "CONFIGURE CHANNEL DEVICE TYPE sbt PARMS 'ENV=(TDPO_OPTFILE=/opt/tivoli/tsm/client/oracle/bin64/tdpo.opt)';">>$RMAN_COMMAND_FILE
echo "BACKUP AS COMPRESSED BACKUPSET DATABASE;" >> $RMAN_COMMAND_FILE
echo "BACKUP as compressed backupset ARCHIVELOG ALL NOT BACKED UP DELETE ALL INPUT;" >> $RMAN_COMMAND_FILE
# echo "DELETE NOPROMPT ARCHIVELOG ALL BACKED UP 1 TIMES TO DEVICE TYPE DISK;" >> $RMAN_COMMAND_FILE
# echo "backup backupset completed after 'sysdate-3/24' format '$MP/orabackup/$ORA_SID_UPPER/rman/%U';" >> $RMAN_COMMAND_FILE
echo "delete noprompt obsolete device type disk;" >> $RMAN_COMMAND_FILE
# echo "backup as compressed backupset current controlfile;" >> $RMAN_COMMAND_FILE
echo "backup as compressed backupset spfile;" >> $RMAN_COMMAND_FILE
echo "SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';" >> $RMAN_COMMAND_FILE
echo "exit" >> $RMAN_COMMAND_FILE
export LANG=en_us_8859_1
export WEEKDAY=`/bin/date +%A`
export WEEKDAY=`/bin/echo $WEEKDAY | /usr/bin/tr "[:lower:]" "[:upper:]" `
export RMAN_LOGFILE=$BACKUP_HOME/log/$WEEKDAY\_rman_backup_$ORA_SID_UPPER.log
rman target / @$RMAN_COMMAND_FILE LOG=$RMAN_LOGFILE
echo "***********************************************"
echo "**Enviando email .............................*"
mutt -s "Informe Rman ${ORACLE_SID}" -a $BACKUP_HOME/log/$WEEKDAY\_rman_backup_$ORA_SID_UPPER.log iacosta@correo.co < /u01/app/oracle/product/11.2.0
/scripts/correo_body.txt
echo "** Proceso Finalizado .....................OK.*"
echo "***********************************************"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment