关于高级复制的一些数据同步

果你原来两个数据库的表里数据不一致,你用dbms_repcat.add_master_database加表的时候用了:copy_rows=>false, oracle不会帮你做同步,因为你指明了说“不需要复制数据,我保证数据是一致”。这样你永远别想靠replication把数据同步。
你要么设置copy_rows=>ture,这样oracle会把远程表清空,做数据同步。
要么在用dbms_repcat.add_master_database就手工把数据搞成一致,再用copy_rows=>false把表加入replication group. 一般数据比较多都应该这么做。

大致上你可以:
suspend replication group:
BEGIN
DBMS_REPCAT.SUSPEND_MASTER_ACTIVITY (gname => 'xxx');
END;
/

begin
DBMS_REPCAT.DROP_MASTER_REPOBJECT (
sname=>'SCOTT',
oname=>'DEPT',
type=>'TABLE');
end;
/

add the object again:
BEGIN
DBMS_REPCAT.CREATE_MASTER_REPOBJECT(
gname => '"xxx"',
type => 'TABLE',
oname => '"DEPT"',
sname => '"SCOTT"',
copy_rows => TRUE,
use_existing_object => TRUE);
END;
/

gerenate support:
BEGIN
DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT (
sname => 'SCOTT',
oname => 'SCOTT',
type => 'TABLE',
min_communication => TRUE,
generate_80_compatible => FALSE);
END;
/

BEGIN
DBMS_REPCAT.RESUME_MASTER_ACTIVITY (gname => 'xxx');
END;
/

反正个别参数你看文档自己定吧。
5,
2,你的两个replication group应该没什么关联吧,保证你要用的那个是normal就可以了。看看dept被加到那个group了:
select gname from dba_repobject where oname='DEPT' and sname='SCOTT';
[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12482/viewspace-816055/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12482/viewspace-816055/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值