ITPub博客

首页 > 数据库 > 数据库开发技术 > mbdb1_backup.sh

mbdb1_backup.sh

原创 数据库开发技术 作者:fjzcau 时间:2015-03-28 18:20:35 0 删除 编辑
#------------------------------------------------------#
# 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/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: DB2导出给定表
请登录后发表评论 登录
全部评论

注册时间:2011-04-03

  • 博文量
    208
  • 访问量
    547143