Linux系統IBM DB2數據庫每日自動全量備份

目錄

 

場景:IBM DB數據庫已經運用於生產環境,需每天備份,防範於風險

說明:支持每天定時全量備份(包含DDL文件和數據表文件,可根據DB2命令分表導入),並自動壓縮文件

1、準備備份腳本SHELL文件

2、配置定時備份任務

3、驗證是否生效


 

場景: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,檢查是否有備份壓縮文件輸出。

預祝操作順利,如有疑問,可在文章回複評論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章