日期:2014-05-16  浏览次数:20925 次

如何实现高级复制的单向同步
我按照网上介绍的方法,试验高级复制,数据确实通讯成功,但是两个数据库是双向同步的,我想实现单向的同步,应该怎么修改配置呀?
数据库A:orcl.test.com.cn
数据库B:test.test.com.cn
我用的同步相关脚本,如下

execute dbms_repcat.create_master_repgroup('repg'); 

在复制组里加入复制对象:

execute dbms_repcat.create_master_repobject(sname=>'test',oname=>'test',type=>'table',use_existing_object=>true,gname=>'repg',copy_rows=>false);

对复制对象产生复制支持:

execute dbms_repcat.generate_replication_support('test','test','table');

添加主体复制节点:

execute dbms_repcat.add_master_database(gname=>'repg',master=>'test.test.com.cn',use_existing_objects=>true,copy_rows=>false, propagation_mode 

=>'asynchronous');

execute dbms_repcat.resume_master_activity('repg',true);

请问如何改成单向通讯呀?

------解决方案--------------------
高级复制又称为对称复制,所以是双向的,不过你可以尝试把一边的触发器给disable掉,按理来说应该就可以实现单向复制。不过想真正实现单向复制还是建议用streams或者基于物化视图的高级复制。
------解决方案--------------------
听oracle得人说的.
而且高级复制基于trigger,stream基于logminer,效率都是个问题.
而goldengate是使用c编写的工具,直接对日志进行分析并处理,效率高,并且支持异构数据库.
所以自从oracle收购了goldengate,就不在对上面两种方式进行升级了