示例:在多个 OpenShift 集群中设置 Db2 Warehouse HADR

此示例在同一集群内的同一个 OpenShift 项目中具有一个主数据库和一个主体备用数据库,在另一个 OpenShift 集群(灾难站点)中具有一个辅助备用数据库。

通过使用确定 Db2 WarehouseNodePorts 进行多集群配置 ,示例中每个数据库的端口如下:

  • 主数据库:32457
  • 备用数据库:31384
  • Aux1:32649

要为不同 OpenShift 集群中的数据库设置 HADR:

  1. 在主数据库 Db2 Warehouse pod 上运行以下命令以调用脚本 setup_config_hadr
    oc exec -it c-db2wh-primary-db2u-0 -- setup_config_hadr --db-role primary --primary-name db2wh-primary --standby-name db2wh-standby --primary-port 32457 --standby-port 31384 --aux1-name db2wh-aux --aux1-port 32649 --etcd-host my-etcd-client.my-etcd --etcd-port 2379 --multicluster

    该命令的输出包含 HADR 配置设置:

    ################################################################################
    ###        Creating HADR configuration file for HADR setup.                  ###
    ################################################################################
    
        Database role -- primary
        primary database formation_id -- db2wh-primary
    
    HADR_REMOTE_INST db2inst1
    HADR_TIMEOUT 120
    HADR_SYNCMODE NEARSYNC
    HADR_PEER_WINDOW 120
    LOGINDEXBUILD ON
    HADR_LOCAL_HOST c-db2wh-primary-db2u-0|c-db2wh-standby-hadr-svc-ext
    HADR_LOCAL_SVC 60006|32457
    HADR_REMOTE_HOST c-db2wh-standby-hadr-svc-ext
    HADR_REMOTE_SVC 31384
    HADR_TARGET_LIST c-db2wh-standby-hadr-svc-ext:31384|c-db2wh-aux-hadr-svc-ext:32649
    etcd: my-etcd-client.my-etcd:2379

    如果设置成功,那么在脚本输出末尾会显示以下消息:

    ################################################################################
    ###        The HADR setup command completed the primary node setup.          ###
    ################################################################################
    
  2. 使用 rsync 将备份存储区 (/mnt/backup/) 中的数据库备份映像和密钥库文件从主数据库复制到备用数据库。 此处需要执行额外的步骤以从 Cluster1(主数据库所在的位置)复制到 Cluster2(辅助备用数据库所在的位置)。

    将主数据库中的内容复制到主机上名为 的目录 /tmp/hadr中。

    oc rsync c-db2wh-primary-db2u-0:/mnt/backup/ /tmp/hadr

    将主机上的目录 /tmp/hadr 复制到主备用数据库。

    oc rsync /tmp/hadr/ c-db2wh-standby-db2u-0:/mnt/backup/ 

    然后,将 Cluster1/tmp/hadr/ 复制到 Cluster2。

    oc rsync /tmp/hadr/ c-db2wh-aux-db2u-0:/mnt/backup/ 
  3. 在主备用数据库 Db2 Warehouse pod 上运行以下命令以调用脚本 setup_config_hadr
    oc exec -it c-db2wh-standby-db2u-0 -- setup_config_hadr --db-role standby --primary-name db2wh-primary --standby-name db2wh-standby --primary-port 32457 --standby-port 31384 --aux1-name db2wh-aux --aux1-port 32649 --etcd-host my-etcd-client.my-etcd --etcd-port 2379 --multicluster

    此命令的输出:

    ################################################################################
    ###        Creating HADR configuration file for HADR setup.                  ###
    ################################################################################
    
        Database role -- standby
        primary database formation_id -- db2wh-standby
    
    HADR_REMOTE_INST db2inst1
    HADR_TIMEOUT 120
    HADR_SYNCMODE NEARSYNC
    HADR_PEER_WINDOW 120
    LOGINDEXBUILD ON
    HADR_LOCAL_HOST c-db2wh-standby-db2u-0|c-db2wh-primary-hadr-svc-ext
    HADR_LOCAL_SVC 60007|31384
    HADR_REMOTE_HOST c-db2wh-primary-hadr-svc-ext
    HADR_REMOTE_SVC 32457
    HADR_TARGET_LIST c-db2wh-primary -hadr-svc-ext:32457|c-db2wh-aux-hadr-svc-ext:32649
    etcd: my-etcd-client.my-etcd:2379
    
  4. 在辅助备用数据库 Db2 Warehouse pod 上运行以下命令以调用脚本 setup_config_hadr
    oc exec -it c-db2wh-aux-db2u-0 -- setup_config_hadr --db-role aux1 --primary-name db2wh-primary --standby-name db2wh-standby --primary-port 32457 --standby-port 31384 --aux1-name db2wh-aux --aux1-port 32649 --etcd-host my-etcd-client.my-etcd --etcd-port 2379 --multicluster

    此命令的输出:

    ################################################################################
    ###        Creating HADR configuration file for HADR setup.                  ###
    ################################################################################
    
        Database role -- aux1
        primary database formation_id -- db2wh-aux
    
    HADR_REMOTE_INST db2inst1
    HADR_TIMEOUT 120
    HADR_SYNCMODE NEARSYNC
    HADR_PEER_WINDOW 120
    LOGINDEXBUILD ON
    HADR_LOCAL_HOST c-db2wh-aux-db2u-0|c-db2wh-aux-hadr-svc-ext
    HADR_LOCAL_SVC 60008|32649
    HADR_REMOTE_HOST c-db2wh-primary-hadr-svc-ext
    HADR_REMOTE_SVC 32457
    HADR_TARGET_LIST c-db2wh-standby-hadr-svc-ext:31384|c-db2wh-primary-hadr-svc-ext:32457
    etcd: my-etcd-client.my-etcd:2379