#------------------------------------------------------#
# function: backup mbdb1 for cvbackup
# creator: fjz
# date: 20140812
#------------------------------------------------------#
DB_SRV_IP="40.7.66.3"
srv_ip=`/usr/sbin/ifconfig -a | grep "$DB_SRV_IP" | cut -d" " -f2`
if [ "$srv_ip" = "$DB_SRV_IP" ]
then
echo "--> server ip $DB_SRV_IP " >> /dev/null
else
exit 0
fi
#------------------------------------------------------#
# init for special db
#------------------------------------------------------#
if [ -f /home/mbinst1/sqllib/db2profile ]; then
. /home/mbinst1/sqllib/db2profile
fi
i_date=`date +'%Y%m%d'`
i_inst=mbinst1
i_dbnm=MBDB1
i_cvbackup=/cvbackup/mbdb1 # dir of tar for cvbackup to tape
i_log=/cvbackup/scripts/mbdb1_backup.log
i_logdir=/mbdb1_log/$i_inst/$i_dbnm/NODE0000/C0000000 # dir of archivelog
i_logbakdir=${i_dbnm}_ARCHLOG_${i_date} # dir of tar for everyday
mkdir -p $i_logdir/$i_logbakdir # create dir of tar everyday
echo "\n" >> $i_log
echo "#-------------------------------------------------------------#" >> $i_log
echo "#-------------------------------------------------------------#" >> $i_log
echo "\n" >> $i_log
#------------------------------------------------------#
# clean old backup file
#------------------------------------------------------#
find $i_cvbackup -type f -mtime +1 | xargs -i /bin/rm {}
#------------------------------------------------------#
# backup db
#------------------------------------------------------#
nowtime=`date +'%Y-%m-%d %H:%M:%S'`
echo "--> $nowtime begin backup $i_dbnm !" >> $i_log
db2 "backup db $i_dbnm online to $i_cvbackup compress include logs" >> $i_log
nowtime=`date +'%Y-%m-%d %H:%M:%S'`
echo "<-- $nowtime end backup $i_dbnm !\n" >> $i_log
#------------------------------------------------------#
# tar archivelog for cvbackup to tape
#------------------------------------------------------#
i_first_active_log=`db2 get db cfg for $i_dbnm | grep -i "first active" | awk '{print $6}'`
i_first_active_log_num=`echo $i_first_active_log |cut -d'.' -f1 | sed s/S//g |sed s/^0*//g`
nowtime=`date +'%Y-%m-%d %H:%M:%S'`
echo "-->$nowtime first_active_log=$i_first_active_log--" >> $i_log
#----------------------------------#
# do with inactive archivelog
#----------------------------------#
cd $i_logdir
for i_arch in `ls *.LOG`
do
{
i_arch_log_num=`echo $i_arch |cut -d'.' -f1 | sed s/S//g |sed s/^0*//g`
if [ $i_arch_log_num -lt $i_first_active_log_num ]
then
echo "--> $i_arch_log_num:$i_arch archive and delete" >> $i_log
mv $i_arch $i_logbakdir
else
echo "--> $i_arch_log_num:$i_arch active!!!! " >> $i_log
fi
}
done
#----------------------------------#
# current path must be in $i_logdir
#----------------------------------#
tar -cf ${i_logbakdir}.tar $i_logbakdir
i_result=$?
nowtime=`date +'%Y-%m-%d %H:%M:%S'`
echo "--> result of tar is $i_result" >> $i_log
if [ $i_result -eq 0 ]
then
rm -rf $i_logbakdir
fi
#----------------------------------#
# current path must be in $i_logdir
#----------------------------------#
gzip ${i_logbakdir}.tar
i_result=$?
nowtime=`date +'%Y-%m-%d %H:%M:%S'`
echo "--> result of gzip is $i_result " >> $i_log
#----------------------------------#
# current path must be in $i_logdir
#----------------------------------#
mv ${i_logbakdir}.tar.gz $i_cvbackup
nowtime=`date +'%Y-%m-%d %H:%M:%S'`
echo "--> $nowtime backup db and tar archivelog ok " >> $i_log
exit 0
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22661144/viewspace-1477098/
,如需转载,请注明出处,否则将追究法律责任。