查看: 682|回复: 0

[other] db2数据库自动备份脚本

 关闭 [复制链接]

该用户从未签到

发表于 2016-1-30 17:17:47 | 显示全部楼层 |阅读模式
直接上脚本:

#!/bin/sh
#-----------------------------------
#db2自动备份脚本
#-----------------------------------
#参数设置
bkpath=/bakdatadb2/
dblist=$bkpath"dblist/dblist.txt"
bkyear=`date +%Y`
bkmonth=`date +%m`
bkday=`date +%Y-%m-%d`
bkfilepath=$bkpath"bakfulldata/"$bkyear"/$bkmonth"
dbuser=db2inst2
dbpwd=db2
bklog=$bkpath"baklog/"backup.log

#echo $dblist
#echo $bkyear
#echo $bkmonth
#echo $bkday
#echo $bkfilepath
#echo $bklog

#判断备份日志文件是否存在,并且把信息存入日志文件当中
if [ -f "$bklog" ];then
        echo "the log file is already exist!" >> $bklog
else
        touch $bklog
        chown -R db2inst2:db2iadm1 $bklog
        echo "create log file successful!" >> $bklog
fi

#备份初始化信息被记录在日志文件中
echo "备份时间:`date +'%Y-%m-%d %H:%M:%S'`" >> $bklog
echo "1.备份初始化............................................." >> $bklog

#判断备份代表db2数据路径是否存在并且是否可写,并把信息存入日志文件当中
if [ -w "${bkfilepath}" ];then
        echo "the database dir is already exist!" >> $bklog
else
        mkdir -p "$bkfilepath"
        chmod 770 -R "$bkfilepath"
        chown -R db2inst2:db2iadm1 "$bkfilepath"
        echo "the database dir create successful!" >> $bklog
fi

#读取数据库文件列表,在线备份数据库,并把备份信息存入日志文件当中
while read LINE
do
        echo "2.开始备份数据库:"$LINE >> $bklog
        su - db2inst2 -c "db2 backup db $LINE to $bkfilepath"
        echo "3.数据库备份结束:"$LINE"($bkfilepath)" >> $bklog
done < $dblist

#每一天备份的日志信息都要换行,以便更好的查看日志信息
echo -e "------------------------------------------------------------------------------\n\n" >> $bklog





注:
1、如果需要在线全备,把上面的一条语句改成如下即可:

su - db2inst2 -c "db2 backup db $LINE online to $bkfilepath include logs"

2、如果需要在线增备,把上面的一条语句改成如下即可:
su - db2inst2 -c "db2 backup db $LINE online incremental into $bkfilepath include logs"

3、如果需要在线差异备份,把上面的一条语句改成如下即可:
su - db2inst2 -c "db2 backup db $LINE online incremental delta into $bkfilepath include logs"
您需要登录后才可以回帖 登录 | 注册

本版积分规则

站长推荐上一条 /1 下一条