升级后的步骤
了解不同升级方案的升级后任务。
在开始设置 Oracle GoldenGate 数据复制之前,必须完成多个升级后步骤。这些任务有:
-
升级心跳表
-
(仅限 Oracle GoldenGate for PostgreSQL)升级 PostgreSQL 提取。
升级心跳表
完成升级后,针对以前创建的任何源数据库和目标数据库运行 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 作为示例。
-
获取旧环境中 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 -
在较新的 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。 -
对相应的源 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'); -
确保将提取检查点文件、线索文件和其他配置文件从旧 Oracle GoldenGate 环境复制到新环境。
-
检查并确认
new-replication-slot的 LSN Postitions 与old-replication-slot相同。 -
在旧的 Oracle GoldenGate 环境中运行
UNREGISTER EXTRACT extract_name命令。例如:UNREGISTER EXTRACT extn -
在新的 Oracle GoldenGate 环境中启动提取以继续捕获更改记录。