#!/bin/bash
#set env
source /home/oracle/.bash_profile
export ORACLE_SID=emesdb2
DATE=`date +%w`
#DATE=0
DATE_D=`date +%d`
DATE_2=`date +%Y%m%d`
BACKUP_PATH=/ora_backup/emesdb_backup
mkdir -p $BACKUP_PATH/$DATE
if [ $DATE -eq 0 ]; then
echo "usage: rman.sh level 0 "
LEVEL=0
fi
if [ $DATE -eq 3 ]; then
echo "usage: rman.sh level 1 "
LEVEL=1
fi
if [ $DATE -eq 1 -o $DATE -eq 2 -o $DATE -eq 4 -o $DATE -eq 5 -o $DATE -eq 6 ]; then
echo "usage: rman.sh level 2 "
LEVEL=2
fi
echo "-----------------------------start-----------------------------";
#backup spfile & pfile
if [ $LEVEL -eq 0 ]; then
echo "-----------------------------1-----------------------------";
rman target / nocatalog log=$BACKUP_PATH/$DATE-0.log <<EOF
run{
allocate channel c3 type disk;
allocate channel c4 type disk;
backup as compressed backupset incremental level $LEVEL filesperset 3 format '$BACKUP_PATH/$DATE/data-$LEVEL-%d-%U-%t' (database include current controlfile) ;
backup current controlfile format '$BACKUP_PATH/$DATE/ctl-$LEVEL-%d-%U-%t';
backup spfile format '$BACKUP_PATH/$DATE/spfile-$LEVEL-%d-%U-%t';
sql 'alter system archive log current';
backup as compressed backupset archivelog all format '$BACKUP_PATH/$DATE/arch-$LEVEL-%d-%U-%t' delete input;
CONFIGURE RETENTION POLICY TO recovery window of 30 days;
crosscheck backup of archivelog all ;
crosscheck archivelog all;
crosscheck backupset;
delete noprompt obsolete;
delete noprompt expired backup;
release channel c3;
release channel c4;
}
exit;
EOF
echo "-----------------------------1-0-----------------------------";
else
echo "-----------------------------2-----------------------------";
rman target / nocatalog log=$BACKUP_PATH/$DATE-0.log <<EOF
run{
allocate channel c3 type disk;
allocate channel c4 type disk;
backup as compressed backupset incremental level $LEVEL filesperset 3 format '$BACKUP_PATH/$DATE/data-$LEVEL-%d-%U-%t' (database include current controlfile) ;
backup current controlfile format '$BACKUP_PATH/$DATE/ctl-$LEVEL-%d-%U-%t';
backup spfile format '$BACKUP_PATH/$DATE/spfile-$LEVEL-%d-%U-%t';
sql 'alter system archive log current';
backup as compressed backupset archivelog all format '$BACKUP_PATH/$DATE/arch-$LEVEL-%d-%U-%t' delete input;
CONFIGURE RETENTION POLICY TO recovery window of 30 days;
crosscheck backup of archivelog all ;
crosscheck archivelog all;
crosscheck backupset;
delete noprompt obsolete;
delete noprompt expired backup;
release channel c3;
release channel c4;
}
exit;
EOF
echo "-----------------------------2-0-----------------------------";
fi