4 选择捕获和应用模式
本章包含帮助您确定数据库环境的适当捕获和应用模式的信息。
主题:
- Oracle GoldenGate捕获和应用流程概述
Oracle GoldenGate捕获过程被称为*Extract。提取过程的每个实例都称为group*,其中包括进程本身和支持它的关联文件。 - 决定使用哪种捕获方法
对于Oracle源数据库,您可以在集成捕获或经典捕获模式下运行Extract。 - 决定使用哪种应用方法
复制过程负责将复制的数据应用于甲骨文目标数据库。 - 同时使用不同的捕获和应用模式
您可以在同一源Oracle GoldenGate实例中同时使用集成捕获和经典捕获,也可以在同一目标Oracle GoldenGate实例中同时使用集成复制和非集成复制。这种配置需要将您的对象小心地放置在适当的进程组中,因为DDL或DML在经典和集成捕获模式之间,以及非集成和集成复制模式之间没有协调。 - 切换到其他流程模式
您可以在进程模式之间切换。例如,您可以从经典捕获切换到集成捕获,或从集成捕获切换到经典捕获。
4.1甲骨文GoldenGate捕获和应用流程概述
Oracle GoldenGate捕获过程被称为*Extract。提取过程的每个实例都称为group*,其中包括进程本身和支持它的关联文件。
建议在源系统上使用额外的提取过程,称为*data pump,以便捕获的数据可以在本地持久保存到一系列称为trail*的文件上。数据泵不捕获数据,而是读取本地跟踪,并将数据在整个网络中传播到目标。
Oracle GoldenGate申请流程称为*Replicat。复制进程的每个实例都称为group,其中包括进程本身和支持它的关联文件。Replicat读取发送到本地存储的数据,称为trail*,并将其应用于目标数据库。
下图说明了甲骨文GoldenGate的基本流程配置。
注意:
Oracle数据库必须处于ARCHIVELOG模式,以便Extract可以处理日志文件。
家长主题:选择捕获和应用模式
4.2 决定使用哪种捕获方法
对于甲骨文源数据库,您可以在集成捕获或经典捕获模式下运行Extract。
虽然您可以使用经典的捕获模式,但建议您使用集成捕获模式,因为不建议使用经典捕获,并且不会在未来的任何版本中增强。它将在未来版本中不受支持,任何经典的Extract配置都需要迁移到集成Extract。
您使用的方法决定了您如何配置Oracle GoldenGate进程,并取决于以下因素:
- 所涉及的数据类型
- 数据库配置
- 甲骨文数据库的版本
以下解释了这些模式以及每种模式支持的数据库版本。
家长主题:选择捕获和应用模式
4.2.1 关于综合捕获
在集成捕获模式下,Oracle GoldenGate提取流程直接与数据库日志服务器交互,以逻辑更改记录(LCR)的形式接收数据更改。下图说明了提取在集成捕获模式下的配置。
与经典捕获相比,集成捕获支持更多的数据和存储类型,并且支持更透明。有关更多信息,请参阅支持的甲骨文数据类型和每次捕获模式的对象摘要。
以下是综合捕获的一些额外好处:
-
由于集成捕获与数据库完全集成,因此使用甲骨文RAC、ASM和TDE不需要额外的设置。
-
集成捕获使用数据库日志挖掘服务器访问甲骨文重做流,其优点是能够在不同的存档日志副本或在线日志的不同镜像版本之间自动切换。因此,假设有存档和在线日志的其他副本,集成捕获可以透明地处理因磁盘损坏、硬件故障或操作员错误而导致的日志文件缺失
-
集成捕获可以更快地过滤表。
-
集成捕获更有效地处理时间点恢复和RAC集成。
-
集成捕获功能集成日志管理。Oracle恢复管理器(RMAN)会自动保留提取所需的存档日志。
-
集成捕获是唯一支持从多租户容器数据库捕获的模式。一个提取物可以在多租户容器数据库中挖掘多个可插拔数据库。
-
对于版本11.2.0.4及更高版本的源数据库(源兼容性设置为11.2.0.4或更高版本),日志服务器异步捕获DDL,无需安装特殊触发器、表或其他数据库对象。Oracle GoldenGate升级无需停止用户应用程序即可执行。当Extract处于集成模式时,需要使用比版本11.2.0.4的Oracle 11g源数据库集成。
-
由于集成捕获和集成应用都是数据库对象,因此对象的命名遵循与其他甲骨文数据库对象相同的规则,请参阅在管理甲骨文GoldenGate时在甲骨文GoldenGate输入中指定对象名称。
父主题:决定使用哪种捕获方法
4.2.1.1 综合捕获部署选项
本节介绍了集成捕获的部署选项,并取决于挖掘数据库的部署位置。挖掘数据库是部署日志挖掘服务器的数据库。
-
本地部署:对于本地部署,源数据库和挖掘数据库是相同的。源数据库是您要为其挖掘重做流以捕获更改的数据库,也是您部署日志挖掘服务器的数据库。由于集成捕获与数据库完全集成,因此此模式不需要任何特殊的数据库设置。
-
下游部署:在下游部署中,源数据库和挖掘数据库是不同的数据库。您可以在下游数据库中创建日志服务器。您将源数据库中的重做传输配置为将重做日志运送到下游挖掘数据库,以便在该位置捕获。使用下游挖掘服务器进行捕获可能是从生产服务器的转换或其他处理中卸载捕获开销和任何其他开销,但需要日志运输和其他配置。
使用下游挖掘配置时,源数据库和挖掘数据库必须来自同一平台。例如,如果源数据库在Windows 64位上运行,下游数据库也必须在Windows 64位平台上运行。请参阅配置下游采矿数据库和下游采矿配置示例,以配置下游采矿数据库。
-
**下游无源提取部署:**在提取参数文件中,将
USERID参数替换为NOUSERID。您必须使用TRANLOGOPTIONS MININGUSER。提取从下游采矿数据库获取所有必要的信息。提取不依赖于与源数据库的任何连接。源数据库可以在不影响提取的情况下关闭和重新启动。如果提取时遇到需要从源数据库获取数据的重做更改,它将被删除。
To capture any tables that are listed as
ID KEYin thedba_goldengate_support_modeview, you need to have aFETCHUSERIDorFETCHUSERIDALIASconnection to the support the tables. Tables that are listed asFULLdo not require this. We also need to state that if a customer wants to performSQLEXECoperations that perform a query or execute a stored procedure they cannot use this method as it is incompatible withNOUSERIDbecauseSQLEXECworks withUSERIDorUSERIDALIAS.
父主题:关于集成捕获
4.2.2 关于经典捕获
在经典的捕获模式下,Oracle GoldenGate提取流程从源系统上的Oracle重做或存档日志文件或备用系统上已发货的存档日志捕获数据更改。下图说明了经典捕获模式下提取物的配置。
注:
甲骨文GoldenGate 18c(18.1.0)及更高版本不建议使用经典捕获。
经典捕获完全支持大多数甲骨文数据类型,对复杂数据类型的有限支持。经典捕获是甲骨文GoldenGate的原始捕获方法。除多租户容器数据库外,您可以对甲骨文GoldenGate支持的任何源Oracle RDBMS使用经典捕获。
有关更多信息,请参阅甲骨文数据类型和对象支持的详细信息。
父主题:决定使用哪种捕获方法
4.3 决定使用哪种应用方法
复制过程负责将复制的数据应用于甲骨文目标数据库。
对于Oracle目标数据库,您可以以并行、非集成或集成模式运行Replicat。Oracle建议您使用并行复制品,除非特定功能需要不同类型的复制品。
主题:
家长主题:选择捕获和应用模式
4.3.1 关于并行复制
Parallel Replicat是Replicat的新变体,可以并行应用事务来提高性能。
它考虑了事务之间的依赖关系,类似于集成复制。依赖计算、映射和应用程序的并行性在数据库外执行,因此可以卸载到其他服务器。在这个过程中,事务完整性得到了维护。此外,并行复制支持大型事务的并行应用,方法是将大事务拆分为块并行应用它们。
下表列出了各副本支持的功能。
| 功能 | 平行复制 | 综合复制 | 协调复制 | 经典复制品 |
|---|---|---|---|---|
| 批处理 | 是 | 是 | 是 | 是 |
| 障碍交易 | 是 | 是 | 是 | 不 |
| 依赖性计算 | 是 | 是 | 不 | 不 |
| 自动并行 | 是 | 是 | 不 | 不 |
| DML处理程序 | 是,集成模式 | 是 | 不 | 不 |
| 程序复制 | 是,用于集成并行复制(iPR) | 是 | 不 | 不 |
| 自动CDR | 是,仅供iPR使用 | 是 | 不 | 不 |
| 依赖性感知事务拆分 | 是 | 不 | 不 | 不 |
| 跨RAC节点处理 | 是 | 不 | 是 | 不 |
ALLOWDUPTARGETMAPSeeALLOWDUPTARGETMAP | NOALLOWDUPTARGETMAP |
不。带有iPR的甲骨文数据库 | 否,甲骨文数据库 | 是 | 是 |
Parallel Replicat使用非集成选项支持所有数据库。Parallel Replicat仅支持使用完整元数据的跟踪复制数据,这需要经典的跟踪格式。
并行复制的组成部分是:
- 映射器并行运行,以读取跟踪,映射跟踪记录,将映射记录转换为集成复制LCR格式,并将LCR发送到合并进行进一步处理。一个Mapper映射一组事务,而下一个Mapper映射下一组事务。跟踪信息被拆分,跟踪文件未被触摸,因为它按顺序排列跟踪信息。
- 主进程有两个线程,Collater和Scheduler。Collater从Mappers接收映射的事务,并将其重新置于跟踪顺序中进行依赖计算。调度器计算事务之间的依赖项,将事务分组为独立批处理,并将批处理程序发送给要应用于目标数据库的应用程序。
- 应用者对批处理中的记录进行重新排序,以执行数组。它将批处理应用于目标数据库并执行错误处理。它还跟踪检查点表中的应用事务。
家长主题:决定使用哪种应用方法
4.3.2 关于非集成复制品
在非集成模式下,复制过程使用标准SQL将数据直接应用于目标表。在此模式下,Replicat的运作方式如下:
- 阅读甲骨文GoldenGate踪迹。
- 执行数据过滤、映射和转换。
- 构造表示源数据库DML或DDL事务的SQL语句(按提交顺序)。
- 通过Oracle调用接口(OCI)将SQL应用于目标。
下图说明了复制在非集成模式下的配置。
当您想大量使用集成复制模式下不支持的功能时,请使用非集成复制,请参阅关于集成复制模式。
您可以使用协调的Replicat配置与非集成Replicat并行应用事务。
家长主题:决定使用哪种应用方法
4.3.3 关于集成复制模式
在集成模式下,复制过程利用甲骨文数据库中可用的应用程序处理功能。在此模式下,Replicat的运作方式如下:
- 阅读甲骨文GoldenGate踪迹。
- 执行数据过滤、映射和转换。
- 构造表示源数据库DML事务的逻辑更改记录(LCR)(按提交顺序)。DDL由Replicat直接应用。
- 通过轻量级流接口连接到目标数据库中的后台进程,称为数据库入站服务器。
- 将LCR传输到入站服务器,入站服务器将数据应用于目标数据库。
下图说明了Replicat在集成模式下的配置。
在单个复制配置中,多个称为应用程序服务器的入站服务器子进程并行应用事务,同时保留原始事务原子性。当您配置复制过程或根据需要动态时,您可以尽可能增加目标系统支持的并行性。下图说明了配置了与两台并行应用程序服务器的集成复制。

插图的描述 integratedapply_detail.png
集成复制异步应用事务。没有相互依存关系的事务可以安全执行和提交,以实现快速吞吐量。具有依赖项的事务保证以与源上的相同顺序应用。
入站服务器中的读取器进程根据目标数据库定义的约束(主键、唯一键、外键)计算工作负载中事务之间的依赖关系。屏障交易和DDL操作也会自动管理。协调器进程协调多个事务,并维护应用程序服务器之间的顺序。
如果入站服务器不支持配置的功能或列类型,Replicat将从入站服务器中退出,等待入站服务器完成其队列中的事务,然后通过OCI以直接应用模式将事务应用于数据库。应用直接事务后,复制恢复以集成模式处理。
Replicat在直接模式下应用以下功能:
- DDL操作
- 序列操作
SQLEXEC``TABLE或MAP参数中的参数EVENTACTIONS加工- UDT 请注意,如果摘录使用
USENATIVEOBJSUPPORT捕获UDT,那么集成的Replicat将将其应用于入站服务器,否则将由Replicat直接处理。
由于事务以直接应用模式串行应用,大量使用此类操作可能会降低集成复制模式的性能。当大多数应用程序处理可以在集成模式下执行时,集成复制性能最佳,请参阅在Oracle GoldenGate为Oracle数据库使用实例化后监控处理。
注:
用户退出以集成模式执行。然而,如果退出代码依赖于复制流中的数据,用户退出可能会产生意想不到的结果。
家长主题:决定使用哪种应用方法
4.3.3.1 综合复制的好处
以下是使用集成复制品和非集成复制品的好处。
- 集成复制使繁重的工作负载能够在并发应用多个事务的并行应用程序进程之间自动分区,同时保持源事务的完整性和原子性。可以使用
PARALLELISM和MAX_PARALLELISM参数配置最小和最大数量的应用程序进程。当工作负载增加时,Replicat会自动添加其他服务器,然后在工作负载减轻时再次向下调整。 - 集成复制需要最小的工作来配置。所有工作都配置在一个Replicat参数文件中,而无需配置范围分区。
- 通过Replicat和入站服务器之间的轻量级应用程序编程接口(API),为集成Replicat启用高性能应用程序流。
- 屏障事务由多个服务器应用程序进程之间的集成复制协调。
- DDL操作作为直接事务处理,通过等待服务器处理完成在DDL执行之前来强制设置障碍。
- 瞬态重复主键更新由集成复制以无缝方式处理。
- 集成复制适用于单个或可插拔数据库。
父主题:关于集成复制模式
4.3.3.2 综合复制要求
要使用集成复制,以下内容必须正确。
- 目标甲骨文数据库必须是甲骨文11.2.0.4或更高版本。
- 必须在源数据库上启用补充日志记录,以支持计算表之间的依赖项和目标并发事务的调度。启用所需日志记录的说明在“配置日志属性”中。此日志记录可以随时启用,但在此之前,您可以启动Oracle GoldenGate进程。
- Oracle数据库12.2.0.1及更高版本支持集成并行复制。
父主题:关于集成复制模式
4.4 一起使用不同的捕获和应用模式
您可以在同一源Oracle GoldenGate实例中同时使用集成捕获和经典捕获,也可以在同一目标Oracle GoldenGate实例中同时使用集成复制和非集成复制。这种配置需要将您的对象小心地放置在适当的进程组中,因为DDL或DML在经典和集成捕获模式之间,以及非集成和集成复制模式之间没有协调。
每个提取组必须根据表数据类型和属性处理适合处理模式的对象。一个提取物中的任何对象都不能对另一个提取物中的对象具有DML或DDL依赖性。复制配置必须应用相同类型的隔离。
您可以同时使用以下捕获和应用模式:
- 经典捕获(甲骨文或非甲骨文源)和非集成复制品
- 经典捕获(甲骨文或非甲骨文源)和集成复制
- 综合捕获和非集成复制
- 综合捕获和综合复制
当Oracle版本支持时,推荐的Oracle GoldenGate配置是在Oracle源上使用一个集成捕获,在Oracle目标的每个源数据库上使用一个集成复制。集成捕获比经典捕获更完全地支持某些数据类型。一个集成的Replicat配置通过入站服务器或在必要时切换到直接应用来支持所有Oracle数据类型,并保持源事务的完整性。您可以根据需要将并行设置调整到所需的应用程序性能级别。
如果目标数据库是不支持集成复制的甲骨文版本,或者它是非甲骨文数据库,您可以使用协调的复制配置。有关更多信息,请参阅管理甲骨文GoldenGate。
家长主题:选择捕获和应用模式
4.5切换到其他流程模式
您可以在进程模式之间切换。例如,您可以从经典捕获切换到集成捕获,或从集成捕获切换到经典捕获。
有关说明,请参阅在管理甲骨文GoldenGate中执行管理操作。
家长主题:选择捕获和应用模式









