使用初始加载提取的 PostgreSQL 的精确实例化
可以通过使用精确实例化的可选方法来完成从源 PostgreSQL 数据库到 Oracle GoldenGate 目标的数据同步。此方法是在 Oracle GoldenGate 21c (21.8.0) 中引入的。
精确实例化的优点是无需在目标复制中执行任何碰撞处理。这对于不支持碰撞处理的目标(如平面文件)非常重要。此方法使用数据库快照将初始加载提取的输出与更改数据捕获提取的起始位置同步。此快照由初始加载提取管理,因此多个初始加载提取无法使用同一快照。因此,使用多个初始加载提取并行化工作量时,不支持此方法。
以下示例使用微服务体系结构中的管理客户机。假设您熟悉 Oracle GoldenGate,并且已正确设置源数据库和目标数据库,并具备所有必需的先决条件。这些步骤至少需要 Oracle GoldenGate 21c (21.8.0) 或更高版本。
执行以下步骤,使用精确的实例化方法设置端到端初始加载和同步流程:
-
使用源 PostgreSQL 数据库注册更改数据捕获 (Change Data Capture,CDC) 提取。
DBLOGIN USERIDALIAS src_alias REGISTER EXTRACT extecdc在此示例中,
extecdc是提取名称。对于微服务体系结构,请使用DBLOGIN USERIDALIAS进行数据库连接设置。 -
创建初始加载提取。
ADD EXTRACT extinit, SOURCEISTABLE EDIT PARAMS extinit初始装入提取参数文件必须包含
INITIALLOADOPTIONS USESNAPSHOT参数。例如:EXTRACT extinit INITIALLOADOPTIONS USESNAPSHOT SOURCEDB USERIDALIAS src_alias EXTFILE west/ei, MEGABYTES 500, PURGE TABLE public.*;请参见
INITIALLOADOPTIONS以了解此参数与USESNAPSHOT选项的用法。 -
启动初始加载提取。
START EXTRACT extinit -
初始加载提取完成并停止后,检查其报告文件以确定 CDC 提取要使用的定位 LSN。
例如,在以下输出中,CDC Extract 将使用的定位 LSN 将为 "0/173F770"。
INFO OGG-100001 A consistent point is established in database 'tpcc' using replication slot ogg_initx_1234 at LSN 0/173F770 and snapshot name '00000003-00000026-1'.INFO OGG-100002 Create or position the CDC extract to LSN 0/173F770. Example: ADD EXTRACT <cdc-extract> TRANLOG LSN 0/173F770 or ALTER EXTRACT <cdc-extract> LSN 0/173F770. -
创建并启动从初始加载提取读取线索的初始加载复制。
DBLOGIN USERIDALIAS tgt_aliasADD CHECKTPOINTTABLE ggs.checkpointADD REPLICAT repinit, EXTTRAIL west/ei, CHECKPOINTTABLE ggs.ggcheckpointSTART REPLICAT repinit下面是初始装入复制参数文件的示例:
REPLICAT repinit TARGETDB USERIDALIAS tgt_alias BATCHSQL MAP public.*, TARGET public.*; -
使用初始加载提取报告文件中引用的一致 LSN 值添加并启动 CDC 提取 (
extecdc)。ADD EXTRACT extecdc, TRANLOG, LSN 0/173F770ADD EXTTRAIL ea, EXTRACT extecdcSTART EXTRACT extecdc下面是 CDC Extract 参数文件的示例:
EXTRACT extecdc SOURCEDB USERIDALIAS src_alias EXTTRAIL west/ea TABLE public.*; -
当初始加载复制处理了所有初始加载记录时,添加并启动从 CDC 提取中读取线索的 CDC 复制。
ADD REPLICAT repecdc, EXTTRAIL west/ea, CHECKPOINTTABLE ggs.ggcheckpointSTART REPLICAT repecdc -
监视 CDC 提取和 CDC 复制中的滞后,当它们都接近零秒时,从源数据库到目标数据库的数据流应接近实时。