OGG选择捕捉和应用模式

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

主题:

  • Oracle GoldenGate捕获和应用进程概述
  • 决定使用哪种捕捉方法
  • 决定使用哪种应用方法
  • 同时使用不同的捕捉和应用模式
  • 切换到不同的过程模式

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


 

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

建议在源系统上使用额外的Extract进程(称为数据泵),以便捕获的数据可以在本地保存到一系列称为踪迹的文件中。数据泵不捕获数据,而是读取本地路径并通过网络将数据传播到目标。

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

图4-1说明了基本的Oracle GoldenGate进程配置。有关Oracle GoldenGate进程的更多信息,请参阅管理Oracle GoldenGate。

Figure 4-1 The Basic Configuration

Oracle数据库必须处于ARCHIVELOG模式,以便Extract可以处理日志文件。

4.2 决定使用哪种捕捉方法


 

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

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

以下说明这些模式以及每种模式支持的数据库版本。

  • 关于Classic Capture
  • 关于集成捕获
4.2.1关于经典捕捉

在传统捕获模式下,Oracle GoldenGate Extract进程会捕获源系统上的Oracle重做或归档日志文件或备用系统上出厂的归档日志中的数据更改。图4-2显示了经典捕捉模式下的提取配置。

Figure 4-2 Classic Capture

经典捕获完全支持大多数Oracle数据类型,对复杂数据类型提供有限的支持。经典捕获是最初的Oracle GoldenGate捕获方法。对于Oracle GoldenGate支持的任何源Oracle RDBMS,您可以使用经典捕获,但多租户容器数据库除外。

您可以使用经典捕捉来支持以下内容:

  • UDTs, VARRAYs, NOLOGGING LOBs 其源数据库兼容性设置在11.2.0.0.0以下。
  • 透明数据加密支持,源数据库兼容性设置在11.0.0.0.0以下。
  • SECUREFILE LOB支持将源数据库兼容性设置为低于11.2.0.0.0。
  • NOLOGGING LOB支持,源数据库兼容性设置在11.2.0.0.0以下。

有关更多信息,请参阅支持的Oracle数据类型和每个捕获模式的对象摘要

4.2.2关于集成捕获

 在集成捕获模式下,Oracle GoldenGate Extract进程直接与数据库logmining server交互,以逻辑更改记录(LCR)的形式接收数据更改。图4-3显示了集成捕获模式下的提取配置。

 Figure 4-3 Integrated Capture

与经典捕捉相比,集成捕捉支持更多数据和存储类型,并且支持更加透明。有关更多信息,请参阅支持的Oracle数据类型和每个捕获模式的对象摘要

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

  • 由于集成捕获与数据库完全集成,因此不需要其他设置即可与Oracle RAC,ASM和TDE配合使用。
  • 集成捕获使用数据库logmining server来访问Oracle重做流,其优点是能够在归档日志的不同副本或联机日志的不​​同镜像版本之间自动切换。因此,集成捕获可以透明地处理由于磁盘损坏,硬件故障或操作员错误而导致的日志文件缺失(假设存档和在线日志的额外副本可用)
  • 集成捕捉可以更快地过滤表格。
  • 集成捕捉可以更有效地处理时间点恢复和RAC集成。
  • 集成捕捉功能集成日志管理。 Oracle Recovery Manager(RMAN)会自动保留Extract所需的归档日志。
  • 集成捕获是支持从多租户容器数据库捕获的唯一模式。 One Extract可以挖掘多租户容器数据库中的多个可插拔数据库。
  • 对于版本11.2.0.4源数据库及更高版本(源兼容性设置为11.2.0.4或更高版本),DDL的捕获由logmining server异步执行,并且不需要安装特殊的触发器,表或其他数据库对象。可以在不停止用户应用程序的情况下执行Oracle GoldenGate升级。当Extract处于集成模式且Oracle 11g源数据库早于版本11.2.0.4时,需要使用DDL触发器和支持对象。
  • 由于集成捕获和集成应用都是数据库对象,因此对象的命名遵循与其他Oracle数据库对象相同的规则,请参阅管理Oracle GoldenGate中的指定Oracle GoldenGate输入中的对象名称
  • 集成捕获支持的数据库版本
  • 集成捕捉部署选项
4.2.2.1集成捕获支持的数据库版本

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

  • Full support: 要支持所有Oracle数据和存储类型,源数据库的兼容性设置必须至少为11.2.0.3,集成Extract 11.2.x(My Oracle Support文档ID 1557031.1)的11.2.0.3数据库特定捆绑软件修补程序。要从My Oracle Support获得此修补程序,请转到:
    https://support.oracle.com/oip/faces/secure/km/DocumentDisplay.jspx?id=1557031.1
  • 为了在不安装DDL支持对象的情况下支持DDL捕获,源数据库必须至少为Oracle 11.2.0.4或更高版本。对于早期的数据库版本,需要DDL支持对象,请参阅安装基于触发器的DDL捕获
  • Limited support: 对于兼容性小于11.2.0.3的源数据库,您可以在11.2.0.3下游挖掘数据库上使用集成捕获,但在此模式下,SECUREFILE LOB,XML列,透明数据加密和UDT基于数据库版本和兼容性。下游采矿数据库必须具有适用于Integrated Extract 11.2.x(Doc ID 1557031.1)的11.2.0.3数据库特定捆绑软件修补程序。请参阅集成捕捉部署选项。下游采矿数据库必须与正在开采的源数据库版本相同(或更高)的数据库版本(最低11.2.0.3)。

要了解不同RDBMS版本之间数据类型支持的差异,请参阅支持的Oracle数据类型和每个捕获模式的对象摘要

4.2.2.2集成捕捉部署选项

本节介绍集成捕获的部署选项,并取决于部署挖掘数据库的位置。挖掘数据库是部署登录服务器的数据库。

  •  Local deployment: 对于本地部署,源数据库和挖掘数据库是相同的。源数据库是要挖掘重做流以捕获更改的数据库,以及部署登录服务器的位置。由于集成捕获与数据库完全集成,此模式不需要任何特殊的数据库设置。
  • Downstream deployment: 在下游部署中,源数据库和挖掘数据库是不同的数据库。您在下游数据库创建logmining server。您可以在源数据库中配置重做传输,以将重做日志传送到下游挖掘数据库以在该位置进行捕获。使用下游挖掘服务器进行捕获可能需要从生产服务器卸载捕获开销和其他任何来自转换或其他处理的开销,但需要日志传送和其他配置。

在使用下游采矿配置时,源数据库和采矿数据库必须具有相同的平台。例如,如果源数据库在Windows 64位上运行,则下游数据库也必须位于Windows 64位平台上。请参阅配置下游挖掘数据库和示例下游挖掘配置以配置下游挖掘数据库。

  • Downstream Oracle Active DataGuard deployment:您可以使用FETCHUSERID或FETCHUSERIDALIAS参数从Oracle Active Data Guard(ADG)获取配置userid / pwd @ adg。

从ADG备用数据库执行提取操作与从ADG备用数据库进行捕获不同。实际的集成提取组件需要在READ / WRITE数据库中运行。这两个参数只控制从哪个数据库获取数据。

  •  Downstream sourceless Extract deployment:在Extract参数文件中,将USERID参数替换为NOUSERID。您必须使用TRANLOGOPTIONS MININGUSER。此部署要求源数据库REDO与大于或等于11.2.0.4的Oracle GoldenGate版本兼容。 Extract从下游采矿数据库获取所有必需的信息。提取不依赖于到源数据库的任何连接。源数据库可以关闭并重新启动而不影响提取。
    如果遇到需要从源数据库提取数据的重做更改,则抽取将异常终止。
    此方法也可以与FETCHUSERID和FETCHUSERIDALIAS一起用于从ADG待机中提取。

4.3 决定使用哪种应用方法


Replicat进程负责将复制的数据应用到Oracle目标数据库。有关Oracle GoldenGate进程的更多信息,请参阅管理Oracle GoldenGate。

对于Oracle目标数据库,可以以非集成模式或集成模式运行Replicat。以下说明这些模式以及每种模式支持的数据库版本。

  • 非集成Replicat 
  • 集成Replicat 
4.3.1 关于非集成Replicat

 

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

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

图4-4说明了非集成模式下Replicat的配置。

Figure 4-4 Nonintegrated Replicat

在以下情况下使用非集成的Replicat:

  • 目标Oracle数据库是早于Oracle 11.2.0.4的版本。
  • 您希望大量使用集成Replicat模式中不支持的功能,请参阅关于Integrated Replicat

通过使用协调的Replicat配置,您可以与非集成Replicat并行应用事务。请参阅管理Oracle GoldenGate以获取更多信息。

4.3.2 关于集成复制

 

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

  • 读取Oracle GoldenGate trail文件
  • 执行数据过滤,映射和转换
  • 构造表示源数据库DML事务的逻辑更改记录(LCR)(按落实顺序)。 DDL直接由Replicat应用。
  • 通过轻量级流媒体接口,将目标数据库中的后台进程附加到数据库入站服务器。
  • 将LCR传输到入站服务器,该入站服务器将数据应用于目标数据库。

图4-5显示了集成模式下Replicat的配置。

Figure 4-5 Integrated Replicat

在单个Replicat配置中,称为应用服务器的多个入站服务器子进程并行应用事务,同时保留原始事务的原子性。您可以根据目标系统在配置Replicat过程时或根据需要动态增加此并行度。图4-6说明了使用两个并行应用程序服务器配置的集成Replicat。

Figure 4-6 Integrated Replicat with Two Parallel Apply Servers

 

Integrated Replicat异步应用事务。不具有相互依赖性的事务可以安全地执行并按顺序执行以实现快速吞吐量。具有依赖性的事务保证以与源上相同的顺序应用。

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

如果入站服务器不支持配置的功能或列类型,则Replicat会脱离入站服务器,等待入站服务器完成其队列中的事务,然后通过OCI以直接应用模式将事务应用于数据库。应用直接事务后,Replicat在集成模式下恢复处理。

Replicat在直接模式下应用以下功能:

  • DDL操作
  • 序列操作
  • TABLE或MAP参数中的SQLEXEC参数
  • EVENTACTIONS处理
  • UDT请注意,如果提取使用USENATIVEOBJSUPPORT捕获UDT,则集成的Replicat将将其应用于入站服务器,否则将由Replicat直接处理。

由于交易是以直接应用模式串行应用的,因此大量使用此类操作可能会降低集成复制模式的性能。当大多数应用处理可以在集成模式下执行时,Integrated Replicat表现最佳,请参阅实例化后的监视和控制处理

用户出口在集成模式下执行。但是,如果退出代码取决于复制流中的数据,则用户出口可能会产生意外的结果。

 4.3.2.1集成Replicat的好处

 

 以下是使用集成Replicat与非集成Replicat的好处。

  • Integrated Replicat可以在并行应用进程中自动分配繁重的工作负载,并行应用多个事务,同时保留源事务的完整性和原子性。应用进程的最小和最大数量都可以使用PARALLELISM和MAX_PARALLELISM参数进行配置。当工作负载增加时,Replicat会自动添加额外的服务器,然后在工作负载减轻时再次向下调整。
  • 集成Replicat需要最少的工作来配置。所有工作都在一个Replicat参数文件中配置,无需配置范围分区。
  • 通过Replicat和入站服务器之间的轻量级应用程序编程接口(API)为集成的Replicat启用高性能应用流式传输。
  • 障碍事务由多个服务器应用程序中的集成复制器进行协调。
  • DDL操作作为直接事务进行处理,通过在执行DDL之前等待服务器处理完成来强制执行屏障。
  • 集成Replicat以无缝方式处理瞬时复制主键更新。
  • Integrated Replicat可与单个或可插拔数据库配合使用
4.3.2.2 集成Replicat的要求

要使用集成的Replicat,必须满足以下条件。

  •  目标Oracle数据库必须是Oracle 11.2.0.4或更高版本。
  • 必须在源数据库上启用补充日志记录,以支持计算表之间的依赖关系并调度目标上的并发事务。启用所需日志记录的说明位于配置日志记录属性中。此日志记录可以在任何时候启用Oracle GoldenGate进程,但在此之前启用。
  • 集成的Parallel Replicat在Oracle Database 12.2.0.1及更高版本上受支持。

4.4 同时使用不同的捕捉和应用模式


您可以一起使用以下捕捉和应用模式:

  • 经典捕获(Oracle或非Oracle源)和非集成Replicat
  • 经典捕捉(Oracle或非Oracle源)和集成的Replicat
  • 集成捕获和非集成Replicat
  • 集成捕获和集成Replicat

您可以在同一个源Oracle GoldenGate实例内同时使用集成捕获和经典捕获,并且可以在同一个目标Oracle GoldenGate实例内同时使用集成的Replicat和非集成Replicat。此配置需要将对象仔细放置在相应的过程组中,因为在经典和集成捕捉模式之间以及在非集成和集成复制模式之间没有DDL或DML的协调。每个提取组必须根据表数据类型和属性处理适合处理模式的对象。一个Extract中没有对象可以对另一个Extract中的对象具有DML或DDL依赖关系。 Replicat配置必须应用相同类型的隔离。

推荐的Oracle GoldenGate配置(如果受Oracle版本支持)将在Oracle目标上使用一个Oracle源上的集成捕获和每个源数据库上的一个集成Replicat。集成捕捉比传统捕捉更全面地支持某些数据类型。一个集成的Replicat配置通过入站服务器支持所有Oracle数据类型,或通过在必要时切换为直接应用程序来支持所有Oracle数据类型,并保持源事务完整性。您可以根据需要将并行度设置调整为所需的应用性能级别。

如果目标数据库是不支持集成Replicat的Oracle版本,或者它是非Oracle数据库,则可以使用协调的Replicat配置。请参阅管理Oracle GoldenGate以获取更多信息。

4.5 切换到不同的过程模式


您可以在过程模式之间切换。例如,您可以从经典捕捉切换到集成捕捉,或从集成捕捉切换到经典捕捉。有关说明,请参阅在管理Oracle GoldenGate中执行管理操作。

 

参考资料


https://docs.oracle.com/goldengate/c1230/gg-winux/GGODB/choosing-capture-and-apply-modes.htm#GGODB-GUID-46EEC8E7-F1A3-41F6-ABEE-706B48DC338F

转载于:https://www.cnblogs.com/ZeroTiny/p/9184110.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值