Linux 下db2 自动远程备份

来源:互联网 发布:网络命令大全 编辑:程序博客网 时间:2024/06/06 07:00

1.备份策略

周日:全备
周一:迭代增量备份
周二:迭代增量备份
周三:累积增量备份
周四:迭代增量备份
周五:迭代增量备份
周六:累积增量备份

2.自动上传ftp

备份文件扩展名为:tgz,上传到ftp时修改为:rar;
如果需要正确解压文件,需要修改文件扩展名为:tgz,再解压;

3.调度计划

0 0 * * 0 nohup sh /db2backup/script/backup7.sh &
0 0 * * 1,2,4,5 nohup sh /db2backup/script/backup1.sh &
0 0 * * 3,6 nohup sh /db2backup/script/backup3.sh &

4.备份文件恢复

因服务器操作系统为Linux,通过backup方式备份的文件无法在Windows上直接恢复;
如果需要在Windows恢复,需要使用db2move方式导出恢复;

5.备份脚本

backup7.sh

#!/bin/sh#-------------------------------------# db2 backup script for 7 by hury# create @2016-12-06# script name:backup7.sh# 1.chmod 744 backup7.sh# 2.crontab -e # for test only# */2 * * * * nohup sh /db2backup/script/backup7.sh &# for official# 0 0 * * 0 nohup sh /db2backup/script/backup7.sh &#------------------------------------#paramsBasepath=/db2backup/dblist=$Basepath"script/dblist.txt"    bkdate=`date +%Y%m%d`  TargetPath=$BasepathFilePath=$TargetPath"backup/"$bkdateftp_host=192.168.2.116ftp_port=28ftp_user=testftp_pwd=testcur_week=`date +%u`Backup_Log=$TargetPath$bkdate.log if [ -f ${HOME}/sqllib/db2profile ]; then    . ${HOME}/sqllib/db2profilefiecho "@`date +'%Y-%m-%d %H:%M:%S'`" >>  $Backup_Logecho "1.backup init." >>  $Backup_Logif [ -e "$Backup_Log" ];then {      echo  "the log file is already exist!" >> $Backup_Log} else {      touch $Backup_Log     echo "create log file Successful!" >> $Backup_Log}fi#create backup folderif [ -w "${FilePath}" ];then {     echo "---The database dir is already exist!" >> $Backup_Log} else {     mkdir -p "$FilePath"    chmod 777 -R "$FilePath"    echo "---The database dir create Successful!" >> $Backup_Log}fi#read db list and backup dbwhile read LINEdo    echo "2.begin backup :"$LINE >> $Backup_Log      db2 backup db $LINE online to $FilePath compress include logs         if [ $? -gt 0 ]; then            echo "db backup error." >> $Backup_Log            exit 1        else            echo "db backup success." >> $Backup_Log               fi    echo "3.end backup :"$LINE"($FilePath)" >> $Backup_Log    echo "@`date +'%Y-%m-%d %H:%M:%S'`" >> $Backup_Logdone < $dblist#zip the fileecho "4.begin to zip file" >> $Backup_Logcd $TargetPath"backup"tar -zcvf $bkdate.tgz $bkdate  >> $Backup_Logecho "end zip file." >> $Backup_Logecho "@`date +'%Y-%m-%d %H:%M:%S'`" >> $Backup_Log#delete old backup fileecho "5.delete old backup file" >> $Backup_Logechorm -rf ${bkdate}#delete backup file 7 day agoif [ -w "`date +%Y%m%d --date '7 days ago'`" ]; then {      echo "6.delete backup file 7 day ago" >> $Backup_Log      rm -rf "$TargetPath"backup/"`date +%Y%m%d --date '7 days ago'`"} else {     echo "6.no file to be delete." >> $Backup_Log}fiecho "7.backup end."  >> $Backup_Log#scp  $bkdate.tgz root@192.168.0.1:/home/backup#echo "8.copy backup file to 192.168.0.1:/home/backup"  >> $Backup_Log#send file to ftpecho "8.send backup file to ftp" >> $Backup_Logftp -n<<!open $ftp_host $ftp_portuser $ftp_user $ftp_pwdbinarylcd $TargetPath"backup"promptput $bkdate.tgz $cur_week.rarclosebye!echo "send to ftp ok." >> $Backup_Logecho "@`date +'%Y-%m-%d %H:%M:%S'`" >> $Backup_Logecho "============================================================================"  >> $Backup_Logexit

backup1.sh

#!/bin/sh#-------------------------------------# db2 backup script for 1,2,4,5 by hury# create @2016-12-06# script name:backup1.sh# 1.chmod 744 backup1.sh# 2.crontab -e # for test only# */2 * * * * nohup sh /db2backup/script/backup1.sh &# for official# 0 0 * * 1,2,4,5 nohup sh /db2backup/script/backup1.sh &#------------------------------------#paramsBasepath=/db2backup/dblist=$Basepath"script/dblist.txt"    bkdate=`date +%Y%m%d`  TargetPath=$BasepathFilePath=$TargetPath"backup/incremental"$bkdateftp_host=192.168.2.116ftp_port=28ftp_user=testftp_pwd=testcur_week=`date +%u`Backup_Log=$TargetPath"incremental"$bkdate.log if [ -f ${HOME}/sqllib/db2profile ]; then    . ${HOME}/sqllib/db2profilefiecho "@`date +'%Y-%m-%d %H:%M:%S'`" >>  $Backup_Logecho "1.backup init." >>  $Backup_Logif [ -e "$Backup_Log" ];then {      echo  "the log file is already exist!" >> $Backup_Log} else {      touch $Backup_Log     echo "create log file Successful!" >> $Backup_Log}fi#create backup folderif [ -w "${FilePath}" ];then {     echo "---The database dir is already exist!" >> $Backup_Log} else {     mkdir -p "$FilePath"    chmod 777 -R "$FilePath"    echo "---The database dir create Successful!" >> $Backup_Log}fi#read db list and backup dbwhile read LINEdo    echo "2.begin backup :"$LINE >> $Backup_Log      db2 backup db $LINE online incremental delta to $FilePath compress include logs     echo "3.end backup :"$LINE"($FilePath)" >> $Backup_Log    echo "@`date +'%Y-%m-%d %H:%M:%S'`" >> $Backup_Logdone < $dblist#zip the fileecho "4.begin to zip file" >> $Backup_Logcd $TargetPath"backup"tar -zcvf "incremental"$bkdate.tgz "incremental"$bkdate  >> $Backup_Logecho "end zip file." >> $Backup_Logecho "@`date +'%Y-%m-%d %H:%M:%S'`" >> $Backup_Log#delete old backup fileecho "5.delete old backup file" >> $Backup_Logechorm -rf "incremental"${bkdate}#delete backup file 7 day agoif [ -w "`date +%Y%m%d --date '7 days ago'`" ]; then {      echo "6.delete backup file 7 day ago" >> $Backup_Log      rm -rf "$TargetPath"backup/incremental"`date +%Y%m%d --date '7 days ago'`"} else {     echo "6.no file to be delete." >> $Backup_Log}fiecho "7.backup end."  >> $Backup_Log#scp  $bkdate.tgz root@192.168.0.1:/home/backup#echo "8.copy backup file to 192.168.0.1:/home/backup"  >> $Backup_Log#send file to ftpecho "8.send backup file to ftp" >> $Backup_Logftp -n<<!open $ftp_host $ftp_portuser $ftp_user $ftp_pwdbinarylcd $TargetPath"backup"promptput "incremental"$bkdate.tgz $cur_week.rarclosebye!echo "send to ftp ok." >> $Backup_Logecho "@`date +'%Y-%m-%d %H:%M:%S'`" >> $Backup_Logecho "============================================================================"  >> $Backup_Logexit

backup3.sh

#!/bin/sh#-------------------------------------# db2 backup script for 3,6 by hury# create @2016-12-06# script name:backup1.sh# 1.chmod 744 backup1.sh# 2.crontab -e # for test only# */2 * * * * nohup sh /db2backup/script/backup3.sh &# for official# 0 0 * * 3,6 nohup sh /db2backup/script/backup3.sh &#------------------------------------#paramsBasepath=/db2backup/dblist=$Basepath"script/dblist.txt"    bkdate=`date +%Y%m%d`  TargetPath=$BasepathFilePath=$TargetPath"backup/incremental"$bkdateftp_host=192.168.2.116ftp_port=28ftp_user=testftp_pwd=testcur_week=`date +%u`Backup_Log=$TargetPath"incremental"$bkdate.log if [ -f ${HOME}/sqllib/db2profile ]; then    . ${HOME}/sqllib/db2profilefiecho "@`date +'%Y-%m-%d %H:%M:%S'`" >>  $Backup_Logecho "1.backup init." >>  $Backup_Logif [ -e "$Backup_Log" ];then {      echo  "the log file is already exist!" >> $Backup_Log} else {      touch $Backup_Log     echo "create log file Successful!" >> $Backup_Log}fi#create backup folderif [ -w "${FilePath}" ];then {     echo "---The database dir is already exist!" >> $Backup_Log} else {     mkdir -p "$FilePath"    chmod 777 -R "$FilePath"    echo "---The database dir create Successful!" >> $Backup_Log}fi#read db list and backup dbwhile read LINEdo    echo "2.begin backup :"$LINE >> $Backup_Log      db2 backup db $LINE online incremental to $FilePath compress include logs         if [ $? -gt 0 ]; then            echo "db backup error." >> $Backup_Log            exit 1        else            echo "db backup success." >> $Backup_Log               fi    echo "3.end backup :"$LINE"($FilePath)" >> $Backup_Log    echo "@`date +'%Y-%m-%d %H:%M:%S'`" >> $Backup_Logdone < $dblist#zip the fileecho "4.begin to zip file" >> $Backup_Logcd $TargetPath"backup"tar -zcvf "incremental"$bkdate.tgz "incremental"$bkdate  >> $Backup_Logecho "end zip file." >> $Backup_Logecho "@`date +'%Y-%m-%d %H:%M:%S'`" >> $Backup_Log#delete old backup fileecho "5.delete old backup file" >> $Backup_Logechorm -rf "incremental"${bkdate}#delete backup file 7 day agoif [ -w "`date +%Y%m%d --date '7 days ago'`" ]; then {      echo "6.delete backup file 7 day ago" >> $Backup_Log      rm -rf "$TargetPath"backup/incremental"`date +%Y%m%d --date '7 days ago'`"} else {     echo "6.no file to be delete." >> $Backup_Log}fiecho "7.backup end."  >> $Backup_Log#scp  $bkdate.tgz root@192.168.0.1:/home/backup#echo "8.copy backup file to 192.168.0.1:/home/backup"  >> $Backup_Log#send file to ftpecho "8.send backup file to ftp" >> $Backup_Logftp -n<<!open $ftp_host $ftp_portuser $ftp_user $ftp_pwdbinarylcd $TargetPath"backup"promptput "incremental"$bkdate.tgz $cur_week.rarclosebye!echo "send to ftp ok." >> $Backup_Logecho "@`date +'%Y-%m-%d %H:%M:%S'`" >> $Backup_Logecho "============================================================================"  >> $Backup_Logexit
0 0
原创粉丝点击