1、单项复制结构数据库
源数据系统--(Capture)-->队列文件---(Pump)-->网络(Internet,Intranet)-->队列文件--(Delivery)-->目标数据系统服务器
这种结构用于将数据从单个系统复制到一个或多目标系统。网络
三个进程:oracle
extract (capture) 进程, ide
data pump 进程, oop
replicate (delivery)进程。性能
队列文件为二进制文件。大数据
2、双向复制(双活)结构spa
这种结构能够用于系统的高可用,相似ADG技术,可是OGG和ADG技术类似,用于的场景各不相同。操作系统
3、实时数据仓库结构
应用企业全部数据进行整合在一个库中,相似于Hadoop,数据可进一步应用于大数据技术。
4、实时进行数据分发
能够从一个数据源端将数据或者部分数据分发到不一样地理位置的目标数据源。
5、经过信息进行数据分发
经过富文本进行数据传输,如使用Microsoft Excel,将数据分发到不一样数据库类型。
6、理解SCN(System Change Numbers)
在Oracle GoldenGate 中将SCN做为复制进程对Oracle数据库的事务进行复制的惟一标识。在Microsoft SQL Server和MySQL一样拥有类似的Number。
在启动捕获进程之后,记录SCN号。能够经过v$database视图或者dbms_flashback包进行获取。
获取SCN的SQL:
SQL> select current_scn from v$database;
SQL> select dbms_flashback.get_system_change_number from dual;
注:在RAC环境中使用gv$database视图获取SCN。
7、OGG进程
(1)管理进程
管理进程是OGG全部进程的主进程,只要有复制进程存在,在相关的每一个系统中必须始终运行,主要功能以下:
a、启动和重启OGG进程;
b、启动动态进程;
c、操做进程的端口号;
d、队列文件的管理;
e、事件,错误和阀值报告
(2)收集进程
当OGG在线同步进行时,运行在目标数据端(交付端)的后台进程。主要任务包括:
a、对来自源端抽取进程的管理器进行端口的扫描和限制。
b、接收来自源端抽取事务,并将数据写入队列文件。
OGG为每个抽取进程分配一个收集进程。抽取进程结束时,收集进程也随之结束。
(3)捕获进程
在OGG中抽取进程用于在数据发生变化时,从在线事务处理日志中(如:oracle的redolog)获取数据的变化,实现数据同步。
一次抽取可使用两种方法进行配置:
a、initial load:用于数据的初始化,通常是静态数据的导入,常常使用specialrun 参数。
b、数据变动同步:当数据发生变化时从源端同步到目标端。
经典型捕获进程有内存的需求,每一个捕获进程须要25M~55M的内存。
整合型捕获进程在11.2.0.2中引入并仅仅支持Oracle11.2.0.3及更高版本的数据库。在Oracle数据库中运行整合型捕获与日志挖掘进程进行互动。
在Oracle database内部有一些进程与整合型捕获进一同运行,成为日志挖掘进程配置的一部分。
日志挖掘服务器有如下几部分组成:
读:读取并将redolog进行分解。
准备:扫描redolog,预过滤事务 为并行使用作准备。
重组:使用SCN经过准备进程和服务对redo记录进行整合。
获取:按照redo记录的格式,将逻辑上改变记录传输到本地队列文件。
注意:根据实际设置SGA中streams_pool_size 参数以获取更好的性能。
(4)数据泵进程
其实数据泵组是一个二次抽取进程组,用于帮助数据经过网络传输。尽管数据泵是一个相似抽取组的捕获进程,可是并不冲突。数据泵进程的主要功能是将队列文件经过网络传输到远程的目标系统上。
为何要使用数据泵进程?这要能够在网络出现问题的时候保护数据,避免数据出现不一致的状况产生。
数据泵进程不像捕获进程,数据泵进程无须过多的配置,经典模式下仅仅须要配置可用。
(5)交付进程(复制进程)
交付进程在OGG环境中实际上是一个数据应用进程。交付进程的任务是:读取队列文件,按照时间顺序获取事务(按照SCN清单获取事务),并应用事务。
交付进程有三种模式:
经典交付:经典交付是OGG默认配置的交付进程,由操做系统层进行管理。 内存需求:25M~55M;
协同交付:协同交付与经典交付很相似,区别在于:协同交付进程将会产生由主交付进程协调的从属进程。并行的协同交付进程能够分解一个交付进程,使得长事务像小事务通常。
集成交付:
在OGG12C中引入集成交付进程。集成交付是基于主键,外键或者惟一键约束,依赖于事务和应用事务。
集成交付集成包括四个部分:Receiver,Prepare,Coordinator,Apply(n),以下图。
(6)队列文件
队列文件是OGG特有的二进制文件,在OGG结构中承载事务。当数据发生改变时,支持持续不断地进行数据抽取和数据复制。他能够存储在本地文件中,也能够存储在远程的目标系统文件中。