欢迎进入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 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]