Oracle Golden Gate 系列十 -- 配置 Data Pump process 说明 与 示例

时间:2022-10-14 03:53:21

 

一.Data Pump 理论说明

 

在GG系列的第一讲:

Oracle Golden Gate 系列一 -- GG 架构 说明

http://blog.csdn.net/tianlesoftware/article/details/6925907

 

提到了GG 一个架构:

 Oracle Golden Gate 系列十 -- 配置 Data Pump process 说明 与 示例


Data pump(不要和Expdp/impdp 这个data pump 混淆) 是Source 端的第二个Extract group。 在没有使用data pump时,Extract 必须将capture data 发送到target 的remote trail里。

       在使用data pump的情况下,主Extract group将capture data 写入本地的trail里,然后data pump 进程读取这个trail,并将内容通过网络发送到target 端的remote trail里。

        和primary Extract group 一样,data pump 可以配置在online 或者 batch processing。 Data pump 也可以进行data filter,map 和conversion。

      

       在实际中配置GG Data pump 主要是为了应对网络故障问题,如果我们直接将trail 通过网络传送到Target 端,那么在这期间,任何网络故障都可能导致Extract process 的异常中断。

而使用datapump后,即便网络故障,主提取进程仍然能随着事务生成trail文件,而datapump则会暂时停止传输,等待网络通畅后在将堆积的本地trail文件发送至目标服务器,从而实现了断点传输的功能。在实际应用中,每一个同步流程都应该配置datapump以应对网络问题。

 

二.示例

 2.1 在Source 端创建Extract process

这里使用我们之前已经创建的ext1,其创建语法如下:

--创建Extract process

GGSCI (gg1) 11> add extract ext1,tranlog, begin now

--创建localtrail

GGSCI (gg1) 12> add exttrail /u01/ggate/dirdat/lt, extract ext1

 

配置Extract 参数如下:

GGSCI (gg1) 50> view params ext1

 

extract ext1

userid ggate@gg1, password ggate

exttrail /u01/ggate/dirdat/lt

table dave.pdba;

 

2.2 在Source 端创建Data Pump Group

GGSCI (gg1) 49> add extract dpump,exttrailsource /u01/ggate/dirdat/lt

EXTRACT added.

--这里指定我们localtrail 的位置。

 

GGSCI (gg1) 51> add rmttrail /u01/ggate/dirdat/lt, extract dpump

RMTTRAIL added.
--指定data pump 发送trail到target 端的位置。

 

配置Data Pump 参数:

GGSCI (gg1) 56> view params dpump

 

extract dpump

userid ggate@gg1, password ggate

rmthost gg2, mgrport 7809

rmttrail /u01/ggate/dirdat/lt

passthru

table dave.pdba;

 

这里注意passthru 参数,该参数默认是nopassthru,官网的说明如下:

PASSTHRU | NOPASSTHRU

Valid for Extract

Use the PASSTHRUand NOPASSTHRU parameters to control whether a data-pump Extract processestables in pass-through mode or normal mode. Inpass-through mode, the Extract process does not look up table definitions,either from the database or from a datadefinitions file. Normally, theExtract process logs into the database to retrieve data definitions and, if thetarget is NonStop, reads a data-definitions file. The definitions are used toperform mapping and conversion functions.

--该参数控制Extract process的模式,当为PASSTHRU时,不检查表的定义,仅当source 和target 对象的结构一样,并没有map或者filter 时使用,不检查表定义,可以加快处理的速度。

 

根据具体情况使用该参数,官网的示例:

EXTRACT fin

RMTHOST sysb, MGRPORT 7809

RMTTRAIL /ggs/dirdat/rt

PASSTHRU

TABLE fin.acct;

NOPASSTHRU

TABLE fin.sales, WHERE (ACCOUNT-CODE < 100);

 

2.3 在Target 端配置Replicat 进程

--这里配置进程的checkpoint

GGSCI (gg2) 6> EDIT PARAMS ./GLOBALS

GGSCHEMA ggate

CHECKPOINTTABLE ggate.checkpoint

添加如上2条记录。

 

GGSCI (gg2) 12> dblogin userid ggate@gg2,password ggate

Successfully logged into database.

--连接到DB 的GGATE 用户,在db里创建checkpoint表

GGSCI (gg2) 13> add checkpoint tableggate.checkpoint

Successfully created checkpoint table GGATE.CHECKPOINT.

 

--创建replicat group

GGSCI (gg2) 14> add replicat rep1,exttrail /u01/ggate/dirdat/lt, checkpointtable ggate.checkpoint

REPLICAT added.

--注意这里的目录要和我们的data pump 指定的目录一致。

 

修改rep1参数:

GGSCI (gg2) 44> view params rep1

 

replicat rep1

ASSUMETARGETDEFS

userid ggate@gg2,password ggate

discardfile/u01/ggate/dirdat/rep1_discard.txt, append, megabytes 10

--HANDLECOLLISIONS

map dave.pdba, target dave.pdba;

 

2.4 开始测试

2.4.1 在Source 端启动Extract和data pump 进程

GGSCI (gg1) 60> start extract ext1

 

Sending START request to MANAGER ...

EXTRACT EXT1 starting

 

GGSCI (gg1) 61> start extract dpump

Sending START request to MANAGER ...

EXTRACT DPUMP starting

 

GGSCI (gg1) 76> info dpump

 

EXTRACT   DPUMP     Last Started 2011-11-1620:13   Status RUNNING

Checkpoint Lag       00:00:00 (updated 00:04:35 ago)

Log Read Checkpoint  File /u01/ggate/dirdat/lt000000

                     First Record  RBA 0

 

注意这里的data pump是从lt000000 开始读取trail 文件,如果是新搭建的GG 同步,那么都是从lt000000开始处理,所以没有问题,如果是后来修改称data pump,就需要根据extract 进程的错误提示信息,使用如下命令:

GGSCI (gg1) 82> alter extract dpump,extseqno 2,extrba1965317

        修改data pump 读取的trail 文件位置。

 

为了保证文章的简洁,我把这里2种情况的测试过程,单独整理成了一篇Blog,具体参考:

       Oracle Golden Gate 有关DataPump 重置trail 序列号 测试 说明

http://blog.csdn.net/tianlesoftware/article/details/6978441

 

2.4.2 在Target 端启动replicat 进程

GGSCI (gg2) 48> start replicat rep1

 

Sending START request to MANAGER ...

REPLICAT REP1 starting

 

GGSCI (gg2) 50> info all

 

Program    Status      Group       Lag          Time Since Chkpt

MANAGER    RUNNING                                          

REPLICAT   RUNNING     REP1        00:00:00      00:00:04   

 

 

 

 

 

-------------------------------------------------------------------------------------------------------

版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

Blog:     http://blog.csdn.net/tianlesoftware

Weibo: http://weibo.com/tianlesoftware

Email:   tianlesoftware@gmail.com

Skype: tianlesoftware

 

-------加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请----

DBA1 群:62697716(满);   DBA2 群:62697977(满)  DBA3 群:62697850(满)  

DBA 超级群:63306533(满);  DBA4 群:83829929(满) DBA5群: 142216823(满) 

DBA6 群:158654907(满)   DBA7 群:69087192(满)  DBA8 群:172855474

DBA 超级群2:151508914  DBA9群:102954821     聊天 群:40132017(满)