动态网站制作指南 [  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的操作系统项目Raw Ir.
.性检查的简单快捷方法(利用Post方.
.oracle 中的常用命令重点展播.
.Oracle 数据库 10g 企业版数据表.
.Useful SQL reference.
.深入讲解游标类型为什么会产生数.
.Oracle企业管理器10g第三版上市.
.Qmail如何设置接收发给其他主机的.
.使用 ADDM 快速轻松解决常见的性.
.SPFILE的备份与恢复二.
.Oracle 数据库复制常用脚本.
.如何将Oracle数据库的普通表转换.
.一次分析的全过程.
.在Oracle中使用自治事务保存日志.
.如何直接解压.tar.gz文件.
.讲解Oracle show parameter命令的.
.Linux 7.1 上的 oracle8.1.7安装.
.三大软件巨头抢食西部电子商务蛋.
.EXP、IMP 命令详解.
.ORACLE *Graphics中不同类型图形.

精细分析Oracle分布式系统数据复制技术

发表日期:2008-2-9 |


一个中型或大型公司往往由地理上分散的部门所组成,这些部门通常需要进行数据共享。针对这些共享数据,可以将其存储在某个站点上,需要的用户都从这个站点上存取。这种方案的优点是数据的一致性轻易保证,但其缺点也是很突出的,那就是该站点的负载大、网络负载大,远程用户的数据响应迟缓。数据复制技术可以有效地解决这个问题,它通过将这些共享数据复制到位于不同地点的多个数据库中,从而实现数据的本地访问,减少了网络负荷,并提高了数据访问的性能,而且通过对数据库中的数据定期同步(通常是天天晚上),从而确保了所有的用户使用同样的、最新的数据。该技术适用于用户数量较大、地理分布较广、而且需要实时地访问相同数据的应用模式。 数据复制的概念及特点 1、数据复制的概念及分类: 数据复制,就是将数据库中的数据拷贝到另外一个或多个不同的物理站点上,从而保持源数据库与目标数据库中指定数据的一致性。 按照数据复制的实时性,数据复制可分为同步数据复制和异步数据复制。同步数据复制是指将本地生产数据以完全同步的方式复制到异地,每一本地IO交易均需等待远程复制的完成方予以释放。异步数据复制则是指将本地生产数据以后台同步的方式复制到异地,每一本地IO交易均正常释放,无需等待远程复制的完成。同步复制实时性强,远端数据与本地数据完全同步。但这种方式受带宽影响较大,数据传输距离较短。异步复制不影响本地交易,传输距离长,但其数据比本地数据略有延迟。在异步复制环境中,对于所有应用最要害的就是要确保数据的一致性。 按照复制站点的类型,数据复制可分为多主控站点复制、物化视图复制及混合复制。多主控站点复制也称为对等站点复制,其中每个站点都是主控站点,都需要与其他站点进行信息交流,各站点之间是平等的。物化视图复制包含一个主控站点、一个或多个物化视图站点, 物化视图中的内容可以为目标主对象在某个时间点的全部拷贝或部分拷贝,其中目标主对象既可以是主控站点上的表也可以是物化视图站点上的主物化视图。混合复制包含多个主控站点和多个物化视图站点,是主控站点复制和物化视图复制的结合体,适合于复杂的业务情况。 2、数据复制的特点: 数据复制通过在多个站点上建立备份,能够提高数据的安全性,同时也提高了数据的可用性,这是因为假如一个站点出现了问题,用户可以选择其他站点继续进行操作,应用系统还可继续运行,从而数据复制提供了容错保护机制。 然而数据复制最基本的功能是提高数据库的性能。它通过将远程数据库中的数据复制到本地,使得应用能够就近访问数据,从而降低网络传输负载,提高效率。而且在数据复制系统中,可以提供多个站点之间的负载平衡,让这几个用户使用这个服务器,另外几个用户可以 使用其他的服务器,以避免某些站点负载过重。 物化视图还提供了按子集进行复制,这样各站点就可只复制自己需要的数据,也能减轻网络的传输量。 数据复制的实现方法 在具体的实现之前,首先要做好设计与规划。这就需要细致分析具体的业务情况,设计出一套能够满足业务需要的方案。通常在设计过程中,需要确定出要建立的数据库站点,各站点的类型,需要复制的数据对象,以及同步方式、冲突解决方案等内容。 在设计完成之后,就可具体来实现数据复制,数据复制实现过程如下图所示:
从图中可以看出,数据复制的实现主要包括以下几步: (1)创建复制站点。 (2)创建组对象。 (3)配置冲突解决方案。 下面我们举一个例子来说明各步具体需要完成的工作。在这个例子中我们采用多主控站点复制方式,设有两个主控站点和两个共享数据表。两个主控站点分别为:处理站点(cl.world)和解释站点(js.wo rld);两个数据表为测区( survey)和测线( line)。 STEP1 创建复制站点 (1)首先以SYSTEM身份登陆主站点数据库cl.world CONNECT 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数据库中密码出现@符号 人气:454
下一篇:通过实例来教你如何配置Oracle监听器 人气:691
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-8-20 25175 学生成绩管理查询系统 v2.
2008-8-20 乘风电影程序 v3.7 Acc
2008-8-20 乘风电影程序 v3.7 Sql
2008-8-20 XML文章系统 v1.08 build 080820
2008-8-20 老Y文章管理系统 v2.0 build 080
2008-8-20 OA企业智能办公自动化系统边缘特
2008-8-20 欣颐免费时尚发廊美发厅全站程序
2008-8-20 凌风简单留言板 v1.0
2008-8-20 政府工作日志系统
2008-8-16 iLaba Player(小喇叭播放器) v2.
2008-8-16 DoubleClickFix 鼠标双击修正工具
2008-8-16 CrystalCPUID 4.15.2.451
2008-8-16 VeryCD 电驴(easyMule) 1.0.4 Bu
2008-8-16 uTorrent 1.8 Build 11813 - Sta
2008-8-16 比特精灵(BitSpirit) v3.3.2.287
2008-8-16 StayInTune音叉 v1.0 破解版
2008-8-16 iChing《周易》汉化补丁 v1.0
2008-8-16 Starmap星空图v1.0汉化破解版
  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵