DB2 HADR 单一备库搭建过程



DB2 HADR 单一备库搭建过程

环境:


服务器名                        操作系统版本                                                                                  IP            HADR端口        数据库实例名
主数据库服务器:Red Hat Enterprise Linux Server release 6.7 (Santiago)     172.16.115.244               65000                db2inst1
备数据库服务器:Red Hat Enterprise Linux Server release 6.7 (Santiago)     172.16.115.243               65000                db2inst1


1.创建HADR数据库HADRDB(主数据库服务器)
db2 create db HADRDB using codeset gbk territory CN collate using identity  


2.创建缓冲池,包括表缓冲池、索引缓冲池(主数据库服务器)。
db2 "create bufferpool TB_BP_32k size 2000 pagesize 32k"
db2 "create bufferpool IDX_BP_32k size 2000 pagesize 32k"


3.创建表表空间、索引表空间(主数据库服务器)。
db2 "create regular tablespace TB_TS pagesize 32k managed by database using(file '/db2/db2inst1/HADRDB/tablespaces/HADRDB' 10g) bufferpool TB_BP_32k"  
db2 "create regular tablespace IDX_TS pagesize 32k managed by database using(file '/db2/db2inst1/HADRDB/tablespaces/HADRDB_IDX' 4g) bufferpool IDX_BP_32k"  


4.创建HADR schema,并创建表(主数据库服务器)
db2 connect to HADRDB
db2 "create schema HADR"


set current schema HADR;
CREATE TABLE
   hadr_01
   (
       JRN_NO VARCHAR(18) NOT NULL,
       LOG_NO VARCHAR(20) DEFAULT '' NOT NULL,
       TX_CD VARCHAR(10) DEFAULT '' NOT NULL,
       TX_TYP VARCHAR(2) DEFAULT '03' NOT NULL,
       BUS_TYP VARCHAR(4) DEFAULT '' NOT NULL,
       TM_SMP VARCHAR(26) DEFAULT '' NOT NULL,
       CONSTRAINT PPDTJFCPCMBC_PK PRIMARY KEY (JRN_NO)
   ) IN "TB_TS" INDEX IN "IDX_TS";
       
5.检查创建的表是否正常(主数据库服务器). 
db2 "INSERT INTO HADR.hadr_01 (JRN_NO, LOG_NO, TX_CD, TX_TYP, BUS_TYP, TM_SMP) VALUES ('000000000000000001', '00000000000000000001', '交易码0001', '01', '0940', CURRENT TIMESTAMP)"
db2 "select * from HADR.hadr_01"


6.设置 HADRDB 为归档日志(主数据库服务器)
 

不然启动HADR 报错 SQL1768N  Unable to start HADR. Reason code = "1".


db2 "UPDATE DB CFG FOR HADRDB USING LOGARCHMETH1 DISK:/db2/db2inst1/HADRDB/log "
db2 "UPDATE DB CFG FOR HADRDB USING LOGINDEXBUILD ON"
db2 "UPDATE DB CFG FOR HADRDB USING INDEXREC RESTART"


7.备份HADRDB数据库(主数据库服务器).


db2 "backup db HADRDB to '/home/db2inst1/src' "


8.将数据库备份文件 sftp至备数据库 服务器(主数据库服务器)。


9.恢复数据库(备数据库 服务器)
db2 "restore db HADRDB"


10.主数据库HADR配置参数(主数据库服务器)


db2 "UPDATE DB CFG FOR HADRDB USING
     HADR_TARGET_LIST  172.16.115.243:65000
     HADR_REMOTE_HOST  172.16.115.243
     HADR_REMOTE_SVC   65000
     HADR_SYNCMODE     sync
     HADR_REMOTE_INST  db2inst1
     HADR_LOCAL_HOST   172.16.115.244
     HADR_LOCAL_SVC    65000"
     
11.主备数据库HADR配置参数(备数据库服务器)。


 db2 "UPDATE DB CFG FOR HADRDB USING
    HADR_TARGET_LIST   172.16.115.244:65000
    HADR_REMOTE_HOST   172.16.115.244
    HADR_REMOTE_SVC    65000
    HADR_LOCAL_HOST    172.16.115.243
    HADR_LOCAL_SVC     65000
    HADR_SYNCMODE      sync
 HADR_REMOTE_INST   db2inst1"


12.启动主备数据库HADR(备数据库服务器).

db2 START HADR ON DB HADRDB AS STANDBY 


13.启动主数据库HADR(主数据库服务器)。


db2 START HADR ON DB HADRDB AS PRIMARY 
注意:必须先启动备数据库 HADR.


14.启用备数据库 为只读模式(备数据库服务器)
在STANDBY端,设置以下DB2SET参数:
db2set DB2_STANDBY_ISO=UR
db2set DB2_HADR_ROS=ON
db2 TERMINATE
db2stop 
db2start


重启实例生效后,就可以在备数据库 端连接数据库,并进行只读查询操作。


15.测试主库、备库是否搭建成功。


在主库插入HADR_01一条记录:
db2 "INSERT INTO HADR.hadr_01 (JRN_NO, LOG_NO, TX_CD, TX_TYP, BUS_TYP, TM_SMP) VALUES ('000000000000000001', '00000000000000000001', '交易码0001', '01', '0940', CURRENT TIMESTAMP)"


在备数据库查询,若能查到该记录,并且不可删除就证明搭建成功。


在主、备库服务器上执行如下命令:
  db2 "select HADR_ROLE, STANDBY_ID, HADR_STATE, 
            varchar(PRIMARY_MEMBER_HOST,20) as PRIMARY_HOST, 
            varchar(STANDBY_MEMBER_HOST,20) as STANDBY_HOST 
      from table (mon_get_hadr(NULL))"


至此,一个完整的 HADR 单备机环境已经配置完成。






附件:
1. HADR接管方式
使用STANDBY数据库接管PRIMARY数据库
TAKEOVER HADR ON DATABASE DBNAME USER db2inst1 USING db2inst1;
以上接管方式只能在主、备数据库均正常的情况下使用


TAKEOVER HADR ON DATABASE DBNAME USER db2inst1 USING db2inst1 BY FORCE;
以上接管方式只能在主数据库出现故障的情况下使用




2.停止HADR
STOP HADR; 停止主数据库和备用数据库的HADR
  如果在活动的主数据库上发出此命令,所有的数据库连接都被断开,数据库恢复为标准数据库(没有启用HADR的数据库为标准数据库),并保持联机状态。
  如果在活动的备用数据库上发出此命令,将停止失败。必须先使用DEACTIVATE DATABASE命令取消激活,然后再停止HADR。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值