1Oracle GoldenGate处理方法和支持的数据库Oracle GoldenGate在多样和异构的基础IT平台中,可以在事务级别上进行数据交换和数据操作。在保证交易完整性和最小的开销的条件下,来迁移你已提交的业务,在目前现有的it架构中。它的模块化架构,可以让你更灵活地提取和复制你所选定的数据记录,交易的变化以及变化的DDL(数据定义语言)。 Note:支持DDL,一定的拓扑结构,获取和传送不同的数据类型。详见Oracle GoldenGate installation and configuration documentation。 这种灵活性的软件,Oracle Golden Gate支持过滤,传送,定制化处理的功能,可以支持你多种多样的业务需求。
- 业务持续性和高可用性。
- 数据初始化和数据库迁移。
- 数据集成。
- 决策支持和数据仓库。
- 静态提取一个数据库的数据记录,用于加载到另一个数据库。
- 持续性的提取DML和DDL的变化数据来保存源端和目标端数据库的一致性。
- 提取一个数据库,复制到一个文件上。
Oracle GoldenGate由以下组件构成:
- Extract (抽取进程)
- Data pump (数据泵技术)
- Replicat (复制基础)
- Trails or extract files (跟踪文件和抽取文件)
- Checkpoints (检查点)
- Manager (管理进程)
- Collector (收集进程)
- Initial loads(初始化加载):对于初始数据的加载,Extract进程可以直接从源端数据中抽取当前的,静态数据集
- Change synchronization:(变化数据的同步):为了保持源数据与目标数据集的数据保持一致性,Extract进程可以捕获DML和DDL操作来保证同步性。
Extract进程通过下列的方法来捕获数据源:
- Source tables(源数据表)
- The database recovery logs or transaction logs (数据库恢复日志和事务日志)
- A third-party capture module(第三方捕获模块)
- Protection against network and target failures(保护网络的传输失败和目标数据库失败)
- You are implementing several phases of data filtering or transformation. (您正在执行数据过滤和数据转换的几个阶段)
- Consolidating data from many sources to a central target. (来自多个数据源合并至一个数据库中)
- Synchronizing one source with multiple targets. (一个数据源同步至多个目标数据库中)
- Initial loads(初始化加载):对于初始数据的加载,Replicat进程直接应用一个数据备份集来应用至目标数据库中,并使用高速批量加载工具来加载数据。
- Change synchronization:(变化数据的同步):配置数据同步,Replicat进程直接应用已经复制过来的源数据操作。应用的方式是使用本地数据库接口或者是ODBC,具体依据数据库类型。
你可以使用多个复制进程,这些Replicat进程可以带着一个或者多个Extract进程和Data pump进程以并行地方式来增加吞吐量。为了保证数据完整性,每一个进程集能处理不同的一个对象集合。为了区分不同的Relicat进程,你可以为每一个组去一个名字(see Section 1.4, "Overview of Groups"). 与使用多个Replicat进程不同的是,你可以配置一个以coordinated 或者integrated 模式的Replicat进程。
- Coordinated模式支持所有的数据库(GoldenGate产品能支持的数据库),在Coordinated模式下,Replicat是线程化的,一个Coordinated线程可以生成和协调多个线程来并发地执行多个SQL操作。一个Coordinated Replicat要使用一个参数文件而且要被作为一个单元来管理和监控,参见14.7节,"Creating an Online Replicat Group".
- Integrated 模式支持11.2.0.4 Oracle数据库版本或者之后的版本,在Integrated模式,Replicat进程是利用Oracle数据库中可用的进程功能。通过一个单一的Replicat配置,通过多个服务子进程来并行执行事务,用于保证原始事务的原子性。See Installing and Configuring Oracle GoldenGate for Oracle Database for more information about integrated mode.
你可以使用延迟复制,通过等待一段时间之后,才应用相关的操作至目标数据库中,延迟复制是可取的。例如,为了防止错误的SQL扩展语句。延迟的时间由DEFERAPPLYINTERVAL参数控制。 相关的其他参数,例如: BATCHSQL, GROUPTRANSOPS,MAXTRANSOPS参数的详细信息,可参考 Reference for Oracle GoldenGate for Windows and UNIX.
2.4 Trails的概述为了保证连续地抽取和数据库变化数据的同步,Oracle GoldenGate会把捕获到的变化的数据临时放置到一连串的文件中,这些文件取名为trail。一个trail文件可以存储在源端,可以存储在一个中介系统,也可以存储在一个目标端,取决你如何配置Oracle GoldenGate。 在本地源端,此文件叫做extract file(或者是 local trail)。在远程端,此文件叫做 remote trail。 通过使用跟踪(trail)文件来进行存储,Oracle GoldenGate支持数据的准确性和容错性。 (see Section 1.2.6, "Overview of Checkpoints")。跟踪(trail)文件的使用可以允许抽取和复制这两种工作活动完全独立工作,随着这些进程的分离,你可以有更多的选择来如何处理和传输数。例如,取代连续抽取和复制的工作,你可以连续抽取数据,但可以把它们放置在trail文件中,当目标应用需要他们的时候, 再把这些文件传递到目标端。那些写入和读取trail文件的进程主Extract进程和data-pump Extract进程会把数据写入到一个trail文件。每一个在线的Extract进程都链接这一个trail文件。只有主Extract进程可以写入到一个指定的local trail文件中。所有的local trail文件必须有不同的名称。 多个data-pump Extract进程每一个都可以写入到一个相同名称的trail文件中,但是这些trail文件的物理结构是在不同的远程端的,其意思是数据物理分布的拓扑结构。例如,一个data-pump进程命名为1pump和一个data-pump进程命名为2pump同事驻留在sys01源端上,并写入一个remote trail文件,命名为aa。其中1pump写入的aa在sys02远程端上,2pump写入的aa在sys03远程端上。 读取trail文件的线程是:- Data-pump Extract进程:是从local trail文件中抽取DML和DDl的操作记录。这个local trail文件链接着一个之前的Extract进程(一般是主Extract进程),如果需要下一步操作。就需把数据传送到一个trail文件中,这个trail文件将由下一个Oracle GoldenGate进程读取(一般是Relicat进程,但也可能是另外一个Data-pump进程)
- Replicat进程:读取trail文件,并应用已经复制过来的DML和DDl操作到目标数据库中。
- 启动Oracle GoldenGate的进程
- 启动动态进程
- 维护进程的端口号
- 执行跟踪管理
- 创建事件、错误和阈值报告
- 从远端的Extract进程中获取一个连接Manager进程的连接请求。扫描并绑定一个端口号,并把这个端口号发送给Manager进程,让它分配一个任务用于请求Extracat进程。
- 通过Extract进程获取到的变化地数据记录,写入至一个trail文件中。Manager进程会自动开启Collector进程,这个操作用户不用干预。Collector进程只接受一个Extract进程,所以Collect进程是为Extract进程而生的,当Extract进程终止后,Collect进程也会终止。
默认情况下,Extract进程会在源端建立一个TCP/IP连接来桥接目标端的Collector进程,但是Oracle GoldenGate配置后也可以让Collector进程发起TCP/IP连接。如果需要的话,初始化连接可以从目标端发起,例如:目标端是一个受信的网络区域,但源端不是一个受信的网络区域。
3处理类型的概述根据需求,Oracle GoldenGate可以配置以下处理乐行: 一个在线的Extract进程或者Replicat进程直到用户干预停止。在线进程会在trail文件中维护检查点,所以中断后可以及时恢复。你使用在线进程可以不间断地抽取数据并且复制DML和DDL操作来保持源端和目标端的数据同步。EXTRACT和REPLICAT参数可以应用此处理类型。 一个source-is-table (也可以被称为初始化加载抽取)extract进程可以从源数据库中的一组静态对象数据直接加载到另一个数据库中。这个过程不需要检查点,SOURCEISTABLE参数应用此处理类型 一个special-run Replicat进程,会在已知开始位置和终点位置的情况下应用数据。你可以使用special Replicat进程来初始化加载数据,也可以通过批处理trail文件也加载数据,例如只执行一天的跟踪数据而不是持续进行。这个过程不需要维护检查点,因为运行的时间点都是已知的。可以通过SPECIALRUN参数来配置。 Extract进程直接通过TCP/IP与Replicat进程通信是远程工作的一种特殊类型。既不是一种Collector进程也不是把临时数据存储在trail文件中。这个远程任务可以通过RMTTASK参数来定义。 4Groups的概述为了在一个环境中区分多个Extract进程和Replicat进程。你需要定义进程组。例如,为了可以并行的方式复制不同的数据集,你需要创建两个Replicat进程组。 一个进程组有一个进程(或者是Extract进程亦或者是Replicat进程),对应的参数文件,对应的checkpoint文件,以及与进程相关的其他文件。对于Replicat进程,一个组还需包含checkpoint表。你可以通过ADD EXTRACT 和 ADD REPLICAT 命令定义组。 所有的文件和checkpoints都可以在组本身中共享,任何时候你可以通过命令来控制和查看处理,通过你提供的组名或者对应的多组的一个通配符。 5提交序列号(CSN)的概述当在使用Oracle GoldenGate的时候,你需要参考提交的序列号,CSN是Oracle GoldenGate构建中一个保证事务一致性和数据完整性的标识符。它是代表一个事务提交到数据库中的唯一时间点。 CSN可以要求Extrcat进程在事务日志中哪个位置提取数据,和重新定位Replicat进程中的trail位置,或做其他用途。