linux自动备份db2数据库备份,db2 自动备份(linux 、windows)总结

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 < $dblist

#文件打包

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.tgzroot@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 < $dblist

#文件打包

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.tgzroot@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

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值