中小型数据库 RMAN CATALOG 备份恢复方案(二)

2014-11-24 17:47:36 · 作者: · 浏览: 0

中小型数据库 RMAN CATALOG 备份恢复方案系列文章


1、RMAN还原shell脚本


#!/bin/bash
# --------------------
# Define variable
# --------------------


if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi


# --------------------------
# Check SID
# --------------------------
if [ -z "${1}" ];then
echo "Usage: "
echo " `basename $0` ORACLE_SID"
exit 1
fi


ORACLE_SID=${1}; export ORACLE_SID
LOG_DIR=/u02/database/${ORACLE_SID}/backup; export RMAN_DIR
TIMESTAMP=`date +%Y%m%d%H%M` export TIMESTAMP
RMAN_LOG=${LOG_DIR}/${ORACLE_SID}_restore_${TIMESTAMP}.log; export RMAN_LOG
SSH_LOG=${LOG_DIR}/${ORACLE_SID}_restore_full_${TIMESTAMP}.log; export SSH_LOG
RETENTION=5


echo "----------------------------------------------------------------" >>${SSH_LOG}
echo "Start rman to backup at `date`." >>${SSH_LOG}
echo "----------------------------------------------------------------" >>${SSH_LOG}


$ORACLE_HOME/bin/rman target / catalog rman_user/xxx@catadb log=${RMAN_LOG} <startup nomount;
run{execute global script global_restore;}
exit;
EOF
RV=$


cat ${RMAN_LOG}>>${SSH_LOG}
echo "" >>${SSH_LOG}
echo "----------------------------------------------------------------" >>${SSH_LOG}
echo "MSG1: RMAN restore end at `date`." >>${SSH_LOG}
echo "----------------------------------------------------------------" >>${SSH_LOG}


if [ $RV -ne "0" ]; then
echo "----------------------------------------------------------------" >>${SSH_LOG}
echo "MSG2: RMAN restore error at `date`." >>${SSH_LOG}
echo "----------------------------------------------------------------" >>${SSH_LOG}
RMAN_STAT='FAILED'
mail -s "Failed RMAN restore for $ORACLE_SID on `hostname`." dba@12306.com <${SSH_LOG}
else
echo "----------------------------------------------------------------" >>${SSH_LOG}
echo "MSG2: No error found for RMAN restore at `date`." >>${SSH_LOG}
echo "----------------------------------------------------------------" >>${SSH_LOG}
RMAN_STAT='SUCCEED'
rm -rf ${RMAN_LOG} 2>/dev/null
fi


echo "`date '+%F %X'` -- $0 $1 $RMAN_STAT ">> /u01/comm_scripts/db_restore_rman.log


exit