1.系统环境准备,db02作为primary节点,db03作为standby节点
[db2inst1@db02 archivelog]$ cat /etc/hostshttps://www.cndba.cn/hbhe0316/article/4818
https://www.cndba.cn/hbhe0316/article/4818
192.168.2.167 db02
192.168.2.163 db03
2.创建主库并插入表
db2 "CREATE DB testdb on /db2data/testdb using codeset UTF-8 territory us PAGESIZE 8192"
db2 "UPDATE DB CFG FOR testdb USING applheapsz 4096"
db2 "UPDATE DB CFG FOR testdb USING app_ctl_heap_sz 1024"
db2 "UPDATE DB CFG FOR testdb USING stmtheap 32768"
db2 "UPDATE DB CFG FOR testdb USING dbheap 2400"
db2 "UPDATE DB CFG FOR testdb USING locklist 1000"
db2 "UPDATE DB CFG FOR testdb USING logfilsiz 4000"
db2 "UPDATE DB CFG FOR testdb USING logprimary 12"
db2 "UPDATE DB CFG FOR testdb USING logsecond 20"
db2 "UPDATE DB CFG FOR testdb USING logbufsz 32"
db2 "UPDATE DB CFG FOR testdb USING avg_appls 5"
db2 "UPDATE DB CFG FOR testdb USING locktimeout 30"
db2 "UPDATE DB CFG FOR testdb using AUTO_MAINT off"
db2 "UPDATE DB CFG FOR TESTDB USING LOGINDEXBUILD ON LOGARCHMETH1 logretain"
db2 "update db cfg for testdb using trackmod on"
db2 "update db cfg for testdb using indexrec restart"
db2 "update db cfg for testdb using HADR_LOCAL_HOST 192.168.2.167"
db2 "update db cfg for testdb using HADR_LOCAL_SVC 54321"
db2 "update db cfg for testdb using HADR_REMOTE_HOST 192.168.2.163"
db2 "update db cfg for testdb using HADR_REMOTE_SVC 54321"
db2 "update db cfg for testdb using HADR_REMOTE_INST db2inst1"
db2 "update db cfg for testdb using HADR_TIMEOUT 120"
db2 "update db cfg for testdb using HADR_PEER_WINDOW 10"
db2 "update db cfg for testdb using HADR_SYNCMODE sync"
3.备份主库并传送至备库
[db2inst1@db02 testdb]$ db2 backup db testdb to /db2data/backup/
[db2inst1@db02 backup]$ cd /db2data/backup
[db2inst1@db02 backup]$ scp TESTDB.0.db2inst1.DBPART000.20190811162133.001 192.168.2.163:/db2data/backup/
4.恢复备库,在备库执行https://www.cndba.cn/hbhe0316/article/4818
[db2inst1@db03 backup]$ db2 restore db testdb from /db2data/backup/
5.修改备库hadr参数
https://www.cndba.cn/hbhe0316/article/4818
db2 "update db cfg for testdb using HADR_LOCAL_HOST 192.168.2.163"
db2 "update db cfg for testdb using HADR_REMOTE_HOST 192.168.2.167"
6.修改hadr_target_list
主库执行
db2 "UPDATE DB CFG FOR TESTDB USING HADR_TARGET_LIST 192.168.2.163:54321"
备库执行
db2 "UPDATE DB CFG FOR TESTDB USING HADR_TARGET_LIST 192.168.2.167:54321"
7.备机启动HADR
https://www.cndba.cn/hbhe0316/article/4818
https://www.cndba.cn/hbhe0316/article/4818
[db2inst1@db03 backup]$ db2 START HADR ON DB TESTDB AS STANDBY
DB20000I The START HADR ON DATABASE command completed successfully.
8.在主库启动HADR
https://www.cndba.cn/hbhe0316/article/4818
[db2inst1@db02 backup]$ db2 START HADR ON DB TESTDB AS PRIMARY
DB20000I The START HADR ON DATABASE command completed successfully.
9.在主机检查主备机状态https://www.cndba.cn/hbhe0316/article/4818
[db2inst1@db02 backup]$ db2pd -db testdb -hadr
Database Member 0 -- Database TESTDB -- Active -- Up 0 days 00:01:02 -- Date 2019-08-11-17.00.43.510622
HADR_ROLE = PRIMARY
REPLAY_TYPE = PHYSICAL
HADR_SYNCMODE = SYNC
STANDBY_ID = 1
LOG_STREAM_ID = 0
HADR_STATE = PEER
HADR_FLAGS =
PRIMARY_MEMBER_HOST = 192.168.2.167
PRIMARY_INSTANCE = db2inst1
PRIMARY_MEMBER = 0
STANDBY_MEMBER_HOST = 192.168.2.163
STANDBY_INSTANCE = db2inst1
STANDBY_MEMBER = 0
HADR_CONNECT_STATUS = CONNECTED
HADR_CONNECT_STATUS_TIME = 08/11/2019 16:59:44.003073 (1565513984)
HEARTBEAT_INTERVAL(seconds) = 2
HADR_TIMEOUT(seconds) = 120
TIME_SINCE_LAST_RECV(seconds) = 30
PEER_WAIT_LIMIT(seconds) = 0
LOG_HADR_WAIT_CUR(seconds) = 0.000
LOG_HADR_WAIT_RECENT_AVG(seconds) = 0.000000
LOG_HADR_WAIT_ACCUMULATED(seconds) = 0.000
LOG_HADR_WAIT_COUNT = 0
SOCK_SEND_BUF_REQUESTED,ACTUAL(bytes) = 0, 19800
SOCK_RECV_BUF_REQUESTED,ACTUAL(bytes) = 0, 87380
PRIMARY_LOG_FILE,PAGE,POS = S0000000.LOG, 0, 40760001
STANDBY_LOG_FILE,PAGE,POS = S0000000.LOG, 0, 40760001
HADR_LOG_GAP(bytes) = 0
STANDBY_REPLAY_LOG_FILE,PAGE,POS = S0000000.LOG, 0, 40760001
STANDBY_RECV_REPLAY_GAP(bytes) = 4069492
PRIMARY_LOG_TIME = 08/11/2019 16:53:24.000000 (1565513604)
STANDBY_LOG_TIME = 08/11/2019 16:53:24.000000 (1565513604)
STANDBY_REPLAY_LOG_TIME = 08/11/2019 16:53:24.000000 (1565513604)
STANDBY_RECV_BUF_SIZE(pages) = 64
STANDBY_RECV_BUF_PERCENT = 0
STANDBY_SPOOL_LIMIT(pages) = 128000
STANDBY_SPOOL_PERCENT = 0
PEER_WINDOW(seconds) = 10
PEER_WINDOW_END = 08/11/2019 17:00:52.000000 (1565514052)
READS_ON_STANDBY_ENABLED = N
10.在备机执行命令
[db2inst1@db03 backup]$ db2pd -db testdb -hadr
Database Member 0 -- Database TESTDB -- Standby -- Up 0 days 00:02:43 -- Date 2019-08-11-17.01.37.581033
HADR_ROLE = STANDBY
REPLAY_TYPE = PHYSICAL
HADR_SYNCMODE = SYNC
STANDBY_ID = 0
LOG_STREAM_ID = 0
HADR_STATE = PEER
HADR_FLAGS =
PRIMARY_MEMBER_HOST = 192.168.2.167
PRIMARY_INSTANCE = db2inst1
PRIMARY_MEMBER = 0
STANDBY_MEMBER_HOST = 192.168.2.163
STANDBY_INSTANCE = db2inst1
STANDBY_MEMBER = 0
HADR_CONNECT_STATUS = CONNECTED
HADR_CONNECT_STATUS_TIME = 08/11/2019 16:59:43.802864 (1565513983)
HEARTBEAT_INTERVAL(seconds) = 30
HADR_TIMEOUT(seconds) = 120
TIME_SINCE_LAST_RECV(seconds) = 2
PEER_WAIT_LIMIT(seconds) = 0
LOG_HADR_WAIT_CUR(seconds) = 0.000
LOG_HADR_WAIT_RECENT_AVG(seconds) = 0.000000
LOG_HADR_WAIT_ACCUMULATED(seconds) = 0.000
LOG_HADR_WAIT_COUNT = 0
SOCK_SEND_BUF_REQUESTED,ACTUAL(bytes) = 0, 19800
SOCK_RECV_BUF_REQUESTED,ACTUAL(bytes) = 0, 87380
PRIMARY_LOG_FILE,PAGE,POS = S0000000.LOG, 0, 40760001
STANDBY_LOG_FILE,PAGE,POS = S0000000.LOG, 0, 40760001
HADR_LOG_GAP(bytes) = 0
STANDBY_REPLAY_LOG_FILE,PAGE,POS = S0000000.LOG, 0, 40760001
STANDBY_RECV_REPLAY_GAP(bytes) = 4069492
PRIMARY_LOG_TIME = 08/11/2019 16:53:24.000000 (1565513604)
STANDBY_LOG_TIME = 08/11/2019 16:53:24.000000 (1565513604)
STANDBY_REPLAY_LOG_TIME = 08/11/2019 16:53:24.000000 (1565513604)
STANDBY_RECV_BUF_SIZE(pages) = 64
STANDBY_RECV_BUF_PERCENT = 0
STANDBY_SPOOL_LIMIT(pages) = 128000
STANDBY_SPOOL_PERCENT = 0
PEER_WINDOW(seconds) = 10
PEER_WINDOW_END = 08/11/2019 17:01:46.000000 (1565514106)
READS_ON_STANDBY_ENABLED = N
11.备机接管主机
[db2inst1@db03 backup]$ db2 "TAKEOVER HADR ON DATABASE testdb USER db2inst1 USING wwwwww"
DB20000I The TAKEOVER HADR ON DATABASE command completed successfully.
这样原来的备机变成主机,主机变成备机。
https://www.cndba.cn/hbhe0316/article/4818
12.强制接管
强制接管条件:当主机数据库崩溃,需要备机强制接管成为主机,备机成为主机后,需要手动的备份数据库,再恢复到已经崩溃的数据库中。
https://www.cndba.cn/hbhe0316/article/4818
db2 "TAKEOVER HADR ON DATABASE testdb USER db2inst1 USING wwwwww by force"
版权声明:本文为博主原创文章,未经博主允许不得转载。
Linux,oracle