目录
场景:IBM DB数据库已经运用于生产环境,需每天备份,防范于风险
说明:支持每天定时全量备份(包含DDL文件和数据表文件,可根据DB2命令分表导入),并自动压缩文件
场景:IBM DB数据库已经运用于生产环境,需每天备份,防范于风险
说明:支持每天定时全量备份(包含DDL文件和数据表文件,可根据DB2命令分表导入),并自动压缩文件
1、准备备份脚本SHELL文件
使用db2inst1身份登录主机
vi db2backup.sh ,脚本内容如下所示:
#!/bin/sh
# edit by 2019-12-09
# use this shell auto backup db2 database
# param info
currDate=`date +%y%m%d%H%M%S`
dbbakDir="/home/db2inst1/dbbak"
currDayBakDir="$dbbakDir/$currDate/"
database="test_db"
schema="test_schema"
userName="test_user"
userPwd="test_userpwd"
echo "db2 auto backup param info:"
echo "currDate: ${currDate}"
echo "currDayBakDir: ${currDayBakDir}"
#judge currday backup dir is exist
if [ ! -d "$currDayBakDir" ]; then
mkdir "$currDayBakDir"
fi
cd "$currDayBakDir"
B2INSTANCE=db2inst1
export DB2INSTANCE
export PATH=$PATH:.$HOME/bin:/home/db2inst1/sqllib/bin
if [ -f /home/db2inst1/sqllib/db2profile ]
then
source /home/db2inst1/sqllib/db2profile
fi
echo "export database for ${schema} begin..."
/opt/ibm/db2/V9.7/bin/db2look -d "$database" -z "$schema" -e -o "$schema"_"$currDate".ddl -i "$userName" -w "$userPwd"
mkdir "$schema"
cd "$schema"
/opt/ibm/db2/V9.7/bin/db2move "$database" export -sn "$schema"
echo "export database for ${schema} end"
echo "tar dir"
cd "$dbbakDir"
tar -czvf "$currDate".tar.gz "$currDate"
rm -rf "$currDate"
echo "Congratulations,db2 auto backup success"
自行更改DB2备份文件的目录,如下所示:
dbbakDir="/home/db2inst1/dbbak"
自行更改数据库的数据库名称、库名称、用户、密码等,如下所示:
database="test_db"
schema="test_schema"
userName="test_user"
userPwd="test_userpwd"
记得给予执行权限chmod +x db2backup.sh
2、配置定时备份任务
crontab -e
00 23 * * * /home/db2inst1/db2backup.sh 2> /home/db2inst1/db2backup_err.log &
记得保存退出:ESC后,输入:wq
以上示例表示每天晚上23点开始全量备份数据库
检查是否已经纳入linux定时任务
crontab -l
3、验证是否生效
首先检查脚本是否可以正确执行和备份,可切换到目录/home/db2inst1下,直接执行db2backup.sh,检查是否有备份压缩文件输出。
预祝操作顺利,如有疑问,可在文章回复评论。
如果觉得好,下方请点赞。