支持使用 PostgreSQL 17 及更高版本运行 Oracle GoldenGate

了解如何使用 PostgreSQL 17 及更高版本为 Oracle GoldenGate 配置故障转移。

PostgreSQL 17 引入了对主服务器和备用服务器之间逻辑复制插槽自动同步的支持。与 Oracle GoldenGate 结合使用时,此功能可实现提取进程的无缝故障转移,而无需手动重新创建复制插槽。

此功能可确保连续数据复制,并在故障转移事件期间尽可能减少中断。

为 Oracle GoldenGate 启用 PostgreSQL 17 及更高版本的故障转移支持的先决条件

启用故障转移支持之前,请确保以下各项:

配置故障转移支持

通过在 PostgreSQL 主服务器和备用服务器上执行以下任务,然后在 Oracle GoldenGate 提取端配置故障转移支持。

  1. 配置 PostgreSQL 主服务器和备用服务器。

    在主服务器上:更新 PostgreSQL 配置参数:

    wal_level = logical
    max_replication_slots = *sufficient_value*
    sync_replication_slots = on
    synchronized_standby_slots = '*standby_slot_name*'

    在备用服务器上

    更新配置参数:

    hot_standby_feedback = on
    primary_slot_name = '*primary_physical_slot*'
  2. 更新配置后,在主服务器和备用服务器上重新启动 PostgreSQL。

  3. 注册提取进程时启用故障转移插槽支持。

    使用 Oracle GoldenGate Web 界面

    为 PostgreSQL 创建提取时,启用故障转移复制插槽切换开关:

    启用 "Failover Replication Slots" 切换开关。

    使用 AdminClient

    REGISTER EXTRACT *extract_name* FAILOVERSLOT;

    使用 REST API

    POST /services/v2/extracts/AT
    {
        "credentials": {
            "alias": "fail1"
        },
        "registration": "default",
        "failoverSlot": true
    }
  4. 验证 PostgreSQL 主服务器和备用服务器上的配置:

    在主服务器上:运行以下查询:

    SELECT slot_name, slot_type, failover
    FROM pg_replication_slots;

    输出应显示:

    • 插槽类型为 logical

    • failover 设置为 true

    在备用服务器上:运行以下查询:

    SELECT slot_name, restart_lsn
    FROM pg_replication_slots;

    输出应显示:

    • 备用数据库上存在相同的插槽

    • LSN 值正在进行中

  5. 通过执行以下步骤执行故障转移:

    1. 使用配置的高可用性机制将备用服务器提升为主服务器。

    2. 更新提取配置以连接到新的主数据库。

    3. 启动或恢复“提取”处理。

    复制从上次处理的位置继续,无需重新初始化。

  6. 监视复制插槽状态:

    SELECT slot_name, active, restart_lsn
    FROM pg_replication_slots;

    请确认以下几点:

    • 插槽处于活动状态

    • 正在推进重新启动 LSN

    • 无过多的 WAL 积累

  7. 删除未使用的复制插槽有助于防止过多的 WAL 保留和磁盘使用。

    SELECT pg_drop_replication_slot('*slot_name*');

故障转移支持配置的最佳实践

要使用 Oracle GoldenGate Extract for PostgreSQL 配置故障转移支持,请考虑以下最佳做法:

限制

云特定的准则