Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6664165
  • 博文数量: 1005
  • 博客积分: 8199
  • 博客等级: 中将
  • 技术积分: 13071
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-25 20:19
个人简介

脚踏实地、勇往直前!

文章分类

全部博文(1005)

文章存档

2020年(2)

2019年(93)

2018年(208)

2017年(81)

2016年(49)

2015年(50)

2014年(170)

2013年(52)

2012年(177)

2011年(93)

2010年(30)

分类: Oracle

2019-05-22 10:34:08

目的库复制进程参数如下:
replicat repep
userid goldengate, password goldengate
DiscardFile ./dirrpt/repep.dsc, append, Megabytes 200
gettruncates
allownoopupdates
assumetargetdefs
dboptions suppresstriggers
dboptions deferrefconst
MAP ora12cpdb1.hxl.tb_test,TARGET hxl.tb_test;
MAP ora12cpdb1.hxl.tb_test01,TARGET hxl.tb_test01;
MAP ora12cpdb1.hxl.tb_test02,TARGET hxl.tb_test02;
ddlerror 10655 ignore
ddlerror 10636 ignore


源库进行更新操作
update hxl.tb_test t
  set t.name='hxlname1111'
where Id=11;


复制进程报出现absend,错误如下:
OCI Error ORA-01403: no data found, SQL
Aborting transaction on /u01/ogg/dirdat/ep beginning at seqno 0 rba 6340


原因是:目的库没有id=11的记录导致的;


在复制进程参数加上handlecollisions后,进程可以正常启动,但是id=11的记录不会同步过去,我们要想实现更新的时候发现不存在的记录做insert写入操作,
可以针对每个maping加上resolveconflict处理,如下配置
replicat repep
userid goldengate, password goldengate
DiscardFile ./dirrpt/repep.dsc, append, Megabytes 200
gettruncates
allownoopupdates
assumetargetdefs
dboptions suppresstriggers
dboptions deferrefconst
--handlecollisions
MAP ora12cpdb1.hxl.tb_test,TARGET hxl.tb_test
resolveconflict (updaterowmissing, (default, overwrite));
MAP ora12cpdb1.hxl.tb_test01,TARGET hxl.tb_test01;
MAP ora12cpdb1.hxl.tb_test02,TARGET hxl.tb_test02;
ddlerror 10655 ignore
ddlerror 10636 ignore

这个要是更新的不是主键的话,需要在主库为每个列加上补充日志,如下:
alter database add supplemental log data (all) columns或是
alter table hxl.tb_test add supplemental log data(all) columns;

备注resolveconflict的常见使用:
map hxl.tb_test, target hxl.tb_test,
comparecols (on update all, on delete all),
resolveconflict (updaterowexists, (default, usemin (last_time))),
resolveconflict (deleterowexists, (default, overwrite)),
resolveconflict (deleterowmissing, (default, discard));
阅读(13015) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~