Home >Database >Mysql Tutorial >db2 自动备份(linux 、windows)总结

db2 自动备份(linux 、windows)总结

WBOY
WBOYOriginal
2016-06-07 15:08:541515browse

1.linux db2 自动备份,备份后压缩,拷贝到另一服务器 全备份: #!/bin/sh #------------------------------------- #db2自动备份脚本 #by lushuai # create at 2013-08-05 #------------------------------------ #参数 Basepath=/home/db2-backup-linux/ d

1.linux  db2 自动备份,备份后压缩,拷贝到另一服务器

全备份:

#!/bin/sh
#-------------------------------------
#db2自动备份脚本
#by lushuai
# create at 2013-08-05
#------------------------------------
 #参数
 Basepath=/home/db2-backup-linux/
 dblist=$Basepath"script/dblist.txt"    #要备份的数据库文件列表
 bkdate=`date +%Y%m%d`  #备份时间
 #bkrootpath=$Basepath""  #备份路径
 TargetPath=$Basepath
 FilePath=$TargetPath"backup/"$bkdate
 bkyear="`date +%Y`"  #要备份的年度,默认是当前年度
 ftphost=192.168.0.15  #ftp服务器ip
 ftpuser=gever   #ftp服务器的用户,必须有create read write权限
 ftppwd=geverabc  #ftp服务器的用户username的密码
 dbUser=db2admin
 dbPwd=db2admin
 Backup_Log=$TargetPath$bkdate.log  #日志

  

echo "1.备份初始化,备份时间为 `date +'%Y-%m-%d %H:%M:%S'`" >>  $Backup_Log

   if [ -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
 
  
   #创建备份文件存储路径,并授权
   if [ -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

   #读取数据库文件列表,备份数据库
   while read LINE
     do
          echo "2.开始备份数据库:"$LINE >> $Backup_Log
           su - db2admin -c "db2 backup db $LINE online to $FilePath include logs"
          echo "3.数据库备份结束:"$LINE"($FilePath)" >> $Backup_Log
      done

   #文件打包
   echo "4.压缩文件" >> $Backup_Log
   cd $TargetPath"backup"
   tar -zcvf $bkdate.tgz $bkdate  >> $Backup_Log

   #删除压缩前数据
   echo "5.删除压缩前数据" >> $Backup_Log
   echo
   rm -rf ${bkdate}
   #删除10天前备份数据
  
   if [ -w "`date +%Y%m%d --date '20 days ago'`" ]; then {
          echo "6.删除20天前备份数据" >> $Backup_Log
          rm -rf "$TargetPath"backup/"`date +%y%m%d --date '20 days ago'`"
   } else {
         echo "6.没有20天前备份数据供删除" >> $Backup_Log
   }
   fi
   echo "7.备份结束"  >> $Backup_Log
  
   #scp  $bkdate.tgz
root@10.10.0.154:/home/212_db_backup
   #echo "8.备份文件上传至10.10.0.154:/home/212_db_backup,多机备份"  >> $Backup_Log
   echo "============================================================================"  >> $Backup_Log
   exit

增量备份:

 

#!/bin/sh
#-------------------------------------
#db2自动备份脚本
#by lushuai
# create at 2013-08-05
#------------------------------------
 #参数
 Basepath=/home/db2-backup-linux/
 dblist=$Basepath"script/dblist.txt"    #要备份的数据库文件列表
 bkdate=`date +%Y%m%d`  #备份时间
 #bkrootpath=$Basepath""  #备份路径
 TargetPath=$Basepath
 FilePath=$TargetPath"backup/incremental"$bkdate
 bkyear="`date +%Y`"  #要备份的年度,默认是当前年度
 ftphost=192.168.0.15  #ftp服务器ip
 ftpuser=gever   #ftp服务器的用户,必须有create read write权限
 ftppwd=geverabc  #ftp服务器的用户username的密码
 dbUser=db2admin
 dbPwd=db2admin
 Backup_Log=$TargetPath"incremental"$bkdate.log  #日志

   echo "1.备份初始化,增量备份时间为 `date +'%Y-%m-%d %H:%M:%S'`" >>  $Backup_Log

   if [ -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
 
  
   #创建备份文件存储路径,并授权
   if [ -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

   #读取数据库文件列表,备份数据库
   while read LINE
     do
              echo "2.开始备份数据库:"$LINE >> $Backup_Log
              su - db2admin -c "db2 backup db $LINE online incremental to $FilePath include logs"
              echo "3.数据库备份结束:"$LINE"($FilePath)" >> $Backup_Log
      done

   #文件打包
   echo "4.压缩文件" >> $Backup_Log
   cd $TargetPath"backup"
   tar -zcvf "incremental"$bkdate.tgz "incremental"$bkdate  >> $Backup_Log

   #删除压缩前数据
   echo "5.删除压缩前数据" >> $Backup_Log
   echo
   rm -rf "incremental"${bkdate}
   #删除10天前备份数据
  
   if [ -w "`date +%Y%m%d --date '20 days ago'`" ]; then {
           echo "6.删除20天前备份数据" >> $Backup_Log
           rm -rf "$TargetPath"backup/incremental"`date +%y%m%d --date '20 days ago'`"
   } else {
           echo "6.没有20天前备份数据供删除" >> $Backup_Log
   }
   fi
   echo "7.备份结束"  >> $Backup_Log
  
   #scp  "incremental"$bkdate.tgz
root@10.10.0.154:/home/212_db_backup
   #echo "8.备份文件上传至10.10.0.154:/home/212_db_backup,多机备份"  >> $Backup_Log
   echo "============================================================================"  >> $Backup_Log
   exit

2.linux  db2导出表结构和数据

 

echo 数据备份开始
#加载环境变量
. /home/db2inst1/sqllib/db2profile
#BACKDIR是放置备份文件的目录
BACKDIR="/home/db2inst1/backup"
#DBNAME是数据库名称
DBNAME="ATMP"
#连接数据库
db2 connect to $DBNAME user db2inst1 using 000000
#新建临时目录存放导出的表结构文件
#mkdir $BACKDIR
#新建临时目录存放导出的表结构文件
mkdir $BACKDIR/$DBNAME
#给几个目录授可读、可写权限
chmod a+w $BACKDIR
chmod a+w $BACKDIR/$DBNAME
#切换到新建临时目录下
cd $BACKDIR/$DBNAME
#执行导出数据库表结构
db2look -d $DBNAME -td @ -i db2inst1 -w 000000 -e -o ATMP.sql
#新建临时目录存放导出的表数据文件
mkdir atmpdata
#给目录授可读、可写权限
chmod a+w atmpdata
#切换到新建临时目录下
cd atmpdata
#执行导出数据库表数据
db2move $DBNAME export -u db2inst1 -p 000000
#取系统日期
DATE=`date +%Y%m%d`
hh=`date +%H`
mm=`date +%M`
now=$DATE-$hh:$mm
#切换到备份目录下
cd $BACKDIR
echo $now
#开始打包和压缩备份文件
tar cvf - $DBNAME | gzip -qc > $DBNAME.$now.tar.gz
#删除临时目录
rm -rf $BACKDIR/$DBNAME
echo 完成数据备份

 

3.window 自动备份数据

参考:http://lushuai1987.iteye.com/admin/blogs/1920669

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn