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 ...
随机推荐
- tcping 与 telnet命令粗略使用
使用tcping命令,在网上下载tcping文件,放入c盘的system32目录下,即可使用 使用tcping命令用来ping某个端口,能通的话,说明从外部到端口是没有问题的 使用telnet ...
- mac/Linux源码安装TensorFlow
因为用pip命令直接下载安装会链接到google,导致打不开,比如使用pip install tensorflow碰到如下的问题.因此在本文中,主要介绍了如何通过源码进行TensorFlow的安装 $ ...
- go官方的http.request + context样例
go官方的http.request + context样例 https://github.com/DavadDi/go_study/blob/master/src/httpreq_context/ma ...
- python机器学习-sklearn挖掘乳腺癌细胞(二)
python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制) 网易云观看地址 https://study.163.com/course/introduction.htm?courseId=10 ...
- java 中+的运算规则
1.Java中的加法的运算优先级是从左往右的 2.字符串""隔壁跟的+号意思是字符串的连接 就不是加法了 3.'字符' 后面的+号意思是'字符'的ascall码值和后面的值相加 c ...
- Linux进程和任务管理
process 进程 进程-线程等 Job 前台--后台: 后台任务"与"前台任务"的本质区别只有一个:是否继承标准输入 联机--脱机 -以及crontab 脱机管理主要 ...
- Java Web之JSP
什么是JSP? JSP就是一个可以写Java代码的HTML页面 JSP是什么? JSP是Servlet,JSP的本质就是Servlet Tomcat的web.xml文件下有这样几段代码: 看到下面的通 ...
- @jsonProperty 实现返回自定义属性名字
实现场景: 比如说前端需要返回userPic 这个字段,但是我们数据库定义的是pic字段. 可以用@jsonProperty 来实现 public class User{ @JsonProperty( ...
- HDU - 4578 Transformation(线段树区间修改)
https://cn.vjudge.net/problem/HDU-4578 题意 4种操作,区间加,区间乘,区间变为一个数,求区间的和.平方和以及立方和. 分析 明显线段树,不过很麻烦..看kuan ...
- bzoj千题计划323:bzoj1951: [Sdoi2010]古代猪文(Lucas+CRT+欧拉定理)
https://www.lydsy.com/JudgeOnline/problem.php?id=1951 先欧拉降幂 然后模数质因数分解 分别计算组合数的结果,中国剩余定理合并 #include&l ...