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
OGG选择捕捉和应用模式的更多相关文章
- WCF开发时如何选择正确的实例模式(InstanceMode)?
WCF开发时如何选择正确的实例模式(InstanceMode)? 在使用WCF实例模型时,你是否思考过这几个的问题: ”WCF中的实例模式如何正确应用”? ”使用WCF中的实例模式有何原则可以遵循 ...
- k8s集群Job负载 支持多个 Pod 可靠的并发执行,如何权衡利弊选择适合的并行计算模式?
k8s的Job负载 支持多个 Pod 可靠的并发执行,如何权衡利弊选择适合的并行计算模式? 简单聊聊你对工作负载Job的理解? Job 支持多个 Pod 可靠的并发执行,如何权衡利弊选择适合的并行计算 ...
- SpringCloud系列九:SpringCloudConfig 基础配置(SpringCloudConfig 的基本概念、配置 SpringCloudConfig 服务端、抓取配置文件信息、客户端使用 SpringCloudConfig 进行配置、单仓库目录匹配、应用仓库自动选择、仓库匹配模式)
1.概念:SpringCloudConfig 基础配置 2.具体内容 通过名词就可以发现,SpringCloudConfig 核心作用一定就在于进行配置文件的管理上.也就是说为了更好的进行所有微服务的 ...
- 生产环境该如何选择lvs的工作模式,和哪一种算法
lvs的工作模式有这几种: 1.RR : 轮叫算法,平均分配,你一个,我一个: 2.WRR :加权轮叫算法,谁的处理能力强,谁的权重就高: 3.LC :最少链接算法,谁的连接数最少,谁就处理更多的链接 ...
- <<< 将一个rar格式的文件变成一张jpg图片,按照后缀来选择打开他的模式
把一个压缩格式和一张图片合成,按照后缀来判断他打开是图片还是解压文件,后缀是jpg打开的就是一张图片,后缀是rar打开的就是一个压缩包,里面存放你放的东西 :例如(秘密) 准备一张图片,test. ...
- 建立Oracle GoldenGate凭证
了解如何为与数据库交互的流程创建数据库用户,分配正确的权限并防止未经授权使用凭据. 主题: 为Oracle GoldenGate分配凭证 保护Oracle GoldenGate凭证 3.1 为Orac ...
- 【翻译自mos文章】OGG的集成捕捉模式支持Oracle database标准版么?
OGG的集成捕捉模式支持Oracle database标准版么? 来源于: Does OGG 11.2.1 Integrated Capture Work with Oracle Database S ...
- 主动模式FTP与被动模式FTP该如何选择
主动模式FTP与被动模式FTP该如何选择 无论是主动模式还是被动模式,其要进行文件传输都必须依次建立两个连接,分别为命令连接与数据连结.而主动模式与被动模式的差异主要体现在数据连结通道上.为了说明两 ...
- MySQL binlog日志三种模式选择及配置
在认识binlog日志三种模式前,先了解一下解析binlog日志的命令工mysqlbinlog.mysqlbinlog工具的作用是解析mysql的二进制binlog日志内容,把二进制日志解析成可以在M ...
随机推荐
- 解决mysql乱码问题
在mysql根目录下创建my.ini文件 my.ini内容为: [mysqld] # 设置默认字符集,只会影响新建数据库的默认字符集 character-set-server=utf8
- Python之包
包是一种通过使用'.模块名'来组织python模块名称空间的方式.创建包是为了用文件夹将文件/模块组织起来,创建包的目的不是为了运行,而是为了被导入使用.包的本质就是一个文件,其功能是将文件组织起来, ...
- day-04(jquery)
回顾: js: 组成部分: ECMAScript BOM DOM 变量声明 var 变量名=初始化值; 数据类型: 原始类型 Undefined Null String Number Boolean: ...
- 2017-12-18python全栈9期第三天第三节之int bool str转换之数字转换成二进制的位数
#!/user/bin/python# -*- coding:utf-8 -*-i= 100print(i.bit_length())
- SpringBoot笔记十四:消息队列
目录 什么是消息队列 消息队列的作用 异步通信 应用解耦 流量削峰 RabbitMQ RabbitMQ流程简介 RabbitMQ的三种模式 安装RabbitMQ RabbitMQ交换器路由和队列的创建 ...
- idea整合SVN以及SVN的使用
idea整合SVN以及SVN的使用: 1:下载插件: 运行并安装: 安装后的目录: 2-1 打开bin目录 :复制svn.exe的文件路径: 2:打开IDEA的File-->setting: o ...
- LR与SVM的异同
原文:http://blog.sina.com.cn/s/blog_818f5fde0102vvpy.html 在大大小小的面试过程中,多次被问及这个问题:“请说一下逻辑回归(LR)和支持向量机(SV ...
- ArcMap登录和ArcGIS online都是灰色,无法连接网络的解决方法
此问题可能由多种原因造成,表现为系统托盘中的 ArcGIS Online 地球图标断开连接(显示红色×). 解决方法: 方法一: 在系统托盘中的 ArcGIS Online 地球图标右键单击此图标 & ...
- 043、data-packed volume container (2019-03-06 周三)
参考https://www.cnblogs.com/CloudMan6/p/7203285.html volume container 的数据归根到底还是在host上,我们能不能把数据完全放到 ...
- 26. SpringBoot 初识缓存及 SimpleCacheConfiguration源码解析
1.引入一下starter: web.cache.Mybatis.MySQL @MapperScan("com.everjiankang.cache.dao") @SpringBo ...