为 EnterpriseDB (EDB) 订户节点配置 Oracle GoldenGate CDC 提取
在 EnterpriseDB (EDB) Postgres 双向复制环境中,Oracle GoldenGate CDC Extract 可以从仅专用订户节点(而不是直接从活动数据库节点)捕获更改。此部署模型可减少生产系统上的捕获工作量,同时为下游更改数据捕获提供合并源。有关 EnterpriseDB Postgres Distributed 中的双向复制的详细信息,请参见 Replication Sets 。
EnterpriseDB Postgres 的 Oracle GoldenGate 双向复制需要配置仅订户节点。仅订户节点基本上是下游复制节点或 CDC 聚合节点,接收来自活动双向数据源的更改并提供专用数据库,Oracle GoldenGate 可以从中捕获这些更改。
出于说明目的,仅订户节点称为主节点 3 ,活动双向数据源称为主节点 1 和主节点 2 。
下面是 Oracle GoldenGate CDC Extract 从仅订阅者节点 (主 3) 捕获的拓扑:
- Master 1 和 Master 2 是使用双向复制在主动 - 主动模式下配置的。
- 主记录 3 同时订阅了主记录 1 和主记录 2 。
- Oracle GoldenGate CDC Extract 仅在主节点 3 的仅订阅者节点上运行。
根据此拓扑,以下是每个节点的责任:
- Master 1 和 Master 2 :接受应用程序读写
- 主节点 3 :用于 Oracle GoldenGate CDC 提取的仅订户节点
虽然 Master 1 和 Master 2 节点接受来自应用程序的读取和写入,但 Master 3 旨在用作 Oracle GoldenGate CDC Extract 的仅订户节点。它包含源自活动节点的合并数据。
配置 Oracle GoldenGate CDC 提取以对订户节点执行操作
开始配置 CDC 提取之前,请考虑以下最佳做法:
- 在注册 Oracle GoldenGate CDC 提取之前,请确保已完全同步从主 1 和主 2 到主 3 的复制。
- 定期监视复制滞后(主到订户)和 CDC 提取滞后。
- 验证
WAL保留和复制插槽运行状况以防止数据丢失。
需要在订户节点和 Oracle GoldenGate 端执行以下步骤才能执行各种 DDL 和 DML 操作:
-
Peform DDL Operations :仅对主 1 和主 2 执行所有 DDL 语句。这些更改通过双向复制自动复制到主 3。
-
启用补充日志记录:成功复制 DDL 更改后,连接到主 3 并为所需的表运行 trandata 命令。这可以为所需的列启用补充日志记录,对于
UPDATE和DELETE操作,必须先捕获映像。 -
执行 DML 操作:仅对主 1 执行所有 DML 操作或主 2 执行所有 DML 操作。在开始任何 DML 活动之前,请确保已完全配置主 3。
-
设置复制插槽和发布:在 Master 3 上创建复制插槽和发布。
-
将表添加到发布:在执行任何 DML 操作之前,将所有必需的表添加到在主 3 上创建的发布。CDC 提取将仅捕获发布中包含的表。
注:确保未在主 1 和/或主 2 上创建发布。
-
注册并创建 CDC 提取:连接到主 3 并注册提取以在订户节点中创建复制插槽,然后添加 CDC 提取。有关为 PostgreSQL 注册 CDC 提取的步骤,请参阅从管理客户机为 PostgreSQL 注册提取。
注:确保提取未连接到主 1 或主 2 。
-
配置 CDC 提取:配置 CDC 提取以仅连接到主节点 3 或订户节点。在此拓扑中,提取不能直接连接到主 1 或主 2。
-
Configure Heartbeat (Optional,Recommended) :如果使用脉动功能:
a. 在主节点 1 或主节点 2 上创建心跳种子表。
b. 复制到 Master 3 后,将心跳表添加到 Master 3 上的发布。
c. 为 Oracle GoldenGate 中的 CDC 提取配置心跳,以保持 CDC 管道处于活动状态并监视延迟。
注:要在 Oracle GoldenGate 中为提取配置心跳功能,请参阅添加心跳表。另请参见《Oracle GoldenGate Command Line Reference 》指南中的 ADD HEARTBEATTABLE 。
-
Verify the Configured Processes (验证配置的进程):检查复制插槽、发布和 CDC 提取进程是否存在并且是否按预期工作。确保复制滞后和提取滞后正常。