Oracle GoldenGate复制过程

这两种Oracle GoldenGate体系结构共有许多数据复制过程。

1、什么是Extract?

Extract是一个过程,该过程被配置为针对源数据库运行或被配置为在下游挖掘数据库(仅Oracle)上运行,以捕获在其他位置的真实源数据库中生成的数据。此过程是Oracle GoldenGate的提取或数据捕获机制。

您可以为以下用例配置摘录:

  • 初始负载:将Oracle GoldenGate设置为初始负载时,提取过程直接从源对象捕获当前的静态数据集。

  • 更改同步:设置Oracle GoldenGate时为了使源数据与另一组数据保持同步,提取过程将在初始同步发生后捕获对已配置对象执行的DML和DDL操作。提取可以与数据库在同一台服务器上本地运行,也可以使用下游的集成提取在另一台服务器上本地运行,以减少开销。它存储这些操作,直到收到包含它们的事务的提交记录或回滚。如果收到回滚,它将丢弃该事务的操作。如果收到提交,它将把事务保留在磁盘中,称为一系列的文件,该文件称为跟踪,在队列中排队等待传播到目标系统。每个事务中的所有操作均作为顺序组织的事务单元写入到跟踪中,并按照它们被提交到数据库的顺序(提交序列顺序)进行。这种设计可确保速度和数据完整性。

    注意:

    即使事务可能还包括对在提取配置中的对象的操作,提取也会忽略对不在提取配置中的对象的操作。

提取过程可以配置为从三种类型的数据源中提取数据:

  • 源表:此源类型用于初始加载。
  • 数据库恢复日志或事务日志:从日志捕获时,实际方法取决于数据库类型。Oracle数据库重做日志就是这种源类型的一个示例。
  • 第三方捕获模块:此方法提供了一个通信层,该通信层将数据和元数据从外部API传递到Extract API。数据库供应商或第三方供应商提供了提取数据操作并将其传递给Extract的组件。

2、什么是Trail?

Trail是磁盘上的一系列文件,Oracle GoldenGate在其中存储捕获的更改,以支持对数据库更改的连续提取和复制。

跟踪可以存在于源系统,中间系统,目标系统或这些系统的任何组合上,具体取决于您如何配置Oracle GoldenGate。在本地系统上,它被称为提取路径(或本地路径)。在远程系统上,它称为远程路径。通过使用存储线索,Oracle GoldenGate支持数据准确性和容错能力。使用跟踪还可以使提取和复制活动彼此独立发生。将这些过程分开,您可以在如何处理和传递数据方面有更多选择。例如,您可以连续提取更改并将其存储在跟踪中,以供以后在目标应用程序需要时复制到目标中,而不是连续提取和复制更改。

另外,跟踪允许Oracle数据库在异构环境中运行。数据以一致的格式存储在跟踪文件中,因此可以由“复制”过程读取所有支持的数据库。有关更多信息,请参见关于Oracle GoldenGate Trail。

写入跟踪文件的进程:

在Oracle GoldenGate Classic中,提取和数据泵过程将写入跟踪。只有一个提取过程可以写入给定的本地路径。尽管可以在不同路径中使用相同的路径名称,但是所有本地路径必须具有不同的全路径名称。

多个数据泵进程可以各自写入相同名称的路径,但是物理路径本身必须驻留在不同的远程系统上,例如数据分布拓扑中。例如,名为Pumpm的数据泵和名为Pumpn的数据泵都可以驻留在sys01上并写入名为的远程跟踪aa。Pumpm可以写入sys02上的aa尾迹,而Pumpn可以写入sys03上的aa尾迹。

在Oracle GoldenGate MA中,分发服务器和分发路径用于写入远程跟踪。

从跟踪文件读取的进程:

数据泵和复制过程从跟踪文件中读取。数据泵从链接到Extract流程的本地跟踪中提取DML和DDL操作,如果需要,执行进一步的处理,并将数据传输到下游的下一个Oracle GoldenGate进程读取的跟踪(通常是Replicat,但是可以如果需要,则使用另一个数据泵)。

复制过程将读取跟踪,并将复制的DML和DDL操作应用于目标数据库。

跟踪文件的创建和维护:

在处理过程中会根据需要创建跟踪文件。使用ADD RMTTRAILADD EXTTRAIL命令将路径添加到Oracle GoldenGate配置时,可以为路径指定一个两个字符的名称。默认情况下,线索存储在dirdatOracle GoldenGate目录的子目录中。您可以使用TRAIL_SEQLEN_9D | TRAIL_SEQLEN_6D GLOBALS参数指定六位或九位的序列号;TRAIL_SEQLEN_9D默认设置。

创建每个新文件时,它会继承两个字符的跟踪名称,并在其后附加一个唯一的9位数字序列号(例如,从000000000到999999999 c:\ggs\dirdat\tr000000001)。当序列号达到999999999时,编号从000000000开始,并且先前的跟踪文件将被覆盖。可以使用Manager参数定期清除跟踪文件 PURGEOLDEXTRACTS

您可以创建多个跟踪,以将数据与不同的对象或应用程序分开。您将在TABLEor SEQUENCE参数中指定的对象链接到在Extract参数文件中使用EXTTRAILor RMTTRAIL参数指定的路径。为了最大化吞吐量并最小化系统上的I / O负载,提取的数据以大块的形式发送到路径中和从路径中发送出去。交易订单被保留。

将现有路径转换为9位数字序列号

您可以将命名提取组的跟踪文件从6位检查点记录转换为9位检查点记录。使用 convchk 本地命令可正常停止您的提取,然后convchk 按如下所示进行升级,以将其转换为9位数字的轨迹 :

convchk extract trail seqlen_9d

开始提取

您可以使用以下convchk 命令通过相同的过程将9位数字降级为6位数字 :

convchk extract trail seqlen_6d

注意:Extract Files:您可以配置Oracle GoldenGate将提取的数据存储在提取文件中而不是跟踪中。提取文件可以是单个文件,也可以将其配置为在预期操作系统限制文件大小的情况下滚动到多个文件中。除了不记录检查点外,它与跟踪类似。一个或多个文件在运行期间自动创建。适用于跟踪的相同版本控制功能也适用于提取文件。

什么是Replicat?

Replicat是将数据传递到目标数据库的过程。它读取目标数据库上的跟踪文件,重构DML或DDL操作,并将其应用于目标数据库。

Replicat过程使用动态SQL一次编译一条SQL语句,然后使用不同的绑定变量多次执行该语句。您可以配置复制过程,以便在将复制的操作应用于目标数据库之前等待特定的时间。例如,可能需要延迟来防止错误SQL的传播,控制跨不同时区的数据到达或为其他计划中的事件发生留出时间。

对于Oracle GoldenGate的两个常见用例,复制过程的功能如下:

  • 初始负载:当您为初始负载设置Oracle GoldenGate时,复制过程会将静态数据副本应用于目标对象,或将数据路由到高速批量加载实用程序。
  • 更改同步:设置Oracle GoldenGate以使目标数据库与源数据库保持同步时,复制过程会使用本机数据库接口或ODBC将源操作应用于目标对象,具体取决于数据库类型。

您可以并行配置多个复制过程以及一个或多个提取过程和数据泵,以提高吞吐量。为了保持数据完整性,每组进程都处理不同的对象集。为了区分复制过程,请为每个过程分配一个组名

如果您不想使用多个复制过程,则可以并行,协调,集成模式配置单个复制过程。

  • 并行模式并行复制使用非集成选项支持所有数据库。并行复制仅支持从具有完整元数据的跟踪复制数据,这需要经典的跟踪格式。与集成复制类似,它考虑了事务之间的依赖性。依赖性计算,映射和应用程序的并行性在数据库外部执行,因此可以卸载到另一台服务器。在此过程中维护事务完整性。此外,并行复制通过将大型事务拆分为多个块并并行应用来支持大型事务的并行应用。
  • Oracle GoldenGate支持的所有数据库都支持协调模式。在协调模式下,复制过程是线程化的。一个协调器线程产生并协调一个或多个并行执行复制的SQL操作的线程。协调的复制过程使用一个参数文件,并作为一个单元进行监视和管理。
  • Oracle Database 11.2.0.4或更高版本支持集成模式。在集成模式下,复制过程利用了Oracle数据库中可用的应用处理功能。在单个Replicat配置中,称为应用服务器的多个入站服务器子进程将并行应用事务,同时保留原始事务的原子性。

你可以延迟复制,以便在将复制的操作应用于目标数据库之前,它等待特定的时间。可能需要延迟,例如,以防止错误的SQL传播,控制跨不同时区的数据到达或为其他计划的事件发生留出时间。延迟的长度由DEFERAPPLYINTERVAL参数控制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

awk教程入门与实例练习(一)

Awk 是一种非常好的语言,同时有一个非常奇怪的名称。在本系列(共三篇文章)的第一篇文章中,Daniel Robbins 将使您迅速掌握 awk 编程技巧。随着本系列的进展,将讨论更高级的主题,最后将演示一个真正的高级 a…

HDFS-简介

HDFS 是 Hadoop Distribute File System 的简称,意为:Hadoop 分布式文件系统,是一种旨在在商品硬件上运行的分布式文件系统。它与现有的分布式文件系统有许多相似之处。但是,与其他分布式文件系统的区别很明显。HDFS具有高度的容错…

awk教程入门与实例练习(二)

在这篇 awk 简介的续集中,Daniel Robbins 继续探索 awk(一种很棒但有怪异名称的语言)。Daniel 将演示如何处理多行记录、使用循环结构,以及创建并使用 awk 数组。阅读完本文后,您将精通许多 awk 的功能,而且…

HDFS-配置项

一、core-site.xml与core-default.xml core-default.xml与core-site.xml的功能是一样的&#xff0c;如果在core-site.xml里没有配置的属性&#xff0c;则会自动会获取core-default.xml里的相同属性的值 <configuration><property><!-- 这个属性用来指定namenod…

awk教程入门与实例练习(三)

在 awk 系列的这篇总结中&#xff0c;Daniel 向您介绍 awk 重要的字符串函数&#xff0c;以及演示了如何从头开始编写完整的支票簿结算程序。在这个过程中&#xff0c;您将学习如何编写自己的函数&#xff0c;并使用 awk 的多维数组。学完本文之后&#xff0c;您将掌握更多 awk…

HDFS-常用命令

1. -help&#xff1a;显示帮助信息 hadoop fs -help rmshel2. -ls&#xff1a;显示目录信息 hadoop fs -ls /3. -mkdir&#xff1a;在HDFS上创建目录 hadoop fs -mkdir -p /user/ha4. -moveFromLocal&#xff1a;从本地剪切粘贴到HDFS hadoop fs -moveFromLocal ~/test.txt…

如何关闭WINDOWS2003 DEP数据保护功能

近来很多朋友和客户都使用了WINDOWS2003来架设自己的GAME SERVER,但有很多朋友反映说,不如WINDOWS2000好,原因不是稳定,而是成功率高,和简单.但我个人觉得WINDOWS2003还是不错的系统,如果朋友们都不用这个系统,而用WINDOWS2000 有点不值得了.我就开始找寻这样的问题.我对GAME 不…

JDK源码解析之 java.lang.Thread

位于java.lang包下的Thread类是非常重要的线程类&#xff0c;它实现了Runnable接口&#xff0c;今天我们来学习一下Thread类&#xff0c;在学习Thread类之前&#xff0c;先介绍与线程相关知识&#xff1a;线程的几种状态、上下文切换&#xff0c;然后接着介绍Thread类中的方法的…

TASKLIST

TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]参数列表:/S system 指定连接到的远程系统。/U [domain/]user 指定使用哪个用户执行这个命令。/P [password] 为指定的用户指定密码。/SVC 显示每个进程中的服务…

JDK源码解析之 java.lang.ThreadLocal

此类提供线程局部变量。这些变量与普通变量不同&#xff0c;每个访问一个线程&#xff08;通过其get或set方法&#xff09;的线程 都有其自己的&#xff0c;独立初始化的变量副本。 ThreadLocal实例通常是希望将状态与线程关联的类中的私有静态字段&#xff08;例如&#xff0c…

华尔街顶级大师胡立阳名言

1.不要听“亲朋好友”的话&#xff0c;他们只会让你成为“平凡人”。 2.不要只会“用功读书”&#xff0c;重要的是“要读对书”。  3&#xff0e;不要只是“努力工作”&#xff0c;重要的是“做对工作”。   4.不要指示结交“志趣相投”的朋友&#xff0c;否则你永远只看到…

JDK源码解析之 Java.lang.Enum

Enum是一个特殊的类. 我们不能以class Xxx extends Enum的方式手动继承, 必须写成enum Xxx的形式; 然而这段枚举类的定义在编译之后又变回了class Xxx extends Enum. 一、类定义 public abstract class Enum<E extends Enum<E>>implements Comparable<E>, …

Linux下的一些简单网络配置命令介绍

1、 ifconfig可以使用ifconfig命令来配置并查看网络接口的配置情况。例如&#xff1a;&#xff08;1&#xff09; 配置eth0的IP地址&#xff0c; 同时激活该设备。#ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up&#xff08;2&#xff09; 配置eth0别名设备eth0:1的IP地…

JDK源码解析之 java.lang.Throwable

在 Java 中&#xff0c;所有的异常都有一个共同的祖先 Throwable&#xff08;可抛出&#xff09;。Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性。 一、类定义 public class Throwable implements Serializable {}Serializable&#xff1a;可…

JDK源码解析之 java.lang.Error

java.lang.Error 错误。是所有错误的基类&#xff0c;用于标识严重的程序运行问题。这些问题通常描述一些不应被应用程序捕获的反常情况。 一、源码部分 //继承了java.lang.Throwable public class Error extends Throwable {//适用于java序列化机制,过判断类的serialVersionU…

linux命令之有关网络的操作命令

1&#xff0e;hostname 命令&#xff08;1&#xff09;一般格式&#xff1a;hostname [选项] [主机名]&#xff08;2&#xff09;说明&#xff1a;显示或设置系统的主机名&#xff1b;如果无任何选项和主机名&#xff0c;则用于显示系统的主机名。&#xff08;3&#xff09…

JDK源码解析之 java.lang.Exception

异常。是所有异常的基类&#xff0c;用于标识一般的程序运行问题。这些问题通常描述一些会被应用程序捕获的反常情况。 一、源码部分 //继承了java.lang.Throwable public class Exception extends Throwable {//适用于java序列化机制,过判断类的serialVersionUID来验证的版本…

linux命令之有关关机和查看系统信息的命令

shutdown 正常关机 reboot 重启计算机 ps 查看目前程序执行的情况top 查看目前程序执行的情景和内存使用情况kill 终止一个进程date 更改或查看目前时间 一&#xff0e;查看系统的进程 要管理进程&#xff0c;首先要知…

HDFS-文件读写过程

一、文件读取 Client向NameNode发起RPC请求&#xff0c;来确定请求文件block所在的位置&#xff1b;NameNode会视情况返回文件的部分或者全部block列表&#xff0c;对于每个block&#xff0c;NameNode 都会返回含有该 block 副本的 DataNode 地址&#xff1b; 这些返回的 DN 地…

linux命令复习之有关磁盘空间的命令

1&#xff0e;mount 命令&#xff08;1&#xff09;一般格式&#xff1a;mount 文件系统类型 [选项] 挂接设备&#xff08;2&#xff09;说明&#xff1a;将某个文件系统挂载到某个目录上。当这个命令执行成功后&#xff0c;直到使用 umount 将这个文件系统移除为止。&…