在《goldengate 企业运维实践》中说单个extract进程可处理日志一般为30-50G/小时,单个replicat进程一般只能处理1G队列/小时,可采用一个extract对多个replicat的模式
由于extract在catch up(追赶)模式需要读取归档日志,速度慢且耗费资源高,建议extract一旦出现较大延迟则立即进行拆分
exta 进程同步 t1,t3 表,对replicate 进程中的表进行拆分成两个进程分表对t1表 和t3表 进行同步
拆分replicate 进程
1、ext 进程同步表t1,t3create table t1 as select * From emp where 0=1;
alter table t1 add primary key(empno);
create table t3 as select *From dept where 0=1;
alter table t3 add primary key(deptno);
GGSCI (a-hb-8-54) 390> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING DPA 00:00:00 00:00:00
EXTRACT RUNNING EXTA 00:00:00 00:00:08
GGSCI (dba) 85> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REPA 00:00:00 00:00:03
2、添加参数文件
GGSCI (dba) 72> view params repa1
replicat repa1
assumetargetdefs
userid goldengate,password goldengate
reperror default,discard
discardfile /ggs/log/repa1.dsc, purge, megabytes 1
MAP scott.t1, TARGET scott.t1;
GGSCI (dba) 73> view params repa2
replicat repa2
assumetargetdefs
userid goldengate,password goldengate
reperror default,discard
discardfile /ggs/log/repa2.dsc, purge, megabytes 1
MAP scott.t3, TARGET scott.t3;
3停止repliacte进程
stop repa
4、查看pump进程的 Write Checkpoint的 Sequence 和RBA
GGSCI (a-hb-8-54) 412> info dpa,showch
EXTRACT DPA Last Started 2015-04-03 11:25 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:09 ago)
Log Read Checkpoint File F:\ggs_window\dirdat\aa000029
2015-04-03 11:26:33.000000 RBA 2026
Current Checkpoint Detail:
Read Checkpoint #1
GGS Log Trail
Startup Checkpoint (starting position in the data source):
Sequence #: 28
RBA: 5900
Timestamp: 2015-04-03 11:17:25.000000
Extract Trail: F:\ggs_window\dirdat\aa
Current Checkpoint (position of last record read in the data source):
Sequence #: 29
RBA: 2026
Timestamp: 2015-04-03 11:26:33.000000
Extract Trail: F:\ggs_window\dirdat\aa
Write Checkpoint #1
GGS Log Trail
Current Checkpoint (current write position):
Sequence #: 27
RBA: 3143
Timestamp: 2015-04-03 11:37:12.693000
Extract Trail: /ggs/dirdat/aa
5、添加进程
add replicat repa1,exttrail /ggs/dirdat/aa nodbcheckpoint
add replicat repa2,exttrail /ggs/dirdat/aa nodbcheckpoint
GGSCI (dba) 79> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
REPLICAT STOPPED REPA 00:00:00 00:01:21
REPLICAT STOPPED REPA1 00:00:00 00:00:05
REPLICAT STOPPED REPA2 00:00:00 00:00:03
6、修改新加入进程的指针
修改replicate 进程的指针和pump一致
alter repa1 extseqno 27, extrba 3143
alter repa2 extseqno 27, extrba 3143
插入数据
insert into t1 select * from emp where deptno=10;
insert into t3 select * from dept where deptno=10;
commit;
7、启动新加的进程
start repa1
start repa2
8、查看数据
SQL> select * From t1;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ------------------------------ --------------------------- ---------- -------------- ---------- ---------- ----------
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7839 KING PRESIDENT 17-11月-81 5000 10
7934 MILLER CLERK 7782 23-1月 -82 1300 10
SQL> select * From t3;
DEPTNO DNAME LOC
---------- ------------------------------------------ ---------------------------------------
10 ACCOUNTING NEW YORK
9 删除原来的repa进程
delete repa
合并replicate进程:
1、停止exta进程
stop exta
查看exta 的Write Checkpoint的 Sequence 和RBA 并记录
info dpa,showch
查看dpa的Write Checkpoint的 Sequence 和RBA 并记录,如果dpa的Write Checkpoint的 Sequence和exta 的Write Checkpoint的 Sequence 和RBA 相等,则停止dpa进程,说明数据已经同步到目标端
stop dpa
查看repa1,repa2的Current Checkpoint的 Sequence 和RBA ,如果dpa的Write Checkpoint的 Sequence和 相同,说明数据已经同步完成 .则停止repa1 repa2进程,
stop repa1
stop repa2
2、查看dpa 进程Write Checkpoint的 Sequence 和RBA
GGSCI (a-hb-8-54) 414> info dpa,showch
EXTRACT DPA Last Started 2015-04-03 11:25 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:04 ago)
Log Read Checkpoint File F:\ggs_window\dirdat\aa000029
2015-04-03 11:42:44.000000 RBA 2849
Current Checkpoint Detail:
Read Checkpoint #1
GGS Log Trail
Startup Checkpoint (starting position in the data source):
Sequence #: 28
RBA: 5900
Timestamp: 2015-04-03 11:17:25.000000
Extract Trail: F:\ggs_window\dirdat\aa
Current Checkpoint (position of last record read in the data source):
Sequence #: 29
RBA: 2849
Timestamp: 2015-04-03 11:42:44.000000
Extract Trail: F:\ggs_window\dirdat\aa
Write Checkpoint #1
GGS Log Trail
Current Checkpoint (current write position):
Sequence #: 27
RBA: 3966
Timestamp: 2015-04-03 14:01:57.832000
Extract Trail: /ggs/dirdat/aa
3、修改replicate 进程的参数文件
并加入队列
GGSCI (a-hb-8-54) 416> view params exta
extract exta
userid goldengate,password goldengate
exttrail F:\ggs_window\dirdat\aa
reportcount every 1 minutes,rate
discardfile F:\ggs_window\dirrpt\exta.dsc,append,megabytes 10M
dynamicresolution
rmthost 10.10.8.222,mgrport 7809
table scott.t1;
table scott.t3;
4 添加进程
add replicat repa,exttrail /ggs/dirdat/aa nodbcheckpoint
5 修改进程的指针
alter repa extseqno 28, extrba 2133
6 重启进程
start repa
7 源端删除数据,验证
SQL> select *from t3;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
SQL> delete from t3 ;
已删除 1 行。
SQL> commit;
提交完成。
查看目标端
SQL> select * From t3;
no rows selected
8 删除进程
delete repa1
delete repa2