ogg一般来说有4个进程,Manager进程,Extract进程,Pump进程,Replicat进程

Manager进程:
是GoldenGate的控制进程,它主要作用有以下几个方面:启动、监控、重启GoldenGate的其他进程,报告错误及时间,分配数据存储空间,发布阀

值报告等。

Extract进程:
运行在数据库源端,负责从源端数据表或日志中捕获数据。Extract进程利用其内在的checkpoint机制,周期性地检查 并记录其读写的位置,通常

是写入到本地的trail文件。这种机制是为了保证如果Extract进程终止或者操作系统宕机,我们重启Extract进程 后,GoldenGate能够恢复到以前

的状态,从上一个断点处继续往下运行,而不会有任何数据损失。

Pump进程:(如果trail文件落本地才会用这个进程,一般OGG都会把traile文件落地)
运行在数据库源端,其作用非常简单。如果源端使用了本地trail文件,那么Pump进程就会把Trail文件以数据块的形式通过 TCP/IP协议发送到目

标端,我们下面的配置都是这种方式。Pump进程本质是Extract进程的一种特殊形式,如果不使用Trail文件,那么 Extract进程在抽取完数据后,

直接投递到目标端。
与Pump进程相对应的叫Server Collector进程,这个进程不需要引起我们关注,因为在实际操作过程中无需对其进行任何配置,它运行在目标端,

任务就是把Extract/Pump进程投递过来的数据块重新组装成Trail文件。

Replicat进程:
运行在目标端,是数据投递的最后一站,负责读取目标端Trail文件中的内容,并将解析其解析为DML或DDL语句,然后应用到目标数据库中。

测试环境
源端:
IP:172.16.0.30    SID:prod
目标;
IP: 172.16.0.40 SID:prod(实例名可以不一致)


1、安装ogg软件,安装方式如下(两端均执行)
oracle用户下创建ogg目录
mkdir /home/oracle/ogg
[oracle@localhost ~]$ cd ogg/
[oracle@localhost ogg]$ unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
[oracle@localhost ogg]$ tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar

设置LD_LIBRARY_PATH参数
export LD_LIBRARY_PATH=$ORACLE_HOME/lib

查看运行./ggsci命令行接口所缺是的库文件,可能会出现libnnz11.so,libclntsh.so.11.1缺失,只需要将libnnz10.so,libclntsh.so.10.1软

解析到缺失的文件即可
[oracle@localhost ogg]$ ldd ./ggsci


2、数据库环境准备(两端均执行)
打开最小附加日志
SQL>alter database add supplemental log data;
SQL>select supplemental_log_data_min from v$database;
创建数据库ogg用户
SQL>CREATE USER ogg IDENTIFIED BY ogg DEFAULT TABLESPACE USERS ;
授权ogg用户,如果对用户权限要求不严格可以直接授予dba权限,否则授予如下权限
源端:
GRANT CONNECT TO goldengate;
GRANT CREATE SESSION TO goldengate;
GRANT ALTER SESSION TO goldengate;
GRANT RESOURCE TO goldengate;
GRANT SELECT ANY DICTIONARY TO goldengate;
GRANT SELECT ANY TABLE TO goldengate;
GRANT FLASHBACK ANY TABLE TO goldengate;
GRANT ALTER ANY TABLE TO goldengate;
目标端:
GRANT ALTER SESSION TO goldengate;
GRANT CREATE SESSION TO goldengate;
GRANT CONNECT TO goldengate;
GRANT RESOURCE TO goldengate;
GRANT SELECT ANY DICTIONARY TO goldengate;
GRANT SELECT ANY TABLE TO goldengate;
GRANT FLASHBACK ANY TABLE TO goldengate;
GRANT INSERT ANY TABLE TO goldengate;
GRANT UPDATE ANY TABLE TO goldengate;
GRANT DELETE ANY TABLE TO goldengate;

3、主备库创建mgr管理进程,添加端口7809(两端均执行)

创建ogg子目录
[oracle@localhost ogg]$ ./ggsci
GGSCI>create subdirs
GGSCI (localhost.localdomain) 10> edit params mgr

port 7809

GGSCI (localhost.localdomain) 11> start mgr

GGSCI (localhost.localdomain) 11> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING


mgr可以添加如下参数:
DYNAMICPORTLIST 7820-7830, 7833, 7835
autostart er *
autorestart er *, retries 5, waitminutes 3 (自动启动所有参数,会尝试5次,每次等待3分钟)
purgeoldextracts ./dirdat/*,usecheckpoints, minkeepdays 7(自动清理过期的trail文件,会保留7天)


4、添加表级附加日志
ggsci>dblogin userid ogg, password ogg
ggsci>add trandata hzq.*


5、添加抽取进程 (源端)
GGSCI> add ext exta, tranlog, begin now
exta为进程名,一般为ext开头表示是extract进程,后面可以加1-2位字符标识;begin可以是now也可以是指定的时间

为exta进程配置本地队列,本地的trail文件以la开头
GGSCI> add exttrail ./dirdat/lc, ext exta, MEGABYTES 20

添加投递进程pmpa,将本地的./dirdat/la文件传送到目标端
GGSCI> add extract pmpa, EXTTRAILSOURCE ./dirdat/lc

为pmpa进程配置远程队列,队列的位置是源端的主机目录,传送到目标断后命名以rc开头。
GGSCI> add rmttrail ./dirdat/rc, ext dpea, MEGABYTES 20


GGSCI (localhost.localdomain) 23> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     STOPPED     EXTA        00:00:00      00:00:02
EXTRACT     STOPPED     PMPA        00:00:00      00:00:01


6、配置进程参数(源端)

GGSCI (localhost.localdomain) 25> edit params exta

EXTRACT exta
setenv ( NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK" )
setenv (ORACLE_SID = prod)
USERID ogg, PASSWORD ogg
EXTTRAIL ./dirdat/lc
dynamicresolution
--GETUPDATEBEFORES
--DDL INCLUDE ALL (DDL复制参数)
--DDLOPTIONS ADDTRANDATA NOCROSSRENAME REPORT (ddl复制参数)
--NOCOMPRESSDELETES
table hzq.*;

GGSCI (localhost.localdomain) 28> edit params pmpa

extract pmpa
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
passthru
--REPORT AT 01:59
--reportrollover at 02:00
rmthost 172.16.0.40, mgrport 7809, compress
rmttrail ./dirdat/rc
dynamicresolution
table hzq.*;


启动进程
GGSCI>start ext *

GGSCI (localhost.localdomain) 29> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     EXTA        00:00:00      00:00:04
EXTRACT     RUNNING     PMPA        00:00:00      00:00:05

7、配置目标端进程和参数(目标端)

GGSCI> add rep rep1a, exttrail ./dirdat/rc, nodbcheckpoint

GGSCI>edit param rep1a

replicat rep1a
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
setenv (ORACLE_SID = prod)
userid ogg, password ogg
reperror default,abend
discardfile ./dirrpt/rep1a.dsc,append, megabytes 10
assumetargetdefs
--allownoopupdates
dynamicresolution
--DDL include all
--ddloptions report
--DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5
ASSUMETARGETDEFS
--INSERTALLRECORDS
map hzq.*, target hzq.*;

GGSCI (localhost.localdomain) 12> start rep1a
GGSCI (localhost.localdomain) 11> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
REPLICAT    RUNNING     REP1A       00:00:00      00:00:06

ogg一般来说有4个进程,Manager进程,Extract进程,Pump进程,Replicat进程

Manager进程:
是GoldenGate的控制进程,它主要作用有以下几个方面:启动、监控、重启GoldenGate的其他进程,报告错误及时间,分配数据存储空间,发布阀

值报告等。

Extract进程:
运行在数据库源端,负责从源端数据表或日志中捕获数据。Extract进程利用其内在的checkpoint机制,周期性地检查 并记录其读写的位置,通常

是写入到本地的trail文件。这种机制是为了保证如果Extract进程终止或者操作系统宕机,我们重启Extract进程 后,GoldenGate能够恢复到以前

的状态,从上一个断点处继续往下运行,而不会有任何数据损失。

Pump进程:(如果trail文件落本地才会用这个进程,一般OGG都会把traile文件落地)
运行在数据库源端,其作用非常简单。如果源端使用了本地trail文件,那么Pump进程就会把Trail文件以数据块的形式通过 TCP/IP协议发送到目

标端,我们下面的配置都是这种方式。Pump进程本质是Extract进程的一种特殊形式,如果不使用Trail文件,那么 Extract进程在抽取完数据后,

直接投递到目标端。
与Pump进程相对应的叫Server Collector进程,这个进程不需要引起我们关注,因为在实际操作过程中无需对其进行任何配置,它运行在目标端,

任务就是把Extract/Pump进程投递过来的数据块重新组装成Trail文件。

Replicat进程:
运行在目标端,是数据投递的最后一站,负责读取目标端Trail文件中的内容,并将解析其解析为DML或DDL语句,然后应用到目标数据库中。

测试环境
源端:
IP:172.16.0.30    SID:prod
目标;
IP: 172.16.0.40 SID:prod(实例名可以不一致)


1、安装ogg软件,安装方式如下(两端均执行)
oracle用户下创建ogg目录
mkdir /home/oracle/ogg
[oracle@localhost ~]$ cd ogg/
[oracle@localhost ogg]$ unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
[oracle@localhost ogg]$ tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar

设置LD_LIBRARY_PATH参数
export LD_LIBRARY_PATH=$ORACLE_HOME/lib

查看运行./ggsci命令行接口所缺是的库文件,可能会出现libnnz11.so,libclntsh.so.11.1缺失,只需要将libnnz10.so,libclntsh.so.10.1软

解析到缺失的文件即可
[oracle@localhost ogg]$ ldd ./ggsci


2、数据库环境准备(两端均执行)
打开最小附加日志
SQL>alter database add supplemental log data;
SQL>select supplemental_log_data_min from v$database;
创建数据库ogg用户
SQL>CREATE USER ogg IDENTIFIED BY ogg DEFAULT TABLESPACE USERS ;
授权ogg用户,如果对用户权限要求不严格可以直接授予dba权限,否则授予如下权限
源端:
GRANT CONNECT TO goldengate;
GRANT CREATE SESSION TO goldengate;
GRANT ALTER SESSION TO goldengate;
GRANT RESOURCE TO goldengate;
GRANT SELECT ANY DICTIONARY TO goldengate;
GRANT SELECT ANY TABLE TO goldengate;
GRANT FLASHBACK ANY TABLE TO goldengate;
GRANT ALTER ANY TABLE TO goldengate;
目标端:
GRANT ALTER SESSION TO goldengate;
GRANT CREATE SESSION TO goldengate;
GRANT CONNECT TO goldengate;
GRANT RESOURCE TO goldengate;
GRANT SELECT ANY DICTIONARY TO goldengate;
GRANT SELECT ANY TABLE TO goldengate;
GRANT FLASHBACK ANY TABLE TO goldengate;
GRANT INSERT ANY TABLE TO goldengate;
GRANT UPDATE ANY TABLE TO goldengate;
GRANT DELETE ANY TABLE TO goldengate;

3、主备库创建mgr管理进程,添加端口7809(两端均执行)

创建ogg子目录
[oracle@localhost ogg]$ ./ggsci
GGSCI>create subdirs
GGSCI (localhost.localdomain) 10> edit params mgr

port 7809

GGSCI (localhost.localdomain) 11> start mgr

GGSCI (localhost.localdomain) 11> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING


mgr可以添加如下参数:
DYNAMICPORTLIST 7820-7830, 7833, 7835
autostart er *
autorestart er *, retries 5, waitminutes 3 (自动启动所有参数,会尝试5次,每次等待3分钟)
purgeoldextracts ./dirdat/*,usecheckpoints, minkeepdays 7(自动清理过期的trail文件,会保留7天)


4、添加表级附加日志
ggsci>dblogin userid ogg, password ogg
ggsci>add trandata hzq.*


5、添加抽取进程 (源端)
GGSCI> add ext exta, tranlog, begin now
exta为进程名,一般为ext开头表示是extract进程,后面可以加1-2位字符标识;begin可以是now也可以是指定的时间

为exta进程配置本地队列,本地的trail文件以la开头
GGSCI> add exttrail ./dirdat/lc, ext exta, MEGABYTES 20

添加投递进程pmpa,将本地的./dirdat/la文件传送到目标端
GGSCI> add extract pmpa, EXTTRAILSOURCE ./dirdat/lc

为pmpa进程配置远程队列,队列的位置是源端的主机目录,传送到目标断后命名以rc开头。
GGSCI> add rmttrail ./dirdat/rc, ext dpea, MEGABYTES 20


GGSCI (localhost.localdomain) 23> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     STOPPED     EXTA        00:00:00      00:00:02
EXTRACT     STOPPED     PMPA        00:00:00      00:00:01


6、配置进程参数(源端)

GGSCI (localhost.localdomain) 25> edit params exta

EXTRACT exta
setenv ( NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK" )
setenv (ORACLE_SID = prod)
USERID ogg, PASSWORD ogg
EXTTRAIL ./dirdat/lc
dynamicresolution
--GETUPDATEBEFORES
--DDL INCLUDE ALL (DDL复制参数)
--DDLOPTIONS ADDTRANDATA NOCROSSRENAME REPORT (ddl复制参数)
--NOCOMPRESSDELETES
table hzq.*;

GGSCI (localhost.localdomain) 28> edit params pmpa

extract pmpa
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
passthru
--REPORT AT 01:59
--reportrollover at 02:00
rmthost 172.16.0.40, mgrport 7809, compress
rmttrail ./dirdat/rc
dynamicresolution
table hzq.*;


启动进程
GGSCI>start ext *

GGSCI (localhost.localdomain) 29> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     EXTA        00:00:00      00:00:04
EXTRACT     RUNNING     PMPA        00:00:00      00:00:05

7、配置目标端进程和参数(目标端)

GGSCI> add rep rep1a, exttrail ./dirdat/rc, nodbcheckpoint

GGSCI>edit param rep1a

replicat rep1a
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
setenv (ORACLE_SID = prod)
userid ogg, password ogg
reperror default,abend
discardfile ./dirrpt/rep1a.dsc,append, megabytes 10
assumetargetdefs
--allownoopupdates
dynamicresolution
--DDL include all
--ddloptions report
--DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5
ASSUMETARGETDEFS
--INSERTALLRECORDS
map hzq.*, target hzq.*;

GGSCI (localhost.localdomain) 12> start rep1a
GGSCI (localhost.localdomain) 11> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
REPLICAT    RUNNING     REP1A       00:00:00      00:00:06

坚持,专注