Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104674889
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-05-22 17:02:33

  来源:

(1)创建主控组对象 以下为引用的内容:

CONNECT repadmin/repadmin@cl.world 
BEGIN 
DBMS_REPCAT.CREATE_MASTER_REPGROUP ( 
gname => ’inte_repg’); 
END;
 

(2)向主控组中添加数据对象,将测区表survey加入到组inte_repg中以下为引用的内容:

BEGIN 
DBMS_REPCAT.CREATE_MASTER_REPOBJECT ( 
gname => ’inte_repg’, 
type => ’TABLE’, 
oname => ’survey’, 
sname => ’integration’, 
use_existing_object => TRUE, 
copy_rows => FALSE); 
END;
以同样的方法将测线表line加入到组inte_repg中。

(3)在主控组中添加其他参与复制的站点,数据库之间的同步方式在此指定以下为引用的内容:

BEGIN 
DBMS_REPCAT.ADD_MASTER_DATABASE ( 
gname => ’inte_repg’, 
master => ’js.world’, 
use_existing_objects => TRUE, 
copy_rows => FALSE, 
propagation_mode => ’ASYNCHRONOUS’); 
END;

(4)如果可能出现冲突,则需要配置冲突解决方案。

(5)为每个对象生成复制支持,以下为引用的内容:

BEGIN 
DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT ( 
sname => ’integration’, 
oname => ’survey’, 
type => ’TABLE’, 
min_communication => TRUE); 
END;
测线表line也一样。

(6)重新开始复制以下为引用的内容:

BEGIN 
DBMS_REPCAT.RESUME_MASTER_ACTIVITY ( 
gname => ’inte_repg’); 
END;

以同样的方式设置解释站点。设置成功后,数据复制过程就宣告完毕,库中的数据就可进行复制。

数据复制中冲突的解决方案

在复制环境中,尽管在数据库和应用程序设计过程中,会尽量避免各站点间冲突的发生,但完全避免冲突的可能性还是比较小的,那么一旦冲突发生,就需要一个按照具体业务规则的冲突解决机制,来使得各站点的数据保持一致。

首先需要哪些对象容易出现冲突。通常来说,静态的数据变化少,冲突出现的可能性也小;而有些数据变化非常大,冲突出现的可能性也大。确定了冲突易发的对象后,需要确定怎样解决冲突,比如在各站点之间建立优先次序,在数据不一致时,以某个站点上的为准;或以某个站点上最新的修改为准。

Oracle提供了多中冲突解决方案,具体包括:针对更新冲突的方案、针对唯一性冲突的方案、针对删除冲突的方案。除了这些方案以外,用户还可以自定义冲突解决。每种方案都有自己的适用情况,那么我们需要根据具体的业务来选择合适的冲突解决方案。

结束语

本文详细介绍了分布式系统Oracle中的数据复制,在具体应用中,还有许多比较复杂的问题需要解决,比如主控组中如果包含循环依赖的表或自相关的表时如何处理;如何利用模版机制来创建物化视图站点;如何对数据复制环境进行管理与维护。这些问题需要在实际应用中逐步,深入研究。


阅读(278) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~