问题复现:项目需要新增一张表的抽取,新建一个复制进程接收源端的投递数据,进程状态为RUNNING,可是源端表记录变更后,目标端无反应,排除extrail文件路径错误问题,锁定问题在新增的replicat进程(replic_4):
GGSCI (zoedb44.zoe.com) 24> info replic_4
REPLICAT REPLIC_4 Last Started 2017-07-15 09:27 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:00 ago)
Process ID 23031
Log Read Checkpoint File ./dirdat/ep000000000
First Record RBA 0
GGSCI (zoedb44.zoe.com) 25> info replic_3
REPLICAT REPLIC_3 Last Started 2017-07-14 20:55 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:08 ago)
Process ID 11727
Log Read Checkpoint File ./dirdat/ep000000018
2017-07-15 10:10:37.849362 RBA 15178
[oracle@zoedb44 dirdat]$ ls
ep000000010 ep000000012 ep000000014 ep000000016 ep000000018
ep000000011 ep000000013 ep000000015 ep000000017
解决方案:发现问题出在新建的进程默认由ep000000000开始读取,而目标端只保留最近一段时间的数据文件,因此新建进程就停滞在那里,手动指定断点从最近的数据文件开始读取即可解决。
GGSCI>add replicat reemr01,exttrail ./dirdat/emr/ep,checkpointtable hdcogg.ggs_checkpoint, extseqno 38,extrba 1556977542
--修改myrep的读检查点
ALTER replicat myrep, EXTSEQNO 1234, EXTRBA 0
新增新系统进行数据同步时,添加的第一个replicat进程不需要设置extseqno以及rba号,因此此时进程同步的队列文件还不存在,需要在添加新replicat进程时指定新的队列文件名称。
在同一个同步系统中,增加第二个replicat进程起,需要设置相应检查点并指定最近一个队列号和rba号
网友评论