动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.在Oracle ERP中导数据(BOM清单).
.CERN应用Oracle9iAS提高网络应用.
.Oracle数据库在网格计算中的应用.
.ORACLE 回滚段表空间数据文件丢失.
.Oracle数据库技术(11).
.用.NET新提供的managed provider.
.如何移动表达到减小数据文件大小.
.ORACLE 应用经验(2).
.深入分析Oracle数据库日志文件.
.从MySQL到ORACLE程序迁移的注意事.
.基于Oracle9i的服务器性能评测.
.Oracle Online Redo LogFile 全面.
.如何在硬碟建置Linux系统之使用 .
.通过使用Oracle商务智能保持住了.
.实现类GRID报表功能的程序包.
.oracle 10G RAC之VIP探讨(2).
.Oracle优化SQL执行效能的几点常识.
.用于企业的Oracle9i真正的应用集.
.ExactPapers Oracle 1Z0-030 200.
.安装 Oracle 9iR2 on RHEL AS 3 .

详解Oracle分布式系统数据复制技术

发表日期:2008-2-9 |


引言 一个中型或大型公司往往由地理上分散的部门所组成,这些部门通常需要进行数据共享。针对这些共享数据,可以将其存储在某个站点上,需要的用户都从这个站点上存取。这种方案的优点是数据的一致性轻易保证,但其缺点也是很突出的,那就是该站点的负载大、网络负载大,远程用户的数据响应迟缓。数据复制技术可以有效地解决这个问题,它通过将这些共享数据复制到位于不同地点的多个数据库中,从而实现数据的本地访问,减少了网络负荷,并提高了数据访问的性能,而且通过对数据库中的数据定期同步(通常是天天晚上),从而确保了所有的用户使用同样的、最新的数据。该技术适用于用户数量较大、地理分布较广、而且需要实时地访问相同数据的应用模式。 数据复制的概念及特点 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;
同样,在解释站点上建立与处理站点的数据库链接。 以下为引用的内容:
CONNECT SYSTEM/MANAGER@js.world CREATE PUBLIC DATABASE LINK cl.world USING ’cl.world’; CONNECT repadmin/repadmin@js.world CREATE DATABASE LINK cl.world CONNECT TO repadmin IDENTIFIED BY repadmin;
调度链接确定本站点上的事务向其他站点发送的频度,下面的代码为10分钟一次: 以下为引用的内容:
CONNECT repadmin/repadmin@cl.world BEGIN DBMS_DEFER_SYS.SCHEDULE_PUSH ( destination => ’js.world’, interval => ’SYSDATE + (1/144)’, next_date => SYSDATE, parallelism => 1, execution_seconds => 1500, delay_seconds => 1200); END;
在解释站点上做相同的工作STEP2 创建主控组在复制环境中,Oracle用组来治理复制对象。通过将相关的复制对象放在一个组里,从而方便对大量数据对象的治理。 这里我们假设用户模式integr ation 在处理站点和解释站点都已存在,而且表测区(survey )和测线(line)也已经创建。 (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中的数据复制技术,在具体应用中,还有许多比较复杂的问题需要解决,比如主控组中假如包含循环依靠的表或自相关的表时如何处理;如何利用模版机制来创建物化视图站点;如何对数据复制环境进行治理与维护。这些问题需要在实际应用中逐步探索,深入研究。

上一篇:从纵横五个方面精细优化你的Oracle 人气:906
下一篇:在Oracle9i中Oracle DATA计算时间差 人气:668
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-12-2 OpenPNE中文 v2.12.5 for win 中
2008-12-2 谷秋精品课程软件课程版 v2.3
2008-12-2 晴天电影系统(带一键迅雷/自定义
2008-12-2 QQip138闪字程序
2008-12-2 SmartWeb企业智能建站系统 v1.0.2
2008-12-2 梦想不死个人主页 v2009
2008-12-2 开良ASP小偷程序生成器 v1.1
2008-12-2 toolxp.cnalexa世界排名查询 php
2008-12-2 腾讯留言板 v1.3
2008-11-29 Tencent Traveler 4.4
2008-11-29 龙卷风网络收音机 v3.0.0.0
2008-11-29 Intel Chipset Software Install
2008-11-29 TweakVI 1.0 Build 1100
2008-11-29 Opera 9.62 Build 10469
2008-11-29 MPlayer WW编译版 SVN-r28044(20
2008-11-29 NetTools网络工具v1.0.0破解版
2008-11-29 3DGallery三维体验1.1破解版
2008-11-29 SecretBook保密本v1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | OPEN参数生成器 | 弹出式窗口代码产生器 | 密码登录生成器 | 在线按钮生成器 | Meta标签生成器 | 多色彩特效字代码生成器 | 网页代码调试器 | 在线FTP登陆 | Flash取色器 | 配色代码对照表 | 配色辞典 | CSS生成器 | 广告代码 | 框架网页代码生成器 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | 在线调色板 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 元素周期表 | 健康查询 | 世界时间 | 万年历 | 二十四节气 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2009 www.knowsky.com All rights reserved | 沪ICP备05001343号