|   
 TA的每日心情|  | 开心 2025-10-7 13:38
 | 
|---|
 签到天数: 1664 天 [LV.Master]伴坛终老 | 
| db2离线全备对应的数据库脚本,这个是自己实际生产环境下使用过的,亲测,没问题 说明:里面的dbuser和dbpwd,改成自己的用户和密码。复制代码#!/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
 
 执行过程自己就不执行截图了。
 
 | 
 |