1.shell脚本:startrman.sh
#!/bin/bash
# Created date: 2006-04-21 12:00
# Author : dbstyle
# Name : startrman.sh
# Description:
# Backup database by rman
# MODIFIED (MM/DD/YYYY)
# dbstyle 04-21-2006 create script
#------------------------------------------------------------------------------------------------------------
#Environment variable setting
#------------------------------------------------------------------------------------------------------------
. /opt/oracle/.profile
SH_HOME=/opt/oracle/dbmon/dbstyle/rmanbak
export SH_HOME
RM_COMMAND=/bin/rm
MAIL_COMMAND=/bin/mail
DBA="dbstyle@gmail.com"
DATE=`date +"%Y%m%d"`
week=`date +"%w"`
#-----------------------------------------------------------------------
#Confirm whether the oracle is runing
#-----------------------------------------------------------------------
sqlplus -s "/as sysdba"<<EOF
whenever sqlerror exit 1
whenever oserror exit 1
select sysdate from dual;
exit
EOF
if [ $? -gt 0 ]; then
exit
fi
#-----------------------------------------------------------------------
#Begin to backup
#-----------------------------------------------------------------------
if [ $week = "1" ] || [ $week = "4" ] ; then
rman target / @$SH_HOME/fullback.sql log=$SH_HOME/log/rmanfullback`date +"%Y%m%d"`.log
$MAIL_COMMAND -s "$ORACLE_SID : RMAN FULL BACKUP $IP" $DBA<$SH_HOME/log/rmanfullback`date +"%Y%m%d"`.log
more $SH_HOME/log/rmanfullback`date +"%Y%m%d"`.log | grep 'RMAN-'>$SH_HOME/log/rmanerror.log
else
rman target / @$SH_HOME/archback.sql log=$SH_HOME/log/rmanarchback`date +"%Y%m%d"`.log
$MAIL_COMMAND -s "$ORACLE_SID : RMAN ARCHIVELOG BACKUP $IP" $DBA<$SH_HOME/log/rmanarchback`date +"%Y%m%d"`.log
more $SH_HOME/log/rmanarchback`date +"%Y%m%d"`.log | grep 'RMAN-' >$SH_HOME/log/rmanerror.log
fi
#-----------------------------------------------------------------------
#Mail Error Infor to DBA
#-----------------------------------------------------------------------
if [ `cat $SH_HOME/log/rmanerror.log|wc -l` -gt 0 ]; then
$MAIL_COMMAND -s "$ORACLE_SID : RMAN BACKUP ERROR $IP" $DBA <$SH_HOME/log/rmanerror.log
fi
#-----------------------------------------------------------------------
#Delete obsolete file
#-----------------------------------------------------------------------
find $SH_HOME/log -name "*.log" -mtime +730 -exec rm {} \;
2.全备脚本:fullback.sql
run{
backup full tag 'smsapreg' database include current controlfile format '/rgback/oracle/rmanback/smsapregfullback_%d_%T_%s' plus archivelog format '/rgback/oracle/rmanback/smsapregarch_%d_%T_%s' delete all input;
crosscheck backup;
delete expired backup;
delete obsolete;
}
3.备份归档:archback.sql
run{
backup archivelog all format '/rgback/oracle/rmanback/smsapregarch_%d_%T_%s' delete all input;
}
Speak Your Mind