导航: 好喜爱学习网 >> 数据库 >> Oracle数据库 >> Oracle分布式系统数据复制技术
相关文章
最新文章
文章内容
Oracle分布式系统数据复制技术
作者:未知 来源:网络收集 录入:管理员

数据复制的概念及特点

  1、数据复制的概念及分类

  数据复制,就是将数据库中的数据拷贝到另外一个或多个不同的物理站点上,从而保持源数据库与目标数据库中指定数据的一致性。

  按照数据复制的实时性,数据复制可分为同步数据复制和异步数据复制。同步数据复制是指将本地生产数据以完全同步的方式复制到异地,每一本地IO交易均需等待远程复制的完成方予以释放。异步数据复制则是指将本地生产数据以后台同步的方式复制到异地,每一本地IO交易均正常释放,无需等待远程复制的完成。同步复制实时性强,远端数据与本地数据完全同步。但这种方式受带宽影响较大,数据传输距离较短。异步复制不影响本地交易,传输距离长,但其数据比本地数据略有延迟。在异步复制环境中,对于所有应用最关键的就是要确保数据的一致性。

  按照复制站点的类型,数据复制可分为多主控站点复制、物化视图复制及混合复制。多主控站点复制也称为对等站点复制,其中每个站点都是主控站点,都需要与其他站点进行信息交流,各站点之间是平等的。物化视图复制包含一个主控站点、一个或多个物化视图站点, 
物化视图中的内容可以为目标主对象在某个时间点的全部拷贝或部分拷贝,其中目标主对象既可以是主控站点上的表也可以是物化视图站点上的主物化视图。混合复制包含多个主控站点和多个物化视图站点,是主控站点复制和物化视图复制的结合体,适合于复杂的业务情况。

  2、数据复制的特点

  数据复制通过在多个站点上建立备份,能够提高数据的安全性,同时也提高了数据的可用性,这是因为如果一个站点出现了问题,用户可以选择其他站点继续进行操作,应用系统还可继续运行,从而数据复制提供了容错保护机制。 

  然而数据复制最基本的功能是提高数据库的性能。它通过将远程数据库中的数据复制到本地,使得应用能够就近访问数据,从而降低网络传输负载,提高效率。而且在数据复制系统中,可以提供多个站点之间的负载平衡,让这几个用户使用这个服务器,另外几个用户可以
使用其他的服务器,以避免某些站点负载过重。

  物化视图还提供了按子集进行复制,这样各站点就可只复制自己需要的数据,也能减轻网络的传输量。

  数据复制的实现方法

  在具体的实现之前,首先要做好设计与规划。这就需要细致分析具体的业务情况,设计出一套能够满足业务需要的方案。通常在设计过程中,需要确定出要建立的数据库站点,各站点的类型,需要复制的数据对象,以及同步方式、冲突解决方案等内容。

  在设计完成之后,就可具体来实现数据复制,数据复制实现过程如下图所示:

从图中可以看出,数据复制的实现主要包括以下几步:

  (1)创建复制站点

  (2)创建组对象

  (3)配置冲突解决方案

  下面我们举一个例子来说明各步具体需要完成的工作。在这个例子中我们采用多主控站点复制方式,设有两个主控站点和两个共享数据表。两个主控站点分别为:处理站点(cl.world)和解释站点(js.wo rld);两个数据表为测区( survey)和测线( line)。

  STEP1 创建复制站点

  (1)首先以SYSTEM身份登陆主站点数据库cl.worldCONNECT system/manager@cl.world

  (2)创建用户—复制管理员,并为该用户授权复制管理员负责复制站点的创建和管理,每个复制站点都必须创建复制管理员:

CREATE USER repadmin IDENTIFIED BY repadmin;
BEGIN
 DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_SCHEMA (username => ’repadmin’);
END; 

  (3)为本站点指定传播者

  传播者负责将本地最新更新的数据传播到其他站点上:

BEGIN
 DBMS_DEFER_SYS.REGISTER_PROPAGATOR (username => ’repadmin’);
END; 

  (4)为本站点指定接收者

  接收者负责接收其他站点上的传播者传送过来的数据:

BEGIN
DBMS_REPCAT_ADMIN.REGISTER_USER_REPGROUP (
 username => ’repadmin’,
 privilege_type => ’receiver’,
 list_of_gnames => NULL);
END; 

  (5)确定清除时间

  为了使传送过来事务队列不致过大,需要将成功加载的事务从事物队列里清除掉,这里设定每小时清除一次。

CONNECT repadmin/repadmin@cl.world
BEGIN
 DBMS_DEFER_SYS.SCHEDULE_PURGE (
  next_date => SYSDATE,
  interval => ’SYSDATE + 1/24’,
  delay_seconds => 0);
END;


  在建立好站点cl.world后,以同样的方法创建站点js. world。

(6)创建各主控站点之间的调度链接

  创建各主控站点之间的调度链接需要先在各主控站点间建立数据库链接,之后为每个数据库链接定义调度时间。

  首先,在处理站点上建立与解释站点的数据库链接,这里需要先建立一个公用数据库链接,供其他私有数据库链接来使用。

CONNECT SYSTEM/MANAGER@cl.world
CREATE PUBLIC DATABASE LINK js.world USING ’js.world’;
CONNECT repadmin/repadmin@cl.world
CREATE DATABASE LINK js.world CONNECT TO repadmin
IDENTIFIED BY repadmin; 

  

[1] [2] 

E-MAIL:309076721@163.com
本站为非营利性质个人网站,建站只为个人爱好与学习,内容大多为电脑技术教程;
网站内容来源于互联网收集整理,禁止用于非法途径,如发现本网站上有侵权的文章请联系我们,我们会尽快删除;
本站不对站点内容准确性、完整性和真实性作任何承诺,由此产生的后果本站不承担任何责任,对以上引起的一切法律纠纷本站无权利承担。