Linux 下db2 自动远程备份

24 篇文章 1 订阅

linux版本

uname -a
Linux 2.6.28.10-vs2.1.4 #1 SMP Fri Jul 17 15:51:11 EDT 2015 ia64 ia64 ia64 GNU/Linux

db2版本

db2licm -l
Product name:                     "DB2 Advanced Enterprise Server Edition"
License type:                     "CPU Option"
Expiry date:                      "Permanent"
Product identifier:               "db2aese"
Version information:              "10.5"
Enforcement policy:               "Soft Stop"

备份策略

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

备份脚本

数据库列表文件:

dblist.txt

TEST_DB

周日备份脚本

backup7.sh

#!/bin/sh
#params
base_path=/db2backup
dblist=$base_path/script/dblist.txt 
backup_date=`date +%Y%m%d`
backup_file_path=$base_path/backup/$backup_date
backup_log=$base_path/$backup_date.log 

ftp_path=ftp://user_name:password@192.168.1.3:21/

# 函数:输出日志
function logmsg(){
	echo "`date +'%Y-%m-%d %H:%M:%S'` $1" >>  $backup_log
}

# 函数:通过curl上传文件到ftp
function batch_upload(){
    for element in `ls $1 | grep $2`
    do
		logmsg "3.begin upload file:$element"		
		# 上传文件
		curl -T $1/$element $3
		
		# 如果上传失败,退出
		if [ $? -gt 0 ]; then
			logmsg "upload $element error."
			exit 1			
		fi
		logmsg "upload $element success"
    done    
}

if [ -f ${HOME}/sqllib/db2profile ]; then
    . ${HOME}/sqllib/db2profile
fi

logmsg "-----------------------------------------"
logmsg "1.db backup init."

# 创建备份目录
if [ -w "${backup_file_path}" ];then {
	logmsg "db dir is already exist!"
} else {
    mkdir -p "$backup_file_path"
    chmod 777 -R "$backup_file_path"
	logmsg "db dir create Successful:$backup_file_path"
}
fi

# 读取数据库列表,并备份数据库
while read db_name
do
    logmsg "2.begin backup :$db_name"
    db2 backup db $db_name online to $backup_file_path compress include logs 

	if [ $? -gt 0 ]; then
		logmsg "db backup error."
		exit 1
	else
		logmsg "db backup success."
	fi
	
	batch_upload $backup_file_path $db_name $ftp_path
done < $dblist

# 删除数据备份目录
logmsg "4.begin rm backup folder:$backup_file_path"
rm -rf $backup_file_path
if [ $? -gt 0 ]; then
	logmsg "rm error."
	exit 1
else
	logmsg "rm success."
fi

logmsg "db backup success."
logmsg "-----------------------------------------"
exit	

周1,2,4,5脚本

backup1.sh

#!/bin/sh
#params
base_path=/db2backup
dblist=$base_path/script/dblist.txt 
backup_date=`date +%Y%m%d`
backup_file_path=$base_path/backup/$backup_date
backup_log=$base_path/$backup_date.log 

ftp_path=ftp://user_name:password@192.168.1.3:21/

# 函数:输出日志
function logmsg(){
	echo "`date +'%Y-%m-%d %H:%M:%S'` $1" >>  $backup_log
}

# 函数:通过curl上传文件到ftp
function batch_upload(){
    for element in `ls $1 | grep $2`
    do
		logmsg "3.begin upload file:$element"		
		# 上传文件
		curl -T $1/$element $3
		
		# 如果上传失败,退出
		if [ $? -gt 0 ]; then
			logmsg "upload $element error."
			exit 1			
		fi
		logmsg "upload $element success"
    done    
}

if [ -f ${HOME}/sqllib/db2profile ]; then
    . ${HOME}/sqllib/db2profile
fi

logmsg "-----------------------------------------"
logmsg "1.db backup init."

# 创建备份目录
if [ -w "${backup_file_path}" ];then {
	logmsg "db dir is already exist!"
} else {
    mkdir -p "$backup_file_path"
    chmod 777 -R "$backup_file_path"
	logmsg "db dir create Successful:$backup_file_path"
}
fi

# 读取数据库列表,并备份数据库
while read db_name
do
    logmsg "2.begin backup :$db_name"
    db2 backup db $db_name online incremental delta to $backup_file_path compress include logs  

	if [ $? -gt 0 ]; then
		logmsg "db backup error."
		exit 1
	else
		logmsg "db backup success."
	fi
	
	batch_upload $backup_file_path $db_name $ftp_path
done < $dblist

# 删除数据备份目录
logmsg "4.begin rm backup folder:$backup_file_path"
rm -rf $backup_file_path
if [ $? -gt 0 ]; then
	logmsg "rm error."
	exit 1
else
	logmsg "rm success."
fi

logmsg "db backup success."
logmsg "-----------------------------------------"
exit	

周3,6脚本

backup3.sh

#!/bin/sh
#params
base_path=/db2backup
dblist=$base_path/script/dblist.txt 
backup_date=`date +%Y%m%d`
backup_file_path=$base_path/backup/$backup_date
backup_log=$base_path/$backup_date.log 

ftp_path=ftp://user_name:password@192.168.1.3:21/

# 函数:输出日志
function logmsg(){
	echo "`date +'%Y-%m-%d %H:%M:%S'` $1" >>  $backup_log
}

# 函数:通过curl上传文件到ftp
function batch_upload(){
    for element in `ls $1 | grep $2`
    do
		logmsg "3.begin upload file:$element"		
		# 上传文件
		curl -T $1/$element $3
		
		# 如果上传失败,退出
		if [ $? -gt 0 ]; then
			logmsg "upload $element error."
			exit 1			
		fi
		logmsg "upload $element success"
    done    
}

if [ -f ${HOME}/sqllib/db2profile ]; then
    . ${HOME}/sqllib/db2profile
fi

logmsg "-----------------------------------------"
logmsg "1.db backup init."

# 创建备份目录
if [ -w "${backup_file_path}" ];then {
	logmsg "db dir is already exist!"
} else {
    mkdir -p "$backup_file_path"
    chmod 777 -R "$backup_file_path"
	logmsg "db dir create Successful:$backup_file_path"
}
fi

# 读取数据库列表,并备份数据库
while read db_name
do
    logmsg "2.begin backup :$db_name"
    db2 backup db $db_name online incremental to $backup_file_path compress include logs 

	if [ $? -gt 0 ]; then
		logmsg "db backup error."
		exit 1
	else
		logmsg "db backup success."
	fi
	
	batch_upload $backup_file_path $db_name $ftp_path
done < $dblist

# 删除数据备份目录
logmsg "4.begin rm backup folder:$backup_file_path"
rm -rf $backup_file_path
if [ $? -gt 0 ]; then
	logmsg "rm error."
	exit 1
else
	logmsg "rm success."
fi

logmsg "db backup success."
logmsg "-----------------------------------------"
exit

调度计划

crontab -e
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 &
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值