DB2数据库自动恢复脚本(linux)

发布时间 2023-04-18 16:16:53作者: 啊内哈赛哟
###################################################################################################
##                                                                                               ##
##   author:Gatsby       Release Time:2023/3/17    description:db2 automatic recovery script     ##
##                                      Version:1.2v                                             ##
##                                                                                               ##  
###################################################################################################
export retar=`date +%Y%m%d`.tar.gz
tar zxvf /appData/dbbackup/backupDB/${retar} -C /appData/db2inst1/
export bakset=/appData/db2inst1/`date +%Y%m%d`/
export log=/tmp/db2restore_`date +%Y%m%d`.log
#sh /root/scripts/login.sh >>${log} <<EOF
su - db2inst1 >${log} <<EOF
db2ckbkp -h ${bakset}SVCDB*
db2 drop database SVCDB
rm -rf /appData/SVCDB/archlog/*
db2 restore database svcdb history file from ${bakset}
db2 connect to SVCDB
db2 restore database svcdb logs from ${bakset} logtarget /appData/SVCDB/archlog/
chmod 744 /appData/SVCDB/archlog/*
db2 recover database SVCDB
db2 rollforward db SVCDB to end of logs and stop overflow log path "("/appData/SVCDB/archlog/")"
db2 connect to SVCDB
EOF
##完成恢复
echo "检查数据库是否为打开的状态:" >>${log}
   (db2 << EOF
connect to SVCDB;  
LIST ACTIVE DATABASES;
quit
EOF
) | grep SVCDB > /dev/null 2>&1

if [ $? -eq 0 ]
then
echo "当前数据库SVCDB恢复成功,且数据库当前状态为 ACTIVE" >>${log}
rm -rf ${bakset}