关于集成复制
在集成模式下,Replicat 利用目标 Oracle AI Database 中可用的应用处理功能。在此模式下,Replicat 会读取线索,构建表示源 DML 或 DDL 事务的逻辑更改记录,并将这些记录传输到 Oracle 目标数据库中的入站服务器。入站服务器将数据应用于目标数据库。
注: Integrated Replicat 仅是一个联机进程。不要使用它来执行初始加载。
在集成模式下,复制进程利用 Oracle AI Database 中提供的应用处理功能。在此模式下,复制运行方式如下:
-
读取 Oracle GoldenGate 线索。
-
执行数据筛选、映射和转换。
-
构造表示源数据库 DML 事务处理(按提交顺序)的逻辑更改记录 (logical change record,LCR)。DDL 由 Replicat 直接应用。
-
通过轻量级流接口连接到目标数据库(称为数据库入站服务器)中的后台进程。
-
将 LCR 传输到入站服务器,以将数据应用于目标数据库。
在单个复制配置中,多个入站服务器子进程(称为应用服务器)并行应用事务处理,同时保留原始事务处理原子性。您可以按照配置复制进程时或根据需要动态地支持的目标系统来增加此并行度。下图显示了配置有两个并行应用服务器的集成复制。

在上图中,Integrated Replicat 异步应用事务。没有相互依赖关系的事务处理可以安全地执行和提交,从而实现快速吞吐量。保证按与源相同的顺序应用具有相关性的事务处理。
入站服务器中的读取器进程根据在目标数据库中定义的约束条件(主键、唯一键和外键)计算工作量中事务处理之间的依赖关系。屏障事务和 DDL 操作也会自动进行管理。协调程序进程协调多个事务并维护应用服务器之间的顺序。
如果入站服务器不支持配置的功能或列类型,则 Replicat 会从入站服务器脱离,等待入站服务器在其队列中完成事务处理,然后通过 OCI 以直接应用模式将事务处理应用于数据库。应用直接事务后,复制以集成模式继续处理。
Replicat 在直接模式下应用以下功能:
-
DDL 操作数
-
序号操作数
-
TABLE或MAP参数中的SQLEXEC参数 -
EVENTACTIONS处理
由于事务处理是串行应用的,因此大量使用此类操作可能会降低集成复制模式的性能。当大多数应用处理都可以在集成模式下执行时,集成复制将发挥最佳效果。
注:用户出口在集成模式下执行。但是,如果退出代码依赖于复制流中的数据,则用户出口可能会产生意外结果。
注:集成复制要求为任何外键列编制索引。
集成复制的优势
下面是使用集成复制与非集成复制的优点。
-
集成复制允许在并行应用进程之间自动分区繁重的工作负载,这些并行应用进程同时应用多个事务,同时保留源事务的完整性和原子性。可以同时使用
PARALLELISM和MAX_PARALLELISM参数配置最小和最大应用进程数。当工作负载增加时,复制会自动添加其他服务器,然后在工作负载减少时再次向下调整。 -
集成复制需要最少的工作来配置。所有工作都在一个 Replicat 参数文件中配置,而无需配置范围分区。
-
通过在 Replicat 和入站服务器之间使用轻量级应用编程接口 (API),为集成的 Replicat 启用了高性能应用流。
-
屏障事务通过多个服务器应用进程之间的集成复制进行协调。
-
DDL 操作将作为直接事务进行处理,这些事务通过等待服务器处理在 DDL 执行之前完成来强制屏障。
-
临时重复主键更新由集成的 Replicat 无缝处理。
集成的复制要求
要使用集成复制,必须满足以下条件。
-
必须在源数据库上启用补充日志记录,以支持计算表之间的相关性以及调度目标上的并发事务处理。Transaction Log Settings and Requirements 中提供了有关启用所需日志记录的说明。在您启动 Oracle GoldenGate 进程之前,可以随时启用此日志记录。
-
Oracle Database 12.2.0.1 及更高版本支持以集成模式进行并行复制。