使用 SOURCEISTABLE 实例化初始加载提取
使用 SOURCEISTABLE 参数对初始加载提取使用此过程。此过程不适用于使用 Oracle Data Pump 或任何精确实例化方法进行实例化。此过程使用 HANDLECOLLISIONS 而非精确定位,以便在加载初始数据时源数据库可以保持活动状态。
这些示例使用 Oracle 源和目标、HR 方案以及以下线索名称:
AA:持续更改数据的源线索。BB:持续更改数据的目标线索。CC:初始加载数据的源线索。DD:初始加载数据的目标线索。
注:将示例别名、URL、主机、端口、方案名称和线索名称替换为环境中的值。
步骤 1:创建并启动主要 TRANLOG 提取
连接到源部署。对于 Oracle 源,启用补充日志记录,创建和注册集成的主提取,并在开始初始加载之前启动它。记录 REGISTER EXTRACT 返回的注册 SCN;不要仅重新运行命令来检索该值。
ADMINCLIENT: Source deployment
OGG (not connected) 1> CONNECT https://<source-admin-url> AS <deployment-user> PASSWORD "<deployment-password>"
OGG (https://<source-admin-url> source_deployment) > DBLOGIN USERIDALIAS <source-db-alias>
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > ADD SCHEMATRANDATA hr
如果所选表(而不是整个方案)需要日志记录,请对这些表使用 ADD TRANDATA,例如:
ADD TRANDATA hr.*
创建并注册主提取,然后创建其参数文件:
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > ADD EXTRACT extprim INTEGRATED TRANLOG BEGIN NOW
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > REGISTER EXTRACT extprim DATABASE
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > EDIT PARAMS extprim
主要提取参数文件 (EXTPRIM):
EXTRACT extprim
USERIDALIAS <source-db-alias>
EXTTRAIL AA
TABLE hr.*;
创建本地源线索并启动主要提取:
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > ADD EXTTRAIL AA EXTRACT extprim MEGABYTES 2000
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > START EXTRACT extprim
对于容器数据库,请使用相应的三部分对象名称或有效的 SOURCECATALOG 语句。对于其他源数据库类型,请使用特定于数据库的注册、日志记录和启动位置语法。
步骤 2:创建并启动初始加载提取
初始加载提取是任务提取。它读取源表并将记录写入本地初始加载线索 CC。特定于 Oracle 的 SQLPREDICATE "AS OF SCN" 子句在所选一致点选择表内容。
在启动初始加载复制之前,请确保已提交在启动主 TRANLOG 提取时打开的所有事务处理。保持打开状态的事务处理不会被初始加载提取或主要 TRANLOG 提取捕获,并且可能会丢失。
创建初始加载提取及其参数文件:
ADMINCLIENT: Source deployment
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > ADD EXTRACT extinit SOURCEISTABLE
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > EDIT PARAMS extinit
初始加载提取参数文件 (EXTINIT):
EXTRACT extinit
USERIDALIAS <source-db-alias>
EXTFILE CC MEGABYTES 2000 PURGE
TABLE hr.*, SQLPREDICATE "AS OF SCN <instantiation-scn>";
从 Oracle GoldenGate 26ai 开始,初始加载提取中的通配符 TABLE 语句不会解析视图。要包括视图,请单独指定而不使用通配符,例如:
TABLE hr.employees_view;
启动和监视初始加载提取:
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > START EXTRACT extinit
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > INFO EXTRACT extinit DETAIL
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > VIEW REPORT extinit
步骤 3:创建和启动分发服务路径
从源部署创建路径。SOURCE URI 标识源分发服务和本地线索。TARGET URI 标识目标接收器服务和目标线索。源和目标线索名称必须与为相应流创建的线索匹配。
创建正在进行的更改数据的路径(AA 到 BB):
ADMINCLIENT: Source deployment
OGG (https://<source-admin-url> source_deployment) > ADD DISTPATH aabb SOURCE trail://<source-dist-host>:<source-dist-port>/services/v2/sources?trail=AA TARGET wss://<target-recv-host>:<target-recv-port>/services/v2/targets?trail=BB
OGG (https://<source-admin-url> source_deployment) > START DISTPATH aabb
OGG (https://<source-admin-url> source_deployment) > INFO DISTPATH aabb DETAIL
创建初始加载数据的路径(CC 到 DD):
OGG (https://<source-admin-url> source_deployment) > ADD DISTPATH ccdd SOURCE trail://<source-dist-host>:<source-dist-port>/services/v2/sources?trail=CC TARGET wss://<target-recv-host>:<target-recv-port>/services/v2/targets?trail=DD
OGG (https://<source-admin-url> source_deployment) > START DISTPATH ccdd
OGG (https://<source-admin-url> source_deployment) > INFO DISTPATH ccdd DETAIL
对于需要路径验证的安全目标,请将以下子句附加到每个 ADD DISTPATH 命令:
AUTHENTICATION USERIDALIAS <target-path-alias> DOMAIN <target-path-domain>
当别名位于默认域中时,省略 DOMAIN。必须为源部署中的目标路径验证配置别名和域。
如果使用传统 ogg 协议而不是 ws 或 wss,还应在 ADD DISTPATH 命令中指定相应的 TARGETTYPE 选项。
步骤 4:创建并启动初始加载复制
连接到目标部署,创建检查点表,并添加读取目标线索 DD 的非集成初始负载复制。复制可以在初始加载线索到达之前启动;它将在分发路径运行后等待 DD 中的数据。
ADMINCLIENT: Target deployment
OGG (not connected) 1> CONNECT https://<target-admin-url> AS <deployment-user> PASSWORD "<deployment-password>"
OGG (https://<target-admin-url> target_deployment) > DBLOGIN USERIDALIAS <target-db-alias>
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > ADD CHECKPOINTTABLE ggadmin.ggcheckpoint
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > ADD REPLICAT repinit EXTTRAIL DD CHECKPOINTTABLE ggadmin.ggcheckpoint
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > EDIT PARAMS repinit
初始装入复制参数文件 (REPINIT):
REPLICAT repinit
USERIDALIAS <target-db-alias>
MAP hr.*, TARGET hr.*;
启动和监视初始装入复制:
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > START REPLICAT repinit
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > INFO REPLICAT repinit DETAIL
步骤 5:完成初始加载并删除一次性对象
等待初始加载提取到达输入结束,CC 到 DD 路径已将所有记录传送到 DD,REPINIT 已应用这些记录。使用以下检查:
ADMINCLIENT: Source deployment
OGG (https://<source-admin-url> source_deployment) > INFO EXTRACT extinit DETAIL
OGG (https://<source-admin-url> source_deployment) > INFO DISTPATH ccdd DETAIL
ADMINCLIENT: Target deployment
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > INFO REPLICAT repinit DETAIL
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > SEND REPLICAT repinit, LOGEND
验证初始加载结果后,仅删除一次性路径和进程对象。保留主提取 EXTPRIM 和主路径 AABB。
从源部署中:
STOP DISTPATH ccdd
DELETE DISTPATH ccdd
STOP EXTRACT extinit
DELETE EXTRACT extinit
从目标部署中,如果 REPINIT 仍在运行,则停止它,然后将其删除:
STOP REPLICAT repinit
DELETE REPLICAT repinit
DELETE EXTRACT 需要 Oracle 的相应源数据库登录,DELETE REPLICAT 需要目标数据库登录。删除进程组不一定会删除其参数文件或线索文件;通过部署支持的管理操作管理保留的对象。
步骤 6:使用 HANDLECOLLISIONS 创建并启动主复制
在目标上创建主复制。此过程使用 HANDLECOLLISIONS,而主复制应用可能与初始加载数据重叠的更改。
对于 HANDLECOLLISIONS 工作流,如果支持,请使用非集成的主复制。不要将 HANDLECOLLISIONS 与集成的 Oracle Replicat 一起使用;当需要集成的 Replicat 时,请使用精确的实例化方法。
ADMINCLIENT: Target deployment
OGG (https://<target-admin-url> target_deployment) > DBLOGIN USERIDALIAS <target-db-alias>
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > ADD REPLICAT repprim EXTTRAIL BB CHECKPOINTTABLE ggadmin.ggcheckpoint
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > EDIT PARAMS repprim
主复制参数文件 (REPPRIM):
REPLICAT repprim
USERIDALIAS <target-db-alias>
HANDLECOLLISIONS
MAP hr.*, TARGET hr.*;
启动和监视主复制:
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > START REPLICAT repprim
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > INFO REPLICAT repprim DETAIL
OGG (https://<source-admin-url> source_deployment) > INFO DISTPATH aabb DETAIL
在主复制捕获并处理在初始加载期间排队的更改后,禁用 HANDLECOLLISIONS:
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > SEND REPLICAT repprim, NOHANDLECOLLISIONS
SEND REPLICAT ... NOHANDLECOLLISIONS 禁用当前运行的冲突处理,但不会从参数文件中删除 HANDLECOLLISIONS。在下次重新启动之前从参数文件中删除 HANDLECOLLISIONS,或在受影响的 MAP 语句之前添加 NOHANDLECOLLISIONS。