配置 Db2 Warehouse HADR API

您可以在同一集群和同一 Red Hat® OpenShift® 项目中的数据库之间设置 Db2 Warehouse 高可用性灾难恢复 (HADR) 配置。

开始之前

  • 确保您具有可用于 HADR 设置的 etcd 端点(IP/名称和端口)。 请参阅 在 Db2 Warehouse中设置用于 HADR 的 etcd 存储器
  • 设置过程的一部分涉及在主数据库和备用数据库之间共享数据库备份镜像和 keystore tar 文件,如步骤 5 所述。 您可通过创建动态供应的持久卷来执行此步骤,也可通过使用 rsync 复制资产来执行。 如果要部署 Db2 Warehouse 以用于使用 HADR ,那么使用在主数据库和备用数据库之间共享的卷可能是有益的。 在这种情况下,您需要在部署 Db2 Warehouse创建卷 。 如果要在现有数据库上设置 HADR,那么最好使用 rsync。
  • 保留现有备份映像。
    要点: 启动 HADR 配置时,将删除 ${BACKUPDIR} 路径中的备份映像。 要保留现有备份映像,请将这些映像移至 ${BACKUPDIR}下的子目录。 例如,${BACKUPDIR}/backup_001

关于本任务

部署两个 Db2 Warehouse 服务之后,请执行以下步骤以使用 Db2 HADR API (通过使用 OpenShift 定制资源定义 (CRD) 实现) 来设置 HADR 配置。

注:
  • 此过程只能用于同一集群中同一 OpenShift 项目中的两个部署。
  • 此方法不能用于 IBM Cloud上的部署。 要配置 HADR ,请改为使用 HADR 脚本

过程

  1. 在其中一个主节点上为 HADR 定制资源定义创建 YAML 文件,并保存该文件,例如 /tmp/db2u_hadr.yaml

    以下示例显示了至少需要的字段。 您可以设置其他选项,请参阅 使用 Db2 Warehouse HADR API

    apiVersion: db2u.databases.ibm.com/v1alpha1
    kind: Db2uHadr
    metadata:
      name: example-hadr
    spec:
      primary:
        db2uName: "db2u-wh-1"
      standby:
        db2uName: "db2u-wh-2"
      etcd:
        name: "cloud-etc-svc"
        port: 3056
    您可以使用 oc get Db2uClusterDb2uInstance 命令获取 db2uClusterdb2uInstance 关键字的名称。
    注: 您可以在仅开发环境中排除 etcd 字段。 在这种情况下,HADR 设置使用主部署的内置 etcd。 请参阅 在 Db2 Warehouse中为 HADR 设置 etcd 存储 ,以了解有关此步骤的重要注意事项。
  2. 运行以下命令以创建 CRD。
    oc create -f /tmp/db2u_hadr.yaml
  3. 列示该 CRD:
    oc get Db2uHadr
  4. 使用以下命令来监视该 CRD 的状态:
    oc get db2uhadr db2u-wh-hadr -oyaml | awk '/^status:/,/hadrSettings:/'
    以下是示例状态:
    status:
      conditions:
      - lastTransitionTime: "2020-10-21T23:16:33Z"
        message: Creating Db2u HADR configuration file on Standby
        status: "False"
        type: Creating Db2u HADR configuration files
      - lastTransitionTime: "2020-10-21T23:17:37Z"
        message: Done
        status: "True"
        type: Setting up Primary database copy for HADR
    在看到类似状态消息后,继续执行下一步。
  5. 在主数据库与备用数据库之间共享数据库备份映像和密钥库 tar 文件。 您可通过两种方式执行此步骤:
    • 创建动态供应的持久卷

      这个卷在主数据库与备用数据库之间共享。 CRD 使用这个卷来共享数据库备份和密钥库 tar 文件。 有关详细信息,请参阅 通过将共享卷用于备份存储器来部署 Db2 Warehouse HADR 配置

    • 使用 rsync 将资产复制到备用部署

      type: Setting up Primary database copy for HADR 达到状态 "True"时,开始将备份映像和密钥库 tar 文件复制到备用部署上的备份目录中。

      例如,以下两个命令将主数据库上名为 /tmp/hadr 的主机上某个目录中的资产复制到备用数据库:

      oc rsync path_to_backup /tmp/hadr
      oc rsync /tmp/hadr/ path_to_backup

结果

当 CRD 状态阶段显示为 Completed 时,表明 HADR 设置已完成,自动客户机重新路由已启用,并且 HADR 已启动。

可以定期发出 oc get db2uhadr 命令来监视状态。 下列示例显示命令结果,然后显示 HADR 设置完成时的 CRD 状态:

NAME             HADR PRIMARY               HADR STANDBY               STATE      AGE
db2u-wh-hadr   db2u-wh-1                db2u-wh-1                Complete   7m8s
status:
  conditions:
  - lastTransitionTime: "2020-11-12T20:10:47Z"
    message: Creating Db2u HADR configuration file on Standby
    status: "False"
    type: Creating Db2u HADR configuration files
  - lastTransitionTime: "2020-11-12T20:12:54Z"
    message: Done
    status: "True"
    type: Enabling ACR feature for HADR
  - lastTransitionTime: "2020-11-12T20:12:56Z"
    message: Done
    status: "True"
    type: Setting up Db2u HADR completed
  - lastTransitionTime: "2020-11-12T20:11:33Z"
    message: Done
    status: "True"
    type: Setting up Primary database copy for HADR
  - lastTransitionTime: "2020-11-12T20:12:10Z"
    message: Done
    status: "True"
    type: Setting up Standby database copy for HADR
  - lastTransitionTime: "2020-11-12T20:12:46Z"
    message: Done
    status: "True"
    type: Starting HADR on the Primary database copy
  - lastTransitionTime: "2020-11-12T20:10:45Z"
    message: Setting up Db2u HADR completed
    status: "False"
    type: latestPhase
  hadrSettings: