GoldenGate学习笔记一_进程、目录与参数配置
来源:互联网 发布:视频照片制作软件 编辑:程序博客网 时间:2024/05/22 11:42
1、GoldenGate进程与文件
Manager进程
Manager进程运行在源端和目标端上,它主要作用包括:启动、监控、重启GoldenGate的其他进程,报告错误及时间,分配数据存储空间,发布阀值报告等。
每个源端或者目标端有且只有一个Manager进程,该进程有两个状态RUNNING和STOPPED。
在Windows上,Manager进程作为一个服务来启动,在Linux/Unix系统中,它是一个操作系统进程。
Extract进程
Extract进程运行在数据库源端,负责从源端数据表(初始化过程)或者日志(同步过程)中捕获数据。
在初始数据装载阶段,Extract进程直接从源端的数据表中抽取数据。
初始数据同步完成以后,在变化捕获阶段,Extract进程负责捕获源端数据的变化。
Extract进程利用其内在的checkpoint机制,周期性地检查并记录其读写的位置,通常写入到一个本地的trail文件。这种机制保证了如果Extract进程终止或操作系统宕机,重启Extract进程后,GoldenGate能够恢复到以前的状态,从上一个断点处继续往下运行,而不会有任何数据损失。
Extract进程的状态包括STOPPED、STARTING、RUNNING、ABENDEN(异常终止)。
Pump进程
Pump进程运行在数据库源端,如果源端使用了本地的trail文件,那么Pump进程就会把trail以数据块的形式通过TCP/IP协议发送到目标端,这也是推荐的方式。
Pump进程本质是Extract进程的一种特殊形式,如果不使用trails文件,那么就是Extract进程在抽取完数据以后,直接投递到目标端。
与Pump进程相对应的叫Server Collector进程,它运行在目标端,其任务就是把Extract/Pump投递过来的数据块重新组装成trail文件(远程trail文件)。
Trail文件
为了更有效,更安全地把数据库事务信息从源端投递到目标端,GoldenGate使用Trail文件。
trail文件存在的目的是为了防止单点故障,将事务信息持久化,并且使用checkpoint机制来记录其读写位置,如果发生故障,则数据可以根据checkpoint记录的位置来重传。
Replicat进程
Replicat进程运行在目标端,负责读取目标端trail文件中的内容,并将其解析为DML或DDL语句,然后应用到目标数据库。和Extract进程一样,Replicat进程也有其内部的checkpoint机制,保证进程重启后可以从上次记录的位置开始恢复。其运行状态包括STOPPED、STARTING、RUNNING、ABENDEN(异常终止)。
2、GoldenGate目录结构
dirchk:用来存放检查点(Checkpoint)文件。
dirdat:用来存放Trail文件。
dirdef:用来存放通过DEFGEN工具生成的源或目标端数据定义文件。
dirpcs:用来存放进程状态文件。
dirprm:用来存放配置参数文件。
dirrpt:用来存放进程报告文件。
dirsql:用来存放SQL脚本文件。
dirtmp:当事务所需要的内存超过已分配内存时,缺省存储在这个目录。
3、一些重要的进程配置参数
3.1 TABLE|MAP
TABLE用于extract进程;MAP用于replicat进程。
抽取test模式下所有表:
TABLE test.*;
MAP用于replicat进程应用变更时执行的对象映射。
将源库test模式中的表映射到目标库test模式中:
map test.*,target test.*;
3.2 DDL
DDL用于extract和replicat进程。
抽取(通过中间表)源数据库所有DDL操作:
DDL INCLUDE ALL;
抽取源库中test模式下对象的DDL操作:
DDL INCLUDE OBJNAME test.*
当extract进程中仅使用DDL而不含任何过滤的话,将捕获所有支持的DDL操作。
当replicat进程中仅使用DDL而不含任何过滤的话,将应用trail中所有的DDL操作。
DDL中组合过滤条件的例子:
DDL &
INCLUDE UNMAPPED &
OPTYPE alter &
OBJTYPE 'table' &
OBJNAME users.tab* &
INCLUDE MAPPED OBJNAME * &
EXCLUDE MAPPED OBJNAME temporary.tab
3.3 KEYCOLS
在TABLE|MAP中使用的参数,用来解决表没有主键和唯一键的情况下,如何定位行的问题。
GoldenGate在定位目标表中的行时,使用的是表的主键或者唯一键,但是如果源表上没有这些键,那么GG会利用源表所有字段算出一个虚拟的主键,然后通过这个虚拟主键再去目标表上找到相同的行,此时如果目标表字段和源表字段定义相同,则不会出现问题,但是如果目标表上的列定义与源表不同,那么在同步时,通过这个虚拟主键将找不到目标表上的对应行,导致无法同步。为了解决这个问题,可以为TABLE|MAP中配置KEYCOLS参数(默认情况为表的所有列作为KEYCOLS)。
例子:
TABLE hr.emp, KEYCOLS (id, first, last, birthdate);
MAP scott.orders, TARGET scott.orders, KEYCOLS(OID);
3.4 HANDLECOLLISIONS
HANDLECOLLISIONS是一个replicat进程参数。在replicat进程中使用该参数时,即使目标数据库环境中存在数据完整性问题(如 update、delete 操作遇到缺失行或重复的插入操作),replicat进程仍然能够继续处理trail中的数据。
a、当replicat遇到一个列上的更新,
如果在目的端没有发现该行的old key,队列文件中的变化记录被转化为插入;
如果目的端存在该行的new key,replicat删除包含old key的这行记录,然后包含new key的行被队列文件的值覆盖。
b、当replicat遇到一个重复记录错误,初始化加载应用的静态记录被队列文件中的改变记录覆盖。
c、当replicat在更新或删除操作不影响键列时遇到一个丢失记录错误,队列中的变化记录被丢弃。
3.5 ASSUMETARGETDEFS
ASSUMETARGETDEFS是一个replicat进程参数,当源表与目标表结构一致时,使用此参数。
Manager进程
Manager进程运行在源端和目标端上,它主要作用包括:启动、监控、重启GoldenGate的其他进程,报告错误及时间,分配数据存储空间,发布阀值报告等。
每个源端或者目标端有且只有一个Manager进程,该进程有两个状态RUNNING和STOPPED。
在Windows上,Manager进程作为一个服务来启动,在Linux/Unix系统中,它是一个操作系统进程。
Extract进程
Extract进程运行在数据库源端,负责从源端数据表(初始化过程)或者日志(同步过程)中捕获数据。
在初始数据装载阶段,Extract进程直接从源端的数据表中抽取数据。
初始数据同步完成以后,在变化捕获阶段,Extract进程负责捕获源端数据的变化。
Extract进程利用其内在的checkpoint机制,周期性地检查并记录其读写的位置,通常写入到一个本地的trail文件。这种机制保证了如果Extract进程终止或操作系统宕机,重启Extract进程后,GoldenGate能够恢复到以前的状态,从上一个断点处继续往下运行,而不会有任何数据损失。
Extract进程的状态包括STOPPED、STARTING、RUNNING、ABENDEN(异常终止)。
Pump进程
Pump进程运行在数据库源端,如果源端使用了本地的trail文件,那么Pump进程就会把trail以数据块的形式通过TCP/IP协议发送到目标端,这也是推荐的方式。
Pump进程本质是Extract进程的一种特殊形式,如果不使用trails文件,那么就是Extract进程在抽取完数据以后,直接投递到目标端。
与Pump进程相对应的叫Server Collector进程,它运行在目标端,其任务就是把Extract/Pump投递过来的数据块重新组装成trail文件(远程trail文件)。
Trail文件
为了更有效,更安全地把数据库事务信息从源端投递到目标端,GoldenGate使用Trail文件。
trail文件存在的目的是为了防止单点故障,将事务信息持久化,并且使用checkpoint机制来记录其读写位置,如果发生故障,则数据可以根据checkpoint记录的位置来重传。
Replicat进程
Replicat进程运行在目标端,负责读取目标端trail文件中的内容,并将其解析为DML或DDL语句,然后应用到目标数据库。和Extract进程一样,Replicat进程也有其内部的checkpoint机制,保证进程重启后可以从上次记录的位置开始恢复。其运行状态包括STOPPED、STARTING、RUNNING、ABENDEN(异常终止)。
2、GoldenGate目录结构
dirchk:用来存放检查点(Checkpoint)文件。
dirdat:用来存放Trail文件。
dirdef:用来存放通过DEFGEN工具生成的源或目标端数据定义文件。
dirpcs:用来存放进程状态文件。
dirprm:用来存放配置参数文件。
dirrpt:用来存放进程报告文件。
dirsql:用来存放SQL脚本文件。
dirtmp:当事务所需要的内存超过已分配内存时,缺省存储在这个目录。
3、一些重要的进程配置参数
3.1 TABLE|MAP
TABLE用于extract进程;MAP用于replicat进程。
抽取test模式下所有表:
TABLE test.*;
MAP用于replicat进程应用变更时执行的对象映射。
将源库test模式中的表映射到目标库test模式中:
map test.*,target test.*;
3.2 DDL
DDL用于extract和replicat进程。
抽取(通过中间表)源数据库所有DDL操作:
DDL INCLUDE ALL;
抽取源库中test模式下对象的DDL操作:
DDL INCLUDE OBJNAME test.*
当extract进程中仅使用DDL而不含任何过滤的话,将捕获所有支持的DDL操作。
当replicat进程中仅使用DDL而不含任何过滤的话,将应用trail中所有的DDL操作。
DDL中组合过滤条件的例子:
DDL &
INCLUDE UNMAPPED &
OPTYPE alter &
OBJTYPE 'table' &
OBJNAME users.tab* &
INCLUDE MAPPED OBJNAME * &
EXCLUDE MAPPED OBJNAME temporary.tab
3.3 KEYCOLS
在TABLE|MAP中使用的参数,用来解决表没有主键和唯一键的情况下,如何定位行的问题。
GoldenGate在定位目标表中的行时,使用的是表的主键或者唯一键,但是如果源表上没有这些键,那么GG会利用源表所有字段算出一个虚拟的主键,然后通过这个虚拟主键再去目标表上找到相同的行,此时如果目标表字段和源表字段定义相同,则不会出现问题,但是如果目标表上的列定义与源表不同,那么在同步时,通过这个虚拟主键将找不到目标表上的对应行,导致无法同步。为了解决这个问题,可以为TABLE|MAP中配置KEYCOLS参数(默认情况为表的所有列作为KEYCOLS)。
例子:
TABLE hr.emp, KEYCOLS (id, first, last, birthdate);
MAP scott.orders, TARGET scott.orders, KEYCOLS(OID);
3.4 HANDLECOLLISIONS
HANDLECOLLISIONS是一个replicat进程参数。在replicat进程中使用该参数时,即使目标数据库环境中存在数据完整性问题(如 update、delete 操作遇到缺失行或重复的插入操作),replicat进程仍然能够继续处理trail中的数据。
a、当replicat遇到一个列上的更新,
如果在目的端没有发现该行的old key,队列文件中的变化记录被转化为插入;
如果目的端存在该行的new key,replicat删除包含old key的这行记录,然后包含new key的行被队列文件的值覆盖。
b、当replicat遇到一个重复记录错误,初始化加载应用的静态记录被队列文件中的改变记录覆盖。
c、当replicat在更新或删除操作不影响键列时遇到一个丢失记录错误,队列中的变化记录被丢弃。
3.5 ASSUMETARGETDEFS
ASSUMETARGETDEFS是一个replicat进程参数,当源表与目标表结构一致时,使用此参数。
0 0
- GoldenGate学习笔记一_进程、目录与参数配置
- GoldenGate学习笔记(11)_常用参数
- GoldenGate学习笔记二_监控GoldenGate
- GoldenGate(2)_进程设置与常用操作
- Oracle GoldenGate 参数一
- Linux学习笔记-文件属性与目录配置
- 【goldengate】官方文档笔记一 配置Manager和网络连接
- oracle GoldenGate学习笔记
- Oracle GoldenGate学习笔记
- GoldenGate配置及参数说明
- oracle GoldenGate 的参数配置
- sklearn学习笔记_目录
- oracle goldengate 参数学习 GETUPDATEBEFORES
- 学习笔记_多进程
- 学习笔记_分布式进程
- 神经网络与深度学习_吴恩达 学习笔记(一)
- 孤儿进程与僵尸进程_笔记
- 安装配置Oracle GoldenGate Director监控goldengate进程
- 定位系统挽救了婆婆生命
- 实现一个简单的DOM选择器
- 九度oj-1180-对称矩阵
- Robotium原理初步--Android自动化测试学习历程
- 安装CentOS7操作系统
- GoldenGate学习笔记一_进程、目录与参数配置
- vs2008 水晶报表升级到 vs2013对应版本
- Java 2实用教程 学习之类与程序
- jQuery和CSS3网页固定背景视觉差特效插件
- 大数据:add
- JAVA 计算地球上任意两点(经纬度)距离
- 产品经理
- std::tr1::function 的资料--------effective C++ 条款 35相关
- boost中移动语义的支持