升级后的步骤

了解不同升级方案的升级后任务。

在开始设置 Oracle GoldenGate 数据复制之前,必须完成多个升级后步骤。这些任务有:

升级心跳表

完成升级后,针对以前创建的任何源数据库和目标数据库运行 UPGRADE HEARTBEATTABLE 命令,为表和滞后视图添加额外的列。这些额外列用于跟踪提取的重新启动位置。要了解详细信息,请参见 UPGRADE HEARTBEATTABLE 。

Oracle GoldenGate for PostgreSQL 的升级提取

PostgreSQL 提供的 Oracle GoldenGate CDC Capture 支持依赖于使用 PostgreSQL 数据库上的复制插槽从 WAL 读取更改记录。每个 CDC 提取使用的复制插槽名称取决于 Oracle GoldenGate 安装路径。

您可能希望在升级后使用从现有 Oracle GoldenGate 环境提取的同一提取来继续捕获新 Oracle GoldenGate 环境中的更改记录,尽管提取直到升级时才完成捕获更改记录。但是,如果将新的 Oracle GoldenGate 安装目录用于升级,则无法执行此操作。必须使用现有的 Oracle GoldenGate 安装目录才能执行此操作。

要升级较旧的 Oracle GoldenGate 版本或从 Oracle GoldenGate Classic Architecture 迁移到微服务体系结构,请执行以下步骤:

注:以下步骤使用提取名称 extn 作为示例。

  1. 获取旧环境中 Oracle GoldenGate CDC 提取正在使用的复制插槽名称。可以使用提取报告文件或通过运行 INFO EXTRACT 命令获取旧的复制插槽名称。

    从较旧 Oracle GoldenGate 环境中的提取报表文件。以下是摘录报表文件中的示例片段:

    2024-01-09 11:49:38  INFO    OGG-25376  Oracle GoldenGate capture 'EXTN' running with replication slot 'ext1_5d87a7db5e810943', slot type 'logical', plugin name
    as 'test_decoding' attached with database 'postgres' with slot restart LSN as '6/3CBFE2B8', flush LSN as '6/3CBFE2F0' and its current TXID as '7899713'.

    请注意提取报告文件中的复制插槽名称。在此示例中为 extn_5d87a7db5e810943。

    您还可以在较旧的 Oracle GoldenGate 环境中从 GGSCI 或管理客户机运行 INFO EXTRACT 命令,如以下示例中所示:

    GGSCI (phoenix96567 as postgres@pg12) 10> info extract extn

    输出:

    Extract    EXT1      Last Started 2024-01-09 11:49   Status RUNNING
    Checkpoint Lag       00:00:45 (updated 00:00:01 ago)
    Process ID           3640439
    VAM Read Checkpoint  2024-01-09 11:48:52.575833
    Replication Slot     extn_5d87a7db5e810943 is active with PID 3640450 in database postgres
    Slot Restart LSN     6/3CBFE2B8
    Slot Flush LSN       6/3CBFE2F0
    Current Log Position 6/3CBFE2F0
  2. 在较新的 Oracle GoldenGate 环境中获取与 Oracle GoldenGate CDC 提取相关的复制插槽名称。运行 UNREGISTER EXTRACT 命令以获取新的复制插槽名称:

    unregister extract extn

    输出:

    2024-01-09 11:43:37  INFO    OGG-25354  The replication slot 'extn_6ec0db7cc27c812' for group 'EXTN' does not exist in database 'postgres'.

    记下错误消息中的复制插槽名称。在本例中,它是 extn_6ec0db7cc27c812。

  3. 对相应的源 PostgreSQL 数据库运行以下 SQL 查询(可以使用 PSQL):

    SELECT * FROM pg_copy_logical_replication_slot('*old-replication-slot*', '*new-replication-slot*');

    例如:

    SELECT * FROM pg_copy_logical_replication_slot('extn_5d87a7db5e810943', 'extn_6ec0db7cc27c812');
  4. 确保将提取检查点文件、线索文件和其他配置文件从旧 Oracle GoldenGate 环境复制到新环境。

  5. 检查并确认 new-replication-slot 的 LSN Postitions 与 old-replication-slot 相同。

  6. 在旧的 Oracle GoldenGate 环境中运行 UNREGISTER EXTRACT extract_name 命令。例如:

    UNREGISTER EXTRACT extn
  7. 在新的 Oracle GoldenGate 环境中启动提取以继续捕获更改记录。