时间:2021-07-01 10:21:17 帮助过:36人阅读
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 2、检测还原状态shell脚本 [python] --我们用一个shell脚本来检测多个DB当天最终的还原状态成功与否,并将当前的所有记录输出到ck_restore.log日志 --脚本尾部发送邮件列出当天所有进行restore之后
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入
2、检测还原状态shell脚本
[python]
--我们用一个shell脚本来检测多个DB当天最终的还原状态成功与否,并将当前的所有记录输出到ck_restore.log日志
--脚本尾部发送邮件列出当天所有进行restore之后的所有状态,是一个多个DB restore 的summary report.
$ more ck_restore.sh
##====================================================================
## File name: ck_restore.sh
## Usage: ck_restore.sh
## Desc:
## The script uses to check RMAN restore log for current day
## and send mail to DBA
##====================================================================
#!/bin/bash
if [ -f ~/.bash_profile ];
then
. ~/.bash_profile
fi
REV_DIR=/u01/comm_scripts
dt=`date '+%F'`
cat /dev/null >${REV_DIR}/ck_restore.log
cat ${REV_DIR}/db_restore_rman.log | grep "${dt}" 》${REV_DIR}/ck_restore.log
total=`cat ${REV_DIR}/ck_restore.log |wc -l`
suc=`grep SUCCEED ${REV_DIR}/ck_restore.log |wc -l`
fail=`grep FAILED ${REV_DIR}/ck_restore.log |wc -l`
echo ""》ck_restore.log
echo -e "The total DB of current recovery is $total in `hostname` \n"》${REV_DIR}/ck_restore.log
echo -e "The number of succee is : ${suc} \n"》${REV_DIR}/ck_restore.log
echo -e "The number of fail is : ${fail} \n"》${REV_DIR}/ck_restore.log
mail -s "RMAN restore summary for `hostname` at `date +'%a %b %d %Y'`" dba@12306.com <${REV_DIR}/ck_restore.log
3、部署还原shell脚本到crontab
[python]
--首先将多个需要自动restore的DB封装到一个单独的文件,如下:
--最后调用ck_restore.sh 脚步检测所有DB restore状态并发送RMAN summary report邮件
$ more full_resotre_by_rman.sh
#!/bin/bash
/u01/comm_scripts/db_restore_rman_catalog.sh BC1200
/u01/comm_scripts/db_restore_rman_catalog.sh AF2630
/u01/comm_scripts/ck_restore.sh
--部署到crontab
--注,无论是备份还是恢复脚本,我们都是通过Bak server的crontab来部署以减轻Prod的压力
#Rman restore database
0 3 * * 1-6 /u01/comm_scripts/full_resotre_by_rman.sh
[1] [2]