【跟我学ogg12.3.0.1】第二节【Oracle GoldenGate之Oracle篇】4 选择捕获和应用模式(经典捕获模式或集成捕获模式)

4 Choosing Capture and Apply Modes

本章包含帮助您确定数据库环境的适当捕获和应用模式的信息。

Topics:

  • 概述Oracle GoldenGate捕获和应用过程
    Oracle GoldenGate捕获过程称为提取。提取流程的每个实例都称为一个组,其中包括流程本身和支持它的相关文件。
    决定使用哪种捕获方法
    对于Oracle源数据库,可以以经典捕获模式或集成捕获模式运行Extract。
    决定使用哪种应用方法
    Replicat进程负责将复制的数据应用到Oracle目标数据库。
  • 一起使用不同的捕获和应用模式
    您可以在同一个源Oracle GoldenGate实例中并发地使用集成捕获和经典捕获,还可以在同一个目标Oracle GoldenGate实例中并发地使用集成的Replicat和非集成的Replicat。这种配置需要在适当的进程组中小心地放置对象,因为在classic和integrated capture模式之间没有DDL或DML的协调,也没有在non - integrated和integrated Replicat模式之间的协调。
  • 切换到不同的进程模式
    您可以在流程模式之间切换。例如,您可以从经典捕获切换到集成捕获,或者从集成捕获切换到经典捕获。

4.1 概述Oracle GoldenGate捕获和应用过程

Oracle GoldenGate捕获过程称为提取。提取流程的每个实例都称为一个组,其中包括流程本身和支持它的相关文件

建议在源系统上使用另一个提取过程(称为数据泵),以便将捕获的数据在本地持久化到一系列文件(称为跟踪)中。数据泵不捕获数据,而是读取本地跟踪并通过网络将数据传播到目标。

Oracle GoldenGate应用过程称为副本。一个Replicat进程的每个实例都被称为一个组,其中包括进程本身和支持它的相关文件。Replicat读取发送到本地存储的数据(称为跟踪),并将其应用到目标数据库。

下图说明了基本的Oracle GoldenGate流程配置。有关Oracle GoldenGate过程的更多信息, see Administering Oracle GoldenGate.

【跟我学ogg12.3.0.1】第二节【Oracle GoldenGate之Oracle篇】4 选择捕获和应用模式(经典捕获模式或集成捕获模式)
Description of the illustration oracle_config.png

Note:

Oracle Databases must be in ARCHIVELOG mode so that Extract can process the log files.

Parent topic: Choosing Capture and Apply Modes

4.2 决定使用哪种捕获方法

对于Oracle源数据库,可以以经典捕获模式或集成捕获模式运行Extract。
您使用的方法决定您如何配置Oracle GoldenGate过程,并取决于以下因素:

  • 涉及的数据类型
    数据库配置
    Oracle数据库的版本

下面解释这些模式和每种模式支持的数据库版本。

Parent topic: Choosing Capture and Apply Modes

4.2.1 对经典的捕获

在经典捕获模式下,Oracle GoldenGate提取过程捕获源系统上Oracle redo或归档日志文件中的数据更改,或备用系统上已发布的归档日志中的数据更改。下图说明了经典捕获模式下的提取的配置。

【跟我学ogg12.3.0.1】第二节【Oracle GoldenGate之Oracle篇】4 选择捕获和应用模式(经典捕获模式或集成捕获模式)
Description of the illustration classiccapture.png

Classic capture完全支持大多数Oracle数据类型,但对复杂数据类型的支持有限。经典缴获是甲骨文公司独创的缴获方法。除了多租户容器数据库之外,您可以对Oracle GoldenGate支持的任何源Oracle RDBMS使用classic capture。

你可以使用经典捕捉来支持以下功能:

  • udt、VARRAYs和NOLOGGING lob的源数据库兼容性设置低于11.2.0.0.0。
    透明数据加密支持,源数据库兼容性设置低于11.0.0.0.0。
    SECUREFILE LOB支持源数据库兼容性设置低于11.2.0.0.0。
    支持LOB,源数据库兼容性设置在11.2.0.0.0以下。

For more information, see Summary of Supported Oracle Data Types and Objects Per Capture Mode.

Parent topic: Deciding Which Capture Method to Use

4.2.2 About集成捕获模式

在集成捕获模式下,Oracle GoldenGate提取流程直接与数据库日志挖掘服务器交互,以逻辑更改记录(LCR)的形式接收数据更改。下图说明了在集成捕获模式下Extract的配置。

【跟我学ogg12.3.0.1】第二节【Oracle GoldenGate之Oracle篇】4 选择捕获和应用模式(经典捕获模式或集成捕获模式)
Description of the illustration integratedcapture.png

与传统捕获相比,集成捕获支持更多的数据和存储类型,并且支持更加透明。更多信息, see Summary of Supported Oracle Data Type and Objects Per Capture Mode.

以下是集成捕获的一些额外好处:

  • 因为集成捕获是与数据库完全集成的,所以使用Oracle RAC、ASM和TDE不需要额外的设置。

  • Integrated capture使用数据库日志挖掘服务器访问Oracle redo流,其优点是能够在归档日志的不同副本或在线日志的不同镜像版本之间自动切换。因此,假设有存档日志和在线日志的附加副本可用,集成捕获可以透明地处理由磁盘损坏、硬件故障或操作员错误导致的日志文件缺失

  • 集成捕获可以更快地过滤表。
    集成捕获更有效地处理时间点恢复和RAC集成。

  • 集成捕获特性集成日志管理。Oracle恢复管理器(RMAN)自动保留Extract所需的归档日志。
    集成捕获是惟一支持从多租户容器数据库捕获的模式。一个提取可以在一个多租户容器数据库中挖掘多个可插拔数据库。

  • 对于版本11.2.0.4或更高版本的源数据库(源兼容性设置为11.2.0.4或更高),DDL的捕获是由日志挖掘服务器异步执行的,不需要安装任何特殊的触发器、表或其他数据库对象。可以在不停止用户应用程序的情况下执行Oracle GoldenGate升级。当Extract与版本11.2.0.4之前的Oracle 11g源数据库处于集成模式时,需要使用DDL触发器和支持对象。

  • 因为integrated capture和integrated apply都是数据库对象,所以对象的命名遵循与其他Oracle数据库对象相同的规则,请参阅在管理Oracle GoldenGate时在Oracle GoldenGate输入中指定对象名称。

Parent topic: Deciding Which Capture Method to Use

4.2.2.1 集成捕获支持的数据库版本

数据库版本通过集成捕获确定可用的数据类型:

  • 完全支持:为了支持所有Oracle数据和存储类型,源数据库的兼容性设置必须至少是11.2.0.3,与集成Extract 11.2的11.2.0.3数据库特定包补丁兼容。x(我的Oracle支持文档ID 1557031.1)。要获得这个补丁从我的Oracle支持,去:

    https://support.oracle.com/oip/faces/secure/km/DocumentDisplay.jspx?id=1557031.1

  • 要在不安装DDL支持对象的情况下支持DDL捕获,源数据库必须至少是Oracle 11.2.0.4或更高版本。对于较早的数据库版本,需要DDL支持对象,请参阅安装基于触发的DDL捕获。

  • 有限的支持:对于兼容性低于11.2.0.3的源数据库,可以在11.2.0.3的下游挖掘数据库上使用集成捕获,但是在这种模式下,SECUREFILE lob、XML列、透明数据加密和udt都有基于数据库版本和兼容性的有限支持。下游挖掘数据库必须有11.2.0.3特定于数据库的bundle补丁,用于集成Extract 11.2。x (Doc ID 1557031.1)申请。See Integrated Capture Deployment Options. The downstream mining database must be at the same (or greater) database release (minimum 11.2.0.3) as the source database release being mined.

To understand the differences in data type support among different RDBMS versions, see Summary of Supported Oracle Data Types and Objects Per Capture Mode.

Parent topic: About Integrated Capture

4.2.2.2 集成捕获部署选项

本节将描述集成捕获的部署选项,并取决于挖掘数据库的部署位置。挖掘数据库是部署日志挖掘服务器的数据库。

  • 本地部署:对于本地部署,源数据库和挖掘数据库是相同的。源数据库是您希望为其挖掘重做流以捕获更改的数据库,也是部署日志挖掘服务器的地方。由于集成捕获与数据库完全集成,因此此模式不需要任何特殊的数据库设置。

  • 下游部署:在下游部署中,源数据库和挖掘数据库是不同的数据库。您可以在下游数据库中创建日志挖掘服务器。在源数据库上配置重做传输,以便将重做日志发送到下游挖掘数据库,以便在该位置进行捕获。使用下游挖掘服务器进行捕获可能有助于将捕获开销和来自转换或来自生产服务器的其他处理的任何其他开销卸下来,但是需要日志传送和其他配置。

    在使用下游挖掘配置时,源数据库和挖掘数据库必须位于相同的平台上。例如,如果源数据库运行在Windows 64位上,则下游数据库也必须运行在Windows 64位平台上。 See Configuring a Downstream Mining Database and Example Downstream Mining Configuration to configure a downstream mining database.

  • 下游Oracle Active DataGuard部署:可以从Oracle Active DataGuard (ADG)获取数据,使用FETCHUSERIDor FETCHUSERIDALIAS参数配置userid/[email protected]

    Note:

    从ADG备用数据库中获取数据与从ADG备用数据库中获取数据是不同的。实际集成的提取组件需要在读写数据库中运行。这两个参数只控制从哪个数据库获取数据。

  • 下游无源提取部署:在提取参数文件中,将USERID参数替换为NOUSERID。您必须使用TRANLOGOPTIONS MININGUSER。此部署要求源数据库重做与Oracle GoldenGate版本兼容(大于或等于11.2.0.4)。Extract从下游采矿数据库中获取所有必需的信息。Extract不依赖于任何到源数据库的连接。可以在不影响提取的情况下关闭和重新启动源数据库。

    如果遇到需要从源数据库获取数据的重做更改,Extract将终止。
    此方法还可以与FETCHUSERID和FETCHUSERIDALIAS一起使用,以从ADG备用服务器获取数据。

Parent topic: About Integrated Capture

4.3 决定使用哪种应用方法

Replicat进程负责将复制的数据应用到Oracle目标数据库。
对于Oracle目标数据库,可以以非集成模式或集成模式运行Replicat。下面解释这些模式和每种模式支持的数据库版本。

For more information about Oracle GoldenGate processes, see Administering Oracle GoldenGate.

Parent topic: Choosing Capture and Apply Modes

4.3.1 About Nonintegrated Replicat

在非集成模式下,Replicat进程使用标准SQL将数据直接应用到目标表。
在该模式下,Replicat的操作如下:

  • 读Oracle GoldenGate的踪迹。
    执行数据筛选、映射和转换。
    构造表示源数据库DML或DDL事务的SQL语句(按提交的顺序)。
    通过Oracle调用接口(OCI)将SQL应用于目标。

The following diagram illustrates the configuration of Replicat in nonintegrated mode.

【跟我学ogg12.3.0.1】第二节【Oracle GoldenGate之Oracle篇】4 选择捕获和应用模式(经典捕获模式或集成捕获模式)
Description of the illustration nonintegratedapply.png

使用非集成副本时:

  • 目标Oracle数据库是Oracle 11.2.0.4之前的版本。
    你想要大量使用在集成复制模式下不支持的功能,see About Integrated Replicat.

You can apply transactions in parallel with a nonintegrated Replicat by using a coordinated Replicat configuration.

Parent topic: Deciding Which Apply Method to Use

4.3.2 About Integrated Replicat

在集成模式下,Replicat流程利用Oracle数据库中可用的应用处理功能。在该模式下,Replicat的操作如下:

  • 阅读Oracle GoldenGate的踪迹。
    执行数据筛选、映射和转换。
    构造表示源数据库DML事务(按提交的顺序)的逻辑更改记录(LCR)。DDL由Replicat直接应用。
    通过轻量级流媒体接口连接到目标数据库中的后台进程(称为数据库入站服务器)。
    将LCRs传输到入站服务器,后者将数据应用到目标数据库。

The following figure illustrates the configuration of Replicat in integrated mode.

【跟我学ogg12.3.0.1】第二节【Oracle GoldenGate之Oracle篇】4 选择捕获和应用模式(经典捕获模式或集成捕获模式)
Description of the illustration integratedapply.png

在单个副本配置中,称为apply servers的多个入站服务器子进程并行地应用事务,同时保持原始事务的原子性。在需要配置Replicat进程或动态配置时,您可以尽可能地增加目标系统所支持的并行度。下图演示了使用两个并行应用服务器配置的集成副本。

【跟我学ogg12.3.0.1】第二节【Oracle GoldenGate之Oracle篇】4 选择捕获和应用模式(经典捕获模式或集成捕获模式)
Description of the illustration integratedapply_detail.png

集成副本异步应用事务。不具有相互依赖关系的事务可以安全地执行和不按顺序提交,以实现快速的吞吐量。具有依赖项的事务保证以与源上相同的顺序应用。

入站服务器中的读取器进程根据目标数据库中定义的约束(主键、惟一键、外键)计算工作负载中事务之间的依赖关系。屏障事务和DDL操作也是自动管理的。协调进程协调多个事务并维护应用服务器之间的顺序。

如果入站服务器不支持配置的特性或列类型,Replicat从入站服务器退出,等待入站服务器在其队列中完成事务,然后通过OCI以直接应用模式将事务应用到数据库。在应用直接事务后,副本以集成模式继续处理。

以下功能是应用在直接模式下的副本:

  • DDL操作
    序列操作
    表或映射参数中的SQLEXEC参数
    EVENTACTIONS处理
    注意,如果提取使用USENATIVEOBJSUPPORT来捕获UDT,那么集成的Replicat将把它应用到入站服务器,否则将由Replicat直接处理。

由于事务是在直接应用模式下连续应用的,因此大量使用此类操作可能会降低集成副本模式的性能。当大多数应用处理可以在集成模式下执行时,集成副本执行得最好, see Monitoring and Controlling Processing After the Instantiation.

Note:

User exits are executed in integrated mode. The user exit may produce unexpected results, however, if the exit code depends on data in the replication stream.

Parent topic: Deciding Which Apply Method to Use

4.3.2.1 Benefits of Integrated Replicat

以下是使用集成副本和非集成副本的好处。

  • Integrated Replicat允许在并发应用多个事务的并行应用进程之间自动分区繁重的工作负载,同时保持源事务的完整性和原子性。可以使用并行度和MAX_PARALLELISM参数配置应用进程的最小和最大数量。当工作负载增加时,Replicat会自动添加额外的服务器,然后在工作负载减轻时再次向下调整。

  • 集成的副本需要最少的配置工作。所有工作都在一个Replicat参数文件中配置,而不需要配置范围分区。

  • 通过Replicat和入站服务器之间的轻量级应用程序编程接口(API),可以为集成的Replicat启用高性能应用流。

  • 屏障事务由多个服务器应用进程之间的集成副本进行协调。
    DDL操作作为直接事务处理,在DDL执行之前等待服务器处理完成,从而形成一个屏障。
    瞬时复制主键更新由集成的Replicat以无缝的方式处理。
    集成的Replicat使用单个或可插入的数据库。

Parent topic: About Integrated Replicat

4.3.2.2 集成Replicat需求

要使用集成副本,必须满足以下条件。

  • The target Oracle Database must be Oracle 11.2.0.4 or later.

  • 必须在源数据库上启用补充日志记录,以支持计算表之间的依赖关系和调度目标上的并发事务。有关启用所需日志记录的说明,请参阅配置日志记录属性。在启动Oracle GoldenGate进程之前的任何时间都可以启用此日志记录。

  • Integrated Parallel Replicat is supported on Oracle Database 12.2.0.1 and greater.

Parent topic: About Integrated Replicat

4.4 一起使用不同的捕获和应用模式

您可以在同一个源Oracle GoldenGate实例中并发地使用集成捕获和经典捕获,还可以在同一个目标Oracle GoldenGate实例中并发地使用集成的Replicat和非集成的Replicat。这种配置需要在适当的进程组中小心地放置对象,因为在classic和integrated capture模式之间没有DDL或DML的协调,也没有在non - integrated和integrated Replicat模式之间的协调。

个提取组必须基于表数据类型和属性处理适合处理模式的对象。一个提取中的对象不能对另一个提取中的对象具有DML或DDL依赖关系。必须对副本配置应用相同类型的隔离。

You can use the following capture and apply modes together:

  • Classic capture (Oracle or non-Oracle source) and nonintegrated Replicat

  • Classic capture (Oracle or non-Oracle source) and integrated Replicat

  • Integrated capture and nonintegrated Replicat

  • Integrated capture and integrated Replicat

Oracle版本支持的建议Oracle GoldenGate配置是在Oracle源上使用一个集成捕获,在Oracle目标上的每个源数据库上使用一个集成副本。集成捕获比传统捕获更全面地支持某些数据类型。一个集成的Replicat配置可以通过入站服务器支持所有Oracle数据类型,也可以在必要时切换到直接应用,这样可以保持源事务的完整性。您可以根据需要将并行度设置调整为所需的应用性能级别。

如果目标数据库是不支持集成副本的Oracle版本,或者是非Oracle数据库,则可以使用协调的副本配置。 See Administering Oracle GoldenGate for more information.

Parent topic: Choosing Capture and Apply Modes

4.5 Switching to a Different Process Mode

您可以在流程模式之间切换。例如,您可以从经典捕获切换到集成捕获,或者从集成捕获切换到经典捕获。

For instructions, see Performing Administrative Operations inAdministering Oracle GoldenGate.

Parent topic: Choosing Capture and Apply Modes