溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

db2V10.1中HADR一主多從搭建

發(fā)布時(shí)間:2020-07-29 16:19:37 來(lái)源:網(wǎng)絡(luò) 閱讀:647 作者:18620626259 欄目:關(guān)系型數(shù)據(jù)庫(kù)


在 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ī)。


向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI