定位 发表于 2017-11-13 21:08:02

db2离线全备对应的数据库脚本 - 个人原创

db2离线全备对应的数据库脚本,这个是自己实际生产环境下使用过的,亲测,没问题#!/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
说明:里面的dbuser和dbpwd,改成自己的用户和密码。


执行过程自己就不执行截图了。

feihu 发表于 2017-11-14 08:15:19

都是代码,看着心痛

权利的游戏 发表于 2017-11-15 07:53:17

db2还没用到过,先学习了

huangjia 发表于 2017-11-18 16:03:56

不懂哈,代码麻麻的;P
页: [1]
查看完整版本: db2离线全备对应的数据库脚本 - 个人原创