您好,登錄后才能下訂單哦!
在 HADR 多備機(jī)這一新的特性中,備機(jī)數(shù)據(jù)庫(kù)被分為兩類(lèi),
一類(lèi)是主要備機(jī)(Principal Standby)
另一類(lèi)是輔助備機(jī)(Auxiliary Standby)
一、目錄準(zhǔn)備
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
二、設(shè)置歸檔和打開(kāi)日志重建模式
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/
下面開(kāi)始配置HADR
1.2.6備份和還原數(shù)據(jù)
主庫(kù)離線備份
db2 backup database hadb to /home/db2inst3/
備庫(kù)還原,
先還原主要主庫(kù)和輔助備庫(kù)1,留一個(gè)輔助備庫(kù)2做動(dòng)態(tài)添加用
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配置主庫(kù)
db2 "UPDATE DB CFG FOR HADB USING
HADR_TARGET_LIST 192.168.12.31:55004|192.168.12.33:55005----主要備機(jī)ip和端口,輔助備機(jī)ip和端口
HADR_REMOTE_HOST 192.168.12.31-------主要備機(jī)ip和端口
HADR_REMOTE_SVC 55004----主要備機(jī)端口
HADR_SYNCMODE sync
HADR_REMOTE_INST db2inst1-----主要備機(jī)實(shí)例
HADR_LOCAL_HOST 192.168.12.30----主機(jī)的ip
HADR_LOCAL_SVC 55003"----主機(jī)端口
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配置主要備機(jī)
# 在 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配置輔助備機(jī)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啟動(dòng)HADR
2.2.1啟動(dòng)主要備機(jī)
[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啟動(dòng)輔助備機(jī)
2.2.3啟動(dòng)主庫(kù)
db2 deactivate db hadb
db2 START HADR ON DB HADB AS PRIMARY
db2 deactivate db sample
db2 stop HADR ON DB HADB
關(guān)閉 HADR 對(duì)的建議順序
警告:
盡管可對(duì)主數(shù)據(jù)庫(kù)和/或備用數(shù)據(jù)庫(kù)使用 STOP HADR 命令來(lái)停止 HADR,但應(yīng)謹(jǐn)慎使用。
如果要停止指定的數(shù)據(jù)庫(kù),但仍然想保留其 HADR 主數(shù)據(jù)庫(kù)角色或備用數(shù)據(jù)庫(kù)角色,請(qǐng)不要發(fā)出 STOP HADR 命令。
如果發(fā)出 STOP HADR 命令,那么該數(shù)據(jù)庫(kù)將變?yōu)闃?biāo)準(zhǔn)數(shù)據(jù)庫(kù),并且可能需要重新初始化才能繼續(xù)作為 HADR 數(shù)據(jù)庫(kù)運(yùn)行。請(qǐng)改為發(fā)出 DEACTIVATE DATABASE 命令。
如果只想關(guān)閉 HADR 操作,那么下面是關(guān)閉 HADR 對(duì)的建議方法:
取消激活主數(shù)據(jù)庫(kù)
對(duì)主數(shù)據(jù)庫(kù)停止 DB2
取消激活備用數(shù)據(jù)庫(kù)
對(duì)備用數(shù)據(jù)庫(kù)停止 DB2
啟動(dòng)HADR,則剛好相反:
1、啟動(dòng)備庫(kù),備庫(kù)啟動(dòng)后進(jìn)入local catchup,remote catchup pending,會(huì)一直嘗試連接主庫(kù)。
2、啟動(dòng)主庫(kù),等待接收備庫(kù)的連接,如果在規(guī)定的時(shí)間(hadr_timeout)不能收到備庫(kù)的連接,則啟動(dòng)失敗,這樣是為了防止腦裂 brain split.一旦備庫(kù)連接上主庫(kù),
進(jìn)入remote catchup狀態(tài)。重放完主庫(kù)傳過(guò)來(lái)的日志后,進(jìn)入peer狀態(tài)。
四、主庫(kù)上執(zhí)行
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---------------------------------------主庫(kù)
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、配置三個(gè)備機(jī)的ROS和UR隔離
db2set DB2_HADR_ROS=1
db2set DB2_STANDBY_ISO=UR
2、備機(jī)恢復(fù)HADB數(shù)據(jù)庫(kù)
db2 restore db HADB
ServerA :192.168.1.105 主機(jī)
ServerB: 192.168.1.106 主備
ServerD:192.168.1.104 輔備1
ServerE: 192.168.1.107 輔備2
主備庫(kù)上執(zhí)行
注意第一個(gè)為主機(jī)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"
輔庫(kù)上執(zhí)行
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"
狀態(tài)(State):HADR 當(dāng)前的狀態(tài)。包括 Local Catchup、Remote Catchup、Remote Catchup Pending、Peer、Disconnect Peer。
Local Catchup: 如果備機(jī)在這種狀態(tài)下,表明備機(jī)這在從本地的磁盤(pán)上讀取日志文件,并且對(duì)日志進(jìn)行重新重做;如果主機(jī)在這種狀態(tài)下,表明它正在等待備機(jī)的連接。HADR 的主機(jī)并沒(méi)有從本地讀日志并重做的過(guò)程,我們之所以讓主機(jī)顯示這個(gè)狀態(tài),就是通過(guò)主機(jī)上的這個(gè)狀態(tài)告訴用戶(hù),備機(jī)正在做本地日志的重做。
Remote Catchup: 處于這個(gè)狀態(tài)的 HADR 的主機(jī)正在從本地讀日志,并且將這些日志發(fā)送給備機(jī);而備機(jī)會(huì)從主機(jī)接受日志,并且將這些日志寫(xiě)入它本地的磁盤(pán),并且對(duì)這些日志進(jìn)行重做。
Remote Catchup Pending: 如果備機(jī)出于這種狀態(tài),表明它正在嘗試連接主機(jī)。出現(xiàn)這種狀態(tài),一般是因?yàn)橹鳈C(jī)不存在或者主機(jī)還沒(méi)有完全的啟動(dòng)起來(lái),導(dǎo)致連接沒(méi)有成功。
Peer: 如果 HADR 的主備機(jī)器處于這種狀態(tài),表明主機(jī)和備機(jī)的網(wǎng)絡(luò)連接良好。日志可以順利的從主機(jī)發(fā)送到備機(jī)。
Disconnect Peer: 如果 HADR 的主備機(jī)器處于這種狀態(tài),表明主機(jī)和備機(jī)的網(wǎng)絡(luò)已經(jīng)斷開(kāi),但是連接斷開(kāi)的時(shí)間并沒(méi)有超過(guò) PEER_WINDOW。這個(gè)狀態(tài)內(nèi),主機(jī)上的事務(wù)不可以提交。如果這個(gè)時(shí)候網(wǎng)絡(luò)恢復(fù),主機(jī)和備機(jī)重新建立連接,主備機(jī)器會(huì)重新回到 PEER 狀態(tài);如果雙方進(jìn)入這個(gè)狀態(tài)的原因是主機(jī)出現(xiàn)了故障,當(dāng)在備機(jī)上做接管(takeover)操作時(shí),不會(huì)發(fā)生數(shù)據(jù)丟失。就是說(shuō)不會(huì)出現(xiàn)主機(jī)提交了某個(gè)事務(wù),但是備機(jī)沒(méi)有提交這個(gè)事務(wù)的情況。
Disconnected: 如果主機(jī)處于這種狀態(tài),表明主機(jī)沒(méi)有收到來(lái)自備機(jī)的連接。如果備機(jī)處于這種狀態(tài),表明備機(jī)不能連接到主機(jī)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。