• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

mysql 搞代码 4年前 (2022-01-09) 29次浏览 已收录 0个评论

下面的shell脚本用于实现数据库的自动还原,还原成功后,数据库被关闭。因为我们在Prod数据库无异常的情形下,不需要bak 的备用库

中小型数据库呈现的是数据库并发少,数据库容量小,版本功能受限以及N多单实例等特点。尽管如此,数据库的损失程度也会存在零丢失的情形。企业不愿意花太多的钱又要保证数据库的可靠稳定,可是苦煞了我这些搞DB的。接上一篇文章,中小型数据库 RMAN CATALOG 备份恢复方案(一) ,,我们继续来给出基于中小型数据库的恢复的脚本与其部署。本文来源[email protected]搞@^&代*@码网(

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

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
## Desc:
## The script uses to restore database with level 0 backupset.
## Author: Robinson
## Blog :
##====================================================================

#!/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} <<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`.” [email protected] <${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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:中小型数据库 RMAN CATALOG 备份恢复方案(二)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址