分类: Oracle
GoldenGate技术架构图

从图中可以看到:GoldenGate主要包含Manager进程、Extract进程、Pump进程、Replicat进程,下面对其一一说明:
Manager进程是GoldenGate的控制进程,它主要作用有以下几个方面:启动、监控、重启GoldenGate的其他进程,报告错误及时间,分配数据存储空间,发布阀值报告等。
Extract进程运行在数据库源端,负责从源端数据表或日志中捕获数据。Extract进程利用其内在的checkpoint机制,周期性地检查并记录其读写的位置,通常是写入到本地的trail文件。这种机制是为了保证如果Extract进程终止或者操作系统宕机,我们重启Extract进程后,GoldenGate能够恢复到以前的状态,从上一个断点处继续往下运行,而不会有任何数据损失。
Pump进程运行在数据库源端,其作用非常简单。如果源端使用了本地trail文件,那么Pump进程就会把Trail文件以数据块的形式通过TCP/IP协议发送到目标端,我们下面的配置都是这种方式。Pump进程本质是Extract进程的一种特殊形式,如果不使用Trail文件,那么Extract进程在抽取完数据后,直接投递到目标端。
与Pump进程相对应的叫Server Collector进程,这个进程不需要引起我们关注,因为在实际操作过程中无需对其进行任何配置,它运行在目标端,任务就是把Extract/Pump进程投递过来的数据块重新组装成Trail文件。
Replicat进程运行在目标端,是数据投递的最后一站,负责读取目标端Trail文件中的内容,并将解析其解析为DML或DDL语句,然后应用到目标数据库中。
RAC到单机复制的配置
源端安装
在GoldenGate安装目录(OCFS2目录/ggate)解压安装文件
unzip ogg112101_fbo_ggs_Linux_x64_ora10g_64bit.zip
tar –xvf fbo_ggs_Linux_x64_ora10g_64bit.tar
设置环境变量
在用户参数文件中添加以下内容:
export GGATE_HOME=/ggate
export LD_LIBRARY_PATH=$GGATE_HOME:$ORACLE_HOME/lib
注意:添加后需使参数文件生效
安装GoldenGate
进入OGG控制台创建OGG工作目录
然后在安装目录下执行 ./ggsci 进入OGG控制台
执行命令 create subdirs创建工作目录,显示如下:
GGSCI (node1) 1> create subdirs
Creating subdirectories under current directory /ggate
Parameter files /ggate/dirprm: already exists
Report files /ggate/dirrpt: created
Checkpoint files /ggate/dirchk: created
Process status files /ggate/dirpcs: created
SQL script files /ggate/dirsql: created
Database definitions files /ggate/dirdef: created
Extract data files /ggate/dirdat: created
Temporary files /ggate/dirtmp: created
Stdout files /ggate/dirout: created
目标端安装
参考源端安装
配置源端数据库
数据库模式配置
源端数据库必须开启归档模式
Alter database archivelog;
开启最小附加日志
Alter database add supplemental log data;
使用SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;
可查看是否开启了最小附加日志;
源端数据库创建GoldenGate数据库用户并授权:(我们这里以ogg为例,使用其他亦可)
create user ogg identified by oracle default tablespace DATA_OL;
grant connect,resource,unlimited tablespace to ogg;
grant execute on utl_file to ogg;
grant select any dictionary,select any table to ogg;
grant alter any table to ogg;
grant flashback any table to ogg;
grant execute on DBMS_FLASHBACK to ogg;
添加表级transdata
GGSCI (node1) 1> dblogin userid ogg,password oracle
Successfully logged into database.
GGSCI (node1) 2> add trandata SCOTT.DEPT
Logging of supplemental redo data enabled for table SCOTT.DEPT.
GGSCI (node1) 3> add trandata SCOTT.EMP
Logging of supplemental redo data enabled for table SCOTT.EMP.
配置源端进程组
配置管理进程mgr:
GGSCI (node1) 1> edit param mgr
(粘贴下面这段配置)
PORT 7839
DYNAMICPORTLIST 7840-7939
--AUTOSTART ER *
AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
启动管理进程:
GGSCI (node1) 2> start mgr
Manager started.
GGSCI (node1) 3> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
配置抽取进程:
GGSCI (node1) 6> add extract extnd,tranlog,begin now,threads 2
EXTRACT added.
GGSCI (node1) 7> add exttrail ./dirdat/nd,extract extnd,megabytes 100
EXTTRAIL added.
GGSCI (node1) 8> edit params extnd
(粘贴下面这段配置)
EXTRACT extnd
SETENV (NLS_LANG = "AMERICAN_AMERICA.UTF8")
SETENV (ORACLE_HOME = "/u01/app/oracle/product/10.2.0/db_1")
USERID ogg@RAC, PASSWORD oracle
--GETTRUNCATES
REPORTCOUNT EVERY 1 MINUTES, RATE
DISCARDFILE ./dirrpt/extnd.dsc,APPEND,MEGABYTES 1024
--THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 60000 IOLATENS 60000
DBOPTIONS ALLOWUNUSEDCOLUMN
WARNLONGTRANS 2h,CHECKINTERVAL 3m
EXTTRAIL ./dirdat/nd
--TRANLOGOPTIONS EXCLUDEUSER USERNAME
FETCHOPTIONS NOUSESNAPSHOT
TRANLOGOPTIONS CONVERTUCS2CLOBS
TABLE scott.dept;
TABLE scott.emp;
注意:threads与RAC节点数相同即可,RAC中不再使用ORACLE_SID设置,而使用USERID ogg@RAC,注意两个节点均可连接数据库。
添加传输进程,配置参数
GGSCI (node1) 2> add extract dpend,exttrailsource ./dirdat/nd
EXTRACT added.
GGSCI (node1) 3> add rmttrail /uo1/app/ogg/dirdat/nd, EXTRACT DPEND
RMTTRAIL added.
GGSCI (node1) 4> edit params dpend
(粘贴下面这段配置)
EXTRACT dpend
SETENV (NLS_LANG = AMERICAN_AMERICA.UTF8)
USERID ogg@RAC, PASSWORD oracle
PASSTHRU
RMTHOST 10.123.112.235, MGRPORT 7839, compress
RMTTRAIL /uo1/app/ogg/dirdat/nd
TABLE scott.dept;
TABLE scott.emp;
配置目标数据库
目标库创建GoldenGate数据库用户并授权:
create user ogg identified by oracle default tablespace USERS;
grant connect,resource,unlimited tablespace to ogg;
grant execute on utl_file to ogg;
grant select any dictionary,select any table to ogg;
grant alter any table to ogg;
grant flashback any table to ogg;
grant execute on DBMS_FLASHBACK to ogg;
grant insert any table to ogg;
grant delete any table to ogg;
grant update any table to ogg;
添加checkpoint表
GGSCI (sun.linux) 2> edit params GLOBALS
然后在参数文件中输入
GGSCHEMA ogg
CHECKPOINTTABLE ogg.checkpoint
GGSCI (sun.linux) 4> dblogin userid ogg,password oracle
Successfully logged into database.
GGSCI (sun.linux) 5> add checkpointtable ogg.checkpoint
Successfully created checkpoint table ogg.checkpoint.
配置目标进程组
配置MGR参数
GGSCI (sun.linux) 6> edit params mgr
(粘贴下面这段配置)
PORT 7839
DYNAMICPORTLIST 7840-7939
--AUTOSTART ER *
AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
配置复制队列
GGSCI (sun.linux)8> add replicat repnd,exttrail /uo1/app/ogg/dirdat/nd,checkpointtable ogg.checkpoint
REPLICAT added.
GGSCI (sun.linux) 10> edit params repnd
(粘贴下面这段配置)
REPLICAT repnd
SETENV (NLS_LANG = AMERICAN_AMERICA.UTF8)
USERID ogg, PASSWORD oracle
ASSUMETARGETDEFS
REPERROR default,discard
discardfile ./dirrpt/repnd.dsc,append,megabytes 50
map scott.*,target pmsbi.*;
启动源端进程组
启动抽取进程和传输进程:
start extnd
start dpend
启动后使用info all查看进程状态,正常status应该RUNNING,显示如下:
GGSCI (node1) 19> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING DPEND 00:00:00 00:00:09
EXTRACT RUNNING EXTND 00:00:00 00:00:04
启动目标端进程
start repnd
显示如下:
GGSCI (sun.linux) 2> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REPND 00:00:00 00:00:03
到此RAC到单点OGG的安装配置就完成了,可以进行数据同步测试了。