原文连接 http://blog.csdn.net/tianlesoftware/article/details/6993043
二.示例
这里还是3个节点的GG,我们这里从节点2和节点3发送到节点1.
DB: oracle 11.2.0.3
OS: redhat 5.4
2.1 在所有节点上设置Manager
GGSCI (gg1) 2> edit params mgr
PORT 7809
2.2 分别在GG2和GG3上添加Extract进程
--GG2
GGSCI (gg2) 4> add extract ext1,tranlog,begin now
GGSCI (gg2) 5> add exttrail/u01/ggate/dirdat/lt, extract ext1
GGSCI (gg2) 7> view params ext1
extract ext1
userid ggate@gg2,password ggate
exttrail /u01/ggate/dirdat/lt
ddl include all objname dave.pdba;
table dave.pdba;
--GG3
GGSCI (gg3) 2> add extract ext1,tranlog,begin now
GGSCI (gg3) 4> add exttrail/u01/ggate/dirdat/lt, extract ext1
GGSCI (gg3) 6> view params ext1
extract ext1
userid ggate@gg3,password ggate
exttrail /u01/ggate/dirdat/lt
ddl include all objname dave.pdba;
table dave.pdba;
2.3 分别在GG2和GG3上添加DataPump 进程
--GG2
GGSCI (gg2) 8> add extractdpump,exttrailsource /u01/ggate/dirdat/lt
GGSCI (gg2) 9> add rmttrail/u01/ggate/dirdat/d1, extract dpump
--注意这里指定的Target端的位置,我们以d1 开头。
GGSCI (gg2) 11> view params dpump
extract dpump
userid ggate@gg2, password ggate
rmthost gg1, mgrport 7809,compress,compressthreshold0
rmttrail /u01/ggate/dirdat/d1
passthru
table dave.pdba;
--GG3
GGSCI (gg3) 7> add extractdpump,exttrailsource /u01/ggate/dirdat/lt
GGSCI (gg3) 8> add rmttrail/u01/ggate/dirdat/d2, extract dpump
GGSCI (gg3) 10> view params dpump
extract dpump
userid ggate@gg3, password ggate
rmthost gg1, mgrport 7809,compress,compressthreshold0
rmttrail /u01/ggate/dirdat/d2
passthru
table dave.pdba;
2.4 在GG1上配置2个Replicat进程,分别对应Data Pump进程
--配置checkpoint
GGSCI (gg1) 3> view params ./GLOBALS
GGSCHEMA ggate
CHECKPOINTTABLE ggate.checkpoint
GGSCI (gg1) 5> dblogin useridggate@gg1,password ggate
Successfully logged into database.
GGSCI (gg1) 7> add checkpointtableggate.checkpoint
Successfully created checkpoint tableGGATE.CHECKPOINT.
这部分,参考:
Oracle Golden Gate 系列十三 --配置GG进程检查点(checkpoint) 说明
http://blog.csdn.net/tianlesoftware/article/details/6983928
--配置2个Replicat:
--rep1:
GGSCI (gg1) 8> add replicatrep1,exttrail /u01/ggate/dirdat/d1, checkpointtable ggate.checkpoint
REPLICAT added.
GGSCI (gg1) 11> view params rep1
replicat rep1
ASSUMETARGETDEFS
userid ggate@gg1,password ggate
discardfile/u01/ggate/dirdat/rep1_discard.txt, append, megabytes 10
--HANDLECOLLISIONS
ddl include all
ddlerror default ignore retryop
map dave.pdba, target dave.pdba;
--rep2:
GGSCI (gg1) 9> add replicatrep2,exttrail /u01/ggate/dirdat/d2, checkpointtable ggate.checkpoint
REPLICAT added.
GGSCI (gg1) 13> view params rep2
replicat rep2
ASSUMETARGETDEFS
userid ggate@gg1,password ggate
discardfile/u01/ggate/dirdat/rep2_discard.txt, append, megabytes 10
--HANDLECOLLISIONS
ddl include all
ddlerror default ignore retryop
map dave.pdba, target dave.pdba;
数据初始化的问题,具体参考:
Oracle Golden Gate 系列九--GG 数据初始化装载 说明 与 示例
http://blog.csdn.net/tianlesoftware/article/details/6976551
OracleGoldenGate 系列十二--GG 数据初始化装载二 基于SCN 的初始化 说明 与 示例
http://blog.csdn.net/tianlesoftware/article/details/6982908
2.5 启动相关进程进行测试
--GG2:
GGSCI (gg2) 20> start ext1
确定ext1的trails 文件:
GGSCI (gg2) 25> view report ext1
…
2011-11-20 11:31:43 INFO OGG-01056 Recovery initializationcompleted for target file /u01/ggate
/dirdat/lt000018, at RBA 132350, CSN1525929.
2011-11-20 11:31:43 INFO OGG-01478 Output file/u01/ggate/dirdat/lt is using format RELEASE 10.
4/11.1.
2011-11-20 11:31:43 WARNING OGG-01438 Checkpoint marked as from graceful shutdown,but records fou
nd after checkpoint in trail/u01/ggate/dirdat/lt. Expected EOF Seqno0, RBA 0. Found Seqno 18, RB
A 132350.
2011-11-20 11:31:43 INFO OGG-01026 Rolling over remotefile /u01/ggate/dirdat/lt000018.
…
GGSCI (gg2) 24> info dpump
EXTRACT DPUMP Initialized 2011-11-20 11:11 Status STOPPED
Checkpoint Lag 00:00:00 (updated 00:20:16 ago)
Log Read Checkpoint File /u01/ggate/dirdat/lt000000
First Record RBA 0
GGSCI (gg2) 26> alter extractdpump,extseqno 18,extrba 0
EXTRACT altered.
GGSCI (gg2) 27> start dpump
Sending START request to MANAGER ...
EXTRACT DPUMP starting
GGSCI (gg2) 40> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING DPUMP 00:00:00 00:02:05
EXTRACT RUNNING EXT1 00:00:00 00:00:02
REPLICAT ABENDED REP1 00:00:00 12:24:42
GGSCI (gg2) 41> info dpump
EXTRACT DPUMP Last Started 2011-11-2011:37 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:02:24 ago)
Log Read Checkpoint File /u01/ggate/dirdat/lt000018
First Record RBA 0
这里注意Data Pump 默认是从lt000000 开始读取trail 文件,如果是新搭建的GG 同步,那么都是从lt000000开始处理,所以没有问题,如果是后来修改称data pump,就需要根据extract 进程的错误提示信息,使用如下命令:
GGSCI(gg1) 82> alter extract dpump,extseqno 18,extrba 0
具体参考:
OracleGoldenGate 系列十 -- 配置DataPump process 说明 与 示例
http://blog.csdn.net/tianlesoftware/article/details/6978501
--GG3:
GGSCI (gg3) 14> start ext1
Sending START request to MANAGER ...
EXTRACT EXT1 starting
GGSCI (gg3) 18> view report ext1
…
2011-11-20 11:39:50 INFO OGG-01056 Recovery initializationcompleted for target file /u01/ggate
/dirdat/lt000016, at RBA 132672, CSN1525929.
2011-11-20 11:39:50 INFO OGG-01478 Output file/u01/ggate/dirdat/lt is using format RELEASE 10.
4/11.1.
2011-11-20 11:39:50 WARNING OGG-01438 Checkpoint marked as from graceful shutdown,but records fou
nd after checkpoint in trail/u01/ggate/dirdat/lt. Expected EOF Seqno0, RBA 0. Found Seqno 16, RB
A 132672.
2011-11-20 11:39:50 INFO OGG-01026 Rolling over remotefile /u01/ggate/dirdat/lt000016.
…
GGSCI (gg3) 19> alter extractdpump,extseqno 16,extrba 0
EXTRACT altered.
GGSCI (gg3) 20> info dpump
EXTRACT DPUMP Initialized 2011-11-20 11:41 Status STOPPED
Checkpoint Lag 00:00:00 (updated 00:00:06 ago)
Log Read Checkpoint File /u01/ggate/dirdat/lt000016
First Record RBA 0
GGSCI (gg3) 21> start dpump
Sending START request to MANAGER ...
EXTRACT DPUMP starting
GGSCI (gg3) 22> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING DPUMP 00:00:00 00:00:13
EXTRACT RUNNING EXT1 00:00:00 00:00:05
REPLICAT ABENDED REP1 00:00:00 12:28:42
--GG1:
GGSCI (gg1) 18> start rep1
Sending START request to MANAGER ...
REPLICAT REP1 starting
GGSCI (gg1) 21> start rep2
Sending START request to MANAGER ...
REPLICAT REP2 starting
GGSCI (gg1) 22> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
EXTRACT ABENDED DPUMP 00:00:00 12:34:55
EXTRACT ABENDED DPUMP2 00:00:00 12:34:49
EXTRACT ABENDED EXT1 00:00:00 12:34:51
REPLICAT RUNNING REP1 00:00:00 00:17:37
REPLICAT RUNNING REP2 00:00:00 00:17:15
2.6 验证同步
--GG2的pdba 表insert 一条记录:
SQL> conn dave/dave;
Connected.
SQL> insert into pdba values(2222,sysdate);
1 row created.
SQL> commit;
Commit complete.
--GG3的pdba 表insert 一条记录:
SQL> conn dave/dave;
Connected.
SQL> insert into pdba values(3333,sysdate);
1 row created.
SQL> commit;
Commit complete.
--在GG1 的pdba 表查询这条记录:
SQL> select * from pdba where idin(2222,3333);
no rows selected
没有同步过来。
GGSCI (gg1) 86> info rep1
REPLICAT REP1 Last Started 2011-11-2012:22 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint File /u01/ggate/dirdat/d1000000
First Record RBA 0
GGSCI (gg1) 87> stop rep1
Sending STOP request to REPLICAT REP1 ...
Request processed.
GGSCI (gg1) 88> stop rep2
Sending STOP request to REPLICAT REP2 ...
Request processed.
GGSCI (gg1) 89> alter replicat rep1extseqno 1 extrba 0
REPLICAT altered.
GGSCI (gg1) 91> alter replicat rep2 extseqno1 extrba 0
REPLICAT altered.
GGSCI (gg1) 93> start rep1
Sending START request to MANAGER ...
REPLICAT REP1 starting
GGSCI (gg1) 94> start rep2
Sending START request to MANAGER ...
REPLICAT REP2 starting
--最后确认一下:
SQL> select * from pdba where id<4444;
ID TIME
---------- ------------
2222 20-NOV-11
3333 20-NOV-11
多对一的测试同步成功。
注意这里有2个小技巧:
1. 如果同步有问题,但进程report又没有提供更多信息,可以使用Logdump工具查看trails里的内容,从而确认是哪一步出现了问题。关于logdump ,参考:
Oracle Golden Gate 系列十五 --GG Trails 说明
http://blog.csdn.net/tianlesoftware/article/details/6990611
2. 如果tail 搞不定,一个简单的解决方法:
把所有进程delete 掉,所有的tails 全部delete 掉,重新来过,这种方法比查看trail 要节省很多时间。