rman_backup_level0.sh
>>
################################
# Shared Environment Variables
################################
export DATE=`date '+%Y%m%d%H%M'`
export DATE_DIR=`date +%Y-%m-%d`
export ORACLE_HOME="/u01/oracle/db11203"
export DISK_PATH="/backup/daily"
export NLS_LANG=American_America
###### DB SETUP #########
if [ "`hostname`" == "RAC1" ]; then
db_array=(TESTDB1 TESTDB2)
elif [ "`hostname`" == "RAC2" ]; then
db_array=(TESTDB3)
fi
len=${#db_array[*]}
i=0
while [ $i -lt $len ]; do
export ORACLE_UNQNAME=${db_array[$i]}
export ORACLE_SID="$ORACLE_UNQNAME"1
mkdir -p $DISK_PATH/$DATE_DIR/$ORACLE_SID/DB_BK
mkdir -p $DISK_PATH/$DATE_DIR/$ORACLE_SID/CTRL
mkdir -p $DISK_PATH/$DATE_DIR/$ORACLE_SID/ARCH
mkdir -p $DISK_PATH/$DATE_DIR/$ORACLE_SID/LOG
mkdir -p $DISK_PATH/$DATE_DIR/$ORACLE_SID/SPFILE
. /backup/script/incremental_backup.sh
let i++
done
echo "#########################< Delete Old Backup > ##############################" >> $DISK_PATH/$DATE_DIR/$ORACLE_SID/LOG/
rman_backup_"$ORACLE_SID"_level0_$DATE.log
if [[ `find $DISK_PATH -type d -name "[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]" |wc -l` -ge 3 ]]
then
find $DISK_PATH -type d -mtime +7 -name "[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]" -print -exec rm -rf {} \; >> $DISK_PATH/
$DATE_DIR/$ORACLE_SID/LOG/rman_backup_"$ORACLE_SID"_level0_$DATE.log
fi
exit
incremental_backup.sh
>>
####################################
# INCREMENTAL BACKUP DATABASE #
####################################
export LEVEL=0
echo "
set encryption on identified by 'mypwd' only;
run {
allocate channel t1 type disk;
set limit channel t1 kbytes 1048576;
allocate channel t2 type disk;
set limit channel t2 kbytes 1048576;
allocate channel t3 type disk;
set limit channel t3 kbytes 1048576;
allocate channel t4 type disk;
set limit channel t4 kbytes 1048576;
crosscheck backupset;
crosscheck archivelog all;
crosscheck copy;
delete noprompt expired backup;
delete noprompt obsolete;
sql \"ALTER SYSTEM ARCHIVE LOG CURRENT\" ;
configure snapshot controlfile name to '$DISK_PATH/$DATE_DIR/$ORACLE_SID/CTRL/control.bk';
backup incremental level=0 cumulative
TAG level0
FILESPERSET 5
FORMAT '$DISK_PATH/$DATE_DIR/$ORACLE_SID/DB_BK/bk_%s_%p_%t'
as compressed backupset database ;
change archivelog all crosscheck;
sql \"ALTER SYSTEM ARCHIVE LOG CURRENT\" ;
backup
FORMAT '$DISK_PATH/$DATE_DIR/$ORACLE_SID/ARCH/arch_%s_%p_%t'
as compressed backupset archivelog all delete input;
backup current controlfile;
backup spfile format '$DISK_PATH/$DATE_DIR/$ORACLE_SID/SPFILE/spfile$ORACLE_SID.bak';
release channel t1;
release channel t2;
release channel t3;
release channel t4;
}" > /backup/script/run/"$ORACLE_SID"_rman_run
$ORACLE_HOME/bin/rman cmdfile=/backup/script/run/"$ORACLE_SID"_rman_run target / nocatalog msglog=$DISK_PATH/$DATE_DIR/$ORACL
E_SID/LOG/rman_backup_"$ORACLE_SID"_level0_$DATE.log