您好,登錄后才能下訂單哦!
在 HADR 多備機這一新的特性中,備機數據庫被分為兩類,
一類是主要備機(Principal Standby)
另一類是輔助備機(Auxiliary Standby)
一、目錄準備
mkdir -p /home/db2inst1/db2_backup
mkdir -p /home/db2inst1/db2_archive
mkdir -p /home/db2inst1/db2_log
chmod -R 775 /home/db2inst1/db2_backup
chmod -R 775 /home/db2inst1/db2_archive
chmod -R 775 /home/db2inst1/db2_log
chown -R db2inst1:db2inst1 /home/db2inst1/db2_backup
chown -R db2inst1:db2inst1 /home/db2inst1/db2_archive
chown -R db2inst1:db2inst1 /home/db2inst1/db2_log
二、設置歸檔和打開日志重建模式
db2 update db cfg for hadb using logarchmeth2 disk:/home/db2inst1/db2_archive/
db2 update db cfg for hadb using NEWLOGPATH /home/db2inst1/db2_log
三、備份歸檔
db2 force applications all
db2 backup db hadb to /home/db2inst1/db2_backup/
db2stop force;db2start
db2 archive log for db hadb
三、備份
db2 backup db hadb to /home/db2inst1/db2_backup/
scp /home/db2inst1/db2_backup/HADB.0.db2inst1.DBPART000.20180117141245.001 db2inst1@192.168.12.31:/home/db2inst1/db2_backup/
下面開始配置HADR
1.2.6備份和還原數據
主庫離線備份
db2 backup database hadb to /home/db2inst3/
備庫還原,
先還原主要主庫和輔助備庫1,留一個輔助備庫2做動態添加用
db2 restore database hadb from "/home/db2inst1/db2_backup/" taken at 20180117141245 replace history file
# 在 M5 上
db2 "UPDATE DB CFG FOR MYDB USING
HADR_TARGET_LIST M4:DB2_db2insta_2nd|M3:DB2_db2insta_pri
HADR_REMOTE_HOST M3
HADR_REMOTE_INST db2insta
HADR_REMOTE_SVC DB2_db2insta_pri
HADR_SYNCMODE superasync
HADR_LOCAL_HOST M5
HADR_LOCAL_SVC DB2_db2insta_3rd "
2.1.1配置主庫
db2 "UPDATE DB CFG FOR HADB USING
HADR_TARGET_LIST 192.168.12.31:55004|192.168.12.33:55005----主要備機ip和端口,輔助備機ip和端口
HADR_REMOTE_HOST 192.168.12.31-------主要備機ip和端口
HADR_REMOTE_SVC 55004----主要備機端口
HADR_SYNCMODE sync
HADR_REMOTE_INST db2inst1-----主要備機實例
HADR_LOCAL_HOST 192.168.12.30----主機的ip
HADR_LOCAL_SVC 55003"----主機端口
db2 "UPDATE DB CFG FOR mydb USING
HADR_TARGET_LIST 192.168.12.31:55004|192.168.12.33:55005
HADR_REMOTE_HOST 192.168.12.31
HADR_REMOTE_SVC 55004
HADR_SYNCMODE sync
HADR_REMOTE_INST db2inst1
HADR_LOCAL_HOST 192.168.12.30
HADR_LOCAL_SVC 55003"
2.1.2配置主要備機
# 在 M4 上
db2 "UPDATE DB CFG FOR MYDB USING
HADR_TARGET_LIST M3:DB2_db2insta_pri|M5:DB2_db2insta_3rd
HADR_REMOTE_HOST M3
HADR_REMOTE_INST db2insta
HADR_REMOTE_SVC DB2_db2insta_pri
HADR_SYNCMODE sync
HADR_LOCAL_HOST M4
HADR_LOCAL_SVC DB2_db2insta_2nd "
# 在 host2 上
db2 "UPDATE DB CFG FOR HADB USING
HADR_TARGET_LIST 192.168.12.30:55000|192.168.12.33:55003
HADR_REMOTE_HOST 192.168.12.30
HADR_REMOTE_SVC 55000
HADR_LOCAL_HOST 192.168.12.31
HADR_LOCAL_SVC 55001
HADR_SYNCMODE sync
HADR_REMOTE_INST db2inst1"
2.1.3配置輔助備機1
# 在 host3 上
db2 "UPDATE DB CFG FOR HADB USING
HADR_TARGET_LIST 192.168.12.31:55001|192.168.12.30:55000
HADR_REMOTE_HOST 192.168.12.30
HADR_REMOTE_SVC 55000
HADR_SYNCMODE superasync
HADR_REMOTE_INST db2inst1
HADR_LOCAL_HOST 192.168.12.33
HADR_LOCAL_SVC 55003"
2.2啟動HADR
2.2.1啟動主要備機
[db2inst3@kvm102 ~]$ db2 START HADR ON DB HADB AS STANDBY
DB20000I The START HADR ON DATABASE command completed successfully.
[db2inst3@kvm102 ~]$ db2pd -hadr -alldbs
2.2.2啟動輔助備機
2.2.3啟動主庫
db2 deactivate db hadb
db2 START HADR ON DB HADB AS PRIMARY
db2 deactivate db sample
db2 stop HADR ON DB HADB
關閉 HADR 對的建議順序
警告:
盡管可對主數據庫和/或備用數據庫使用 STOP HADR 命令來停止 HADR,但應謹慎使用。
如果要停止指定的數據庫,但仍然想保留其 HADR 主數據庫角色或備用數據庫角色,請不要發出 STOP HADR 命令。
如果發出 STOP HADR 命令,那么該數據庫將變為標準數據庫,并且可能需要重新初始化才能繼續作為 HADR 數據庫運行。請改為發出 DEACTIVATE DATABASE 命令。
如果只想關閉 HADR 操作,那么下面是關閉 HADR 對的建議方法:
取消激活主數據庫
對主數據庫停止 DB2
取消激活備用數據庫
對備用數據庫停止 DB2
啟動HADR,則剛好相反:
1、啟動備庫,備庫啟動后進入local catchup,remote catchup pending,會一直嘗試連接主庫。
2、啟動主庫,等待接收備庫的連接,如果在規定的時間(hadr_timeout)不能收到備庫的連接,則啟動失敗,這樣是為了防止腦裂 brain split.一旦備庫連接上主庫,
進入remote catchup狀態。重放完主庫傳過來的日志后,進入peer狀態。
四、主庫上執行
db2 "update db cfg for HADB using
HADR_TARGET_LIST 192.168.12.31:55001|192.168.12.32:55002----輔列表
HADR_REMOTE_HOST 192.168.12.31--------------------------------------主輔
HADR_REMOTE_SVC 55002
HADR_LOCAL_HOST 192.168.12.30---------------------------------------主庫
HADR_LOCAL_SVC 55001
HADR_SYNCMODE sync
HADR_REMOTE_INST db2inst1"
配置hosts和services文件
vi /etc/hosts
vi /etc/Services
DB2_HADR_A 55000/tcp
DB2_HADR_B 55001/tcp
DB2_HADR_C 55003/tcp
1、配置三個備機的ROS和UR隔離
db2set DB2_HADR_ROS=1
db2set DB2_STANDBY_ISO=UR
2、備機恢復HADB數據庫
db2 restore db HADB
ServerA :192.168.1.105 主機
ServerB: 192.168.1.106 主備
ServerD:192.168.1.104 輔備1
ServerE: 192.168.1.107 輔備2
主備庫上執行
注意第一個為主機IP地址,其次為輔備1的IP地址,輔備2的IP地址
db2 "update db cfg for HADB using HADR_TARGET_LIST 192.168.12.30:55001|192.168.12.32:55003
HADR_REMOTE_HOST 192.168.12.30-------------------------------------------------------------------主
HADR_REMOTE_SVC 55001
HADR_LOCAL_HOST 192.168.1.31---------------------------------------------------------------------輔
HADR_LOCAL_SVC 55002
HADR_SYNCMODE sync
HADR_REMOTE_INST db2inst1"
db2 "update db cfg for HADB using HADR_TARGET_LIST 192.168.12.30:55001|192.168.12.32:55003
HADR_REMOTE_HOST 192.168.12.30
HADR_REMOTE_SVC 55001
HADR_LOCAL_HOST 192.168.1.31
HADR_LOCAL_SVC 55002
HADR_SYNCMODE sync
HADR_REMOTE_INST db2inst1"
輔庫上執行
db2 "update db cfg for HADB using HADR_TARGET_LIST 192.168.12.31:55002|192.168.12.30:55001
HADR_REMOTE_HOST 192.168.12.30
HADR_REMOTE_SVC 55001
HADR_LOCAL_HOST 192.168.12.32
HADR_LOCAL_SVC 55003
HADR_SYNCMODE superasync
HADR_REMOTE_INST db2hadr"
狀態(State):HADR 當前的狀態。包括 Local Catchup、Remote Catchup、Remote Catchup Pending、Peer、Disconnect Peer。
Local Catchup: 如果備機在這種狀態下,表明備機這在從本地的磁盤上讀取日志文件,并且對日志進行重新重做;如果主機在這種狀態下,表明它正在等待備機的連接。HADR 的主機并沒有從本地讀日志并重做的過程,我們之所以讓主機顯示這個狀態,就是通過主機上的這個狀態告訴用戶,備機正在做本地日志的重做。
Remote Catchup: 處于這個狀態的 HADR 的主機正在從本地讀日志,并且將這些日志發送給備機;而備機會從主機接受日志,并且將這些日志寫入它本地的磁盤,并且對這些日志進行重做。
Remote Catchup Pending: 如果備機出于這種狀態,表明它正在嘗試連接主機。出現這種狀態,一般是因為主機不存在或者主機還沒有完全的啟動起來,導致連接沒有成功。
Peer: 如果 HADR 的主備機器處于這種狀態,表明主機和備機的網絡連接良好。日志可以順利的從主機發送到備機。
Disconnect Peer: 如果 HADR 的主備機器處于這種狀態,表明主機和備機的網絡已經斷開,但是連接斷開的時間并沒有超過 PEER_WINDOW。這個狀態內,主機上的事務不可以提交。如果這個時候網絡恢復,主機和備機重新建立連接,主備機器會重新回到 PEER 狀態;如果雙方進入這個狀態的原因是主機出現了故障,當在備機上做接管(takeover)操作時,不會發生數據丟失。就是說不會出現主機提交了某個事務,但是備機沒有提交這個事務的情況。
Disconnected: 如果主機處于這種狀態,表明主機沒有收到來自備機的連接。如果備機處于這種狀態,表明備機不能連接到主機。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。