您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2025/10/10 14:57:35发布15次查看
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=$basepathscript/dblist.txt    #要备份的数据库文件列表
 bkdate=`date +%y%m%d`  #备份时间
 #bkrootpath=$basepath  #备份路径
 targetpath=$basepath
 filepath=$targetpathbackup/$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 $targetpathbackup
   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 $targetpathbackup/`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=$basepathscript/dblist.txt    #要备份的数据库文件列表
 bkdate=`date +%y%m%d`  #备份时间
 #bkrootpath=$basepath  #备份路径
 targetpath=$basepath
 filepath=$targetpathbackup/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=$targetpathincremental$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 $targetpathbackup
   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 $targetpathbackup/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
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product