Welcome 微信登录

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

中小型数据库呈现的是数据库并发少,数据库容量小,版本功能受限以及N多单实例等特点。尽管如此,数据库的损失程度也会存在零丢失的情形。企业不愿意花太多的钱又要保证数据库的可靠稳定,可是苦煞了我这些搞DB的。接上一篇文章,中小型数据库 RMAN CATALOG 备份恢复方案(一) ,我们继续来给出基于中小型数据库的恢复的脚本与其部署。中小型数据库 RMAN CATALOG 备份恢复方案系列文章
  • 中小型数据库 RMAN CATALOG 备份恢复方案(一) http://www.linuxidc.com/Linux/2013-08/88785.htm
  • 中小型数据库 RMAN CATALOG 备份恢复方案(二) http://www.linuxidc.com/Linux/2013-08/88786.htm
  • 中小型数据库 RMAN CATALOG 备份恢复方案(三) http://www.linuxidc.com/Linux/2013-08/88787.htm
1、RMAN还原shell脚本--下面的shell脚本用于实现数据库的自动还原,还原成功后,数据库被关闭。因为我们在Prod数据库无异常的情形下,不需要bak 的备用库open
--shell脚本做还原时调用了catalog中的全局脚本global_restore
--在脚本最尾部,我们将DB还原是否成功的状态输出到日志文件db_restore_rman.log,这样做的好处是我们可以将多个DB的还原状态集中,便于查看
$ more db_restore_rman_catalog.sh
##====================================================================
##  File name: db_restore_rman_catalog.sh
##  Usage: db_restore_rman_catalog.sh <$Oracle_SID>
##  Desc:
##        The script uses to restore database with level 0 backupset.
##  Author: Robinson
##  Blog  : http://www.linuxidc.com
##====================================================================#!/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
fiORACLE_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=5echo "----------------------------------------------------------------" >>${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} <<EOF
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
fiecho "`date "+%F %X"` --  $0 $1 $RMAN_STAT ">> /u01/comm_scripts/db_restore_rman.logexit 
  • 1
  • 2
  • 下一页
中小型数据库 RMAN CATALOG 备份恢复方案(一)中小型数据库 RMAN CATALOG 备份恢复方案(三)相关资讯      rman catalog  rman备份 
  • RMAN备份报 RMAN-06059 错误  (05月13日)
  • RMAN备份文件远大于数据库大小的原  (01月09日)
  • Oracle RMAN备份之控制文件备份  (12/20/2015 20:07:06)
  • RMAN备份策略修正案例实录  (02月29日)
  • Oracle 11g R2 RAC RMAN备份脚本示  (12/27/2015 11:33:20)
  • RMAN备份时遇到ORA-19588  (07/23/2015 15:01:01)
本文评论 查看全部评论 (0)
表情: 姓名: 字数