阅读导航
下载地址:http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html 我下载的是Oracle GoldenGate 12.1.2.1.0版本的Oracle GoldenGate V12.1.2.1.0 for Oracle on Linux x86-64 (336 MB)
在线文档地址:http://www.oracle.com/technetwork/middleware/goldengate/documentation/index.html
Oracle GoladenGate介绍:https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm#GWUAD110
Oracle 官方的安装教程:http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/goldengate/12c/OGG12c_Installation/index.html
Step by step GoldenGate configuration:https://sachinichake.wordpress.com/2013/05/08/step-by-step-golden-gate-configuration
1.3.1 Manager
Manager进程必须在源端和目标端运行,并且在Extract和Replicat进程之前启动,没有该进程OGG无法做其它的操作,它管理启动Oracle GoldenGate进程、启动动态进程、分配端口给GoldenGate进程、管理trail file、创建事件,错误和诊断报告工作;
1.3.2 Extract
Extract 运行在源端或者根据系统和业务的需求可以同时运行在两端,抽取捕获系统变更统数据;它可以配置为初始化数据加载(直接从数据源中加载静态的数据)和在某个时间点后源端与服务端变更数据同步(从在线日志或归档日志抽取捕获变更的数据),它也可以在支持DDL变更的系统中抽取捕获DDL;
当配置为数据同步时,extract进程抽取捕获extract配置文件里配置的对象的任何DML和DDL(需要额外配置)的操作,extract进程记录这些操作,直到用户提交或回滚事务;当收到回滚(rollback)时,extract撤销这些记录;当收到(commit)操作后,extract进程记录保存这些操作到一个或多个trail文件里并以队列的形式发送到目标端,以确保数据传输速度和数据的一致性。
1.3.3 Data Pumps
Data Pumps是第二种类型的GoldenGate extract配置,如果不使用Data Pump,extract进程必须发送抽取捕获的操作数据到目标端trail;如果配置了Data Pump,extract进程抽取捕获数据写入到trail,Data pump读取trail并且通过网络发送trail到目标端trail,data pump 加强了源端和目标端抽取捕获数据的可用性,主要优点:1.保护网络传输失败和目标端失败;2.可以实现复杂的数据过滤和转换;3.可以结合多个数据源到目标端;4.可以同步一个源数据到多个目标端。
1.3.4 Replicats
Replicat进程运行在目标端读取tail文件和重构DML、DDL并应用到目标数据库;Replicat编译SQL一次,当变量值不同时重复使用编译过的SQL;Replicat进程可以像extract进程一样配置初始化数据加载(直接从数据源中加载静态的数据)和在某个时间点后源端与服务端变更数据同步(从在线日志或归档日志抽取捕获变更的数据);
1.3.5 Trails
trail文件保存抽取捕获的变更数据信息,trail根据GoldenGate配置可能存在于源系统的磁盘上或者目标系统的磁盘上或者系统内部介质或者相关的系统中;使用trail文件存储抽取捕获的数据可以不依赖于extract或replicat进程,你可以有更多的选择处理数据和何时到达目标端,比如你可能配置抽取和保存在同一时刻,然后稍后发送数据到目标端。
trail文件可以在进程需要时使用ADD RMTTRAIL or ADD EXTTRAIL命令添加创建,文件名为8个字符,在创建时指定两个字符然后由GoldenGate填充另外六个序列字符,序列字符从000000到999999,比如创建时指定了两个字符为'tr',那么GoldenGate会自动创建从tr000001开始的文件保存抽取捕获的数据;文件名是唯一的,默认保存在GoldenGate_home\dirdat目录下。
1.3.6 Checkpoints
Checkpoint存储从文件读取和写入的检测点位置,用于还原和恢复数据,Checkpoint确保发生变化并提交(commit)的数据被extract抽取捕获和被replicat进程应用到目标端;保证在系统、网络或者GoldenGate需要重启进程时发生的错误不会导致数据丢失;在复杂的同步配置中checkpoints启用多个extract和replicat进程从同一个trail集中读取数据。
1.3.7 Collector
collector是目标端后台进程,默认情况下,源端extract进程初始化TCP/IP连接到目标端的collector进程,但是因为GoldenGate是可配置的,所以有些时候可能需要在目标端配置和初始化collector,比如目标端同步时区,但是源端的时区小于目标端的情况下。collector的功能:1.根据源端extract进程的请求,扫描和绑定可用的端口给mgr主进程分配给请求的extract进程;2.接收源端extract抽取trail并写入到目标端的trail文件;当源端发出网络请求时mgr自动启动collector后台进程,所以GoldeGate用户是不可以与它交互的。collector只能同时接受一个extract进程信息(一对一)并且随着extract的终止而终止。
实验分别在同一台机器上的/u01/app/product/ogg_src目录下安装源端,/u01/app/product/ogg_trg目录下安装目标端为例;
[oracle@sywu ~]$ mkdir -p /u01/app/product/ogg_src
[oracle@sywu ~]$ mkdir -p /u01/app/product/ogg_trg
[oracle@sywu ~]$ ls /u01/app/product
11.2.3 ogg_src ogg_trg
Linux下安装GoldenGate要配置ORACLE_SID、ORACLE_HOME和LD_LIBRARY_PATH;
export ORACLE_BASE=/u01
export ORACLE_HOME=$ORACLE_BASE/app/product/11.2.3/db_1
export ORACLE_SID=sydb
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias nmon='/usr/nmon/nmon_x86_centos6'
alias bbed='rlwrap bbed'
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export PATH
注意:数操作系统版本、据库版本和Oracle GoldenGate版本bit type要一致,要么全是32bit要么全是64bit;
[oracle@sywu ~]$ unzip 121210_fbo_ggs_Linux_x64_shiphome.zip -d /tmp
[oracle@sywu ~]$ /tmp/fbo_ggs_Linux_x64_shiphome/Disk1/runInstaller
根据数据库版本选择对应的GoldenGate选项;
更改GoldenGate Software 安装位置,将其安装到/u01/app/product/ogg_src目录下,检查数据库安装位置是否正确,并配置端口;
检查安装信息,确认无误后开始安装;
这样源端的安装就完成了。
目标端的配置和安装与源端的安装步骤上都相同,唯一不同的地方是如果在同一台机器上安装源端和目标端,则要将其安装在不同的目录下(此处是/u01/app/product/ogg_trg),并且配置不同的端口(此处是7909);
安装完成后配置OGG命令行快捷命令和回写功能,在.bash_profile配置文件中添加如下内容:
alias tggsci='rlwrap /u01/app/product/ogg_trg/ggsci'
alias sggsci='rlwrap /u01/app/product/ogg_src/ggsci'
上面通过别名的方式配置了源端的OGG ggsci命令sggsci,目标端的OGG ggsci命令tggsci并通过rlwrap 使其支持回写功能,这样在任何位置都可以使用OGG ggsci命令;
[oracle@sywu ~]$ which tggsci
alias tggsci='rlwrap /u01/app/product/ogg_trg/ggsci'
/usr/local/bin/rlwrap
[oracle@sywu ~]$ which sggsci
alias sggsci='rlwrap /u01/app/product/ogg_src/ggsci'
/usr/local/bin/rlwrap
[oracle@sywu ~]$ sggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 12.1.2.1.0 OGGCORE_12.1.2.1.0_PLATFORMS_140727.2135.1_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Aug 7 2014 09:14:25
Operating system character set identified as UTF-8.
Copyright (C) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
GGSCI (sywu) 1> exit
[oracle@sywu ~]$ tggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 12.1.2.1.0 OGGCORE_12.1.2.1.0_PLATFORMS_140727.2135.1_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Aug 7 2014 09:14:25
Operating system character set identified as UTF-8.
Copyright (C) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
GGSCI (sywu) 1> exit
[oracle@sywu ~]$
该版本默认已经自动建立子目录,早期版本可能需要在GGSCI命令行下使用create subdirs命令手工创建;安装完成后查看mgr进程应为running状态;
GGSCI (sywu) 1> view param mgr
PORT 7909
GGSCI (sywu) 2> info mgr
Manager is running (IP port sywu.7909, Process ID 16870).
说明 | 后缀名 | 目录路径 |
---|---|---|
Parameter files | .prm | /u01/app/product/ogg_src/dirprm |
Report files | .rpt | /u01/app/product/ogg_src/dirrpt |
Checkpoint files | .cpr | /u01/app/product/ogg_src/dirchk |
Process status files | .pcs | /u01/app/product/ogg_src/dirpcs |
SQL script files | .sql | /u01/app/product/ogg_src/dirsql |
Database definitions files | .def | /u01/app/product/ogg_src/dirdef |
Extract data files | /u01/app/product/ogg_src/dirdat | |
Temporary files | /u01/app/product/ogg_src/dirtmp | |
Credential store files | .crd | /u01/app/product/ogg_src/dircrd |
Masterkey wallet files | .wlt | /u01/app/product/ogg_src/dirwlt |
Dump files | .dmp | /u01/app/product/ogg_src/dirdmp |
GoldenGate由COLLECTOR后台进程、MGR进程、EXTRACT进程、DATA PUMP EXTRACT进程、Replicat等一系列进程组成;COLLECTOR后台进程负责接收和保存源端数据到trail;MGR进程管理启动Oracle GoldenGate进程、分配端口、管理trail file、创建事件,错误和诊断报告工作;EXTRACT进程负责抽取捕获变更数据信息并记录到trail;DATA PUMP EXTRACT是第二种GoldenGate extract 进程配置,它加强了源端和目标端抽取捕获数据的可用性,避免网络错误和目标端失败导致的数据丢失并提供了更复杂的数据过滤和转换功能,以及多源对单目标和单源对多目标的数据同步方式;Replicat进程读取接收到的trail文件,根据trail文件内容重构DML和DDL并应用到目标数据库。