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
周日备份脚本
#!/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脚本
#!/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脚本
#!/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 &