目錄
場景: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,檢查是否有備份壓縮文件輸出。
預祝操作順利,如有疑問,可在文章回複評論。