[Oracle]分布式系统的数据复制技术(转)

[Oracle]分布式系统的数据复制技术[@more@]

一个中型或大型公司往往由地理上分散的部门所组成,这些部门通常需要进行数据共享。针对这些共享数据,可以将其存储在某个站点上,需要的用户都从这个站点上存取。这种方案的优点是数据的一致性容易保证,但其缺点也是很突出的,那就是该站点的负载大、网络负载大,远程用户的数据响应迟缓。数据复制技术可以有效地解决这个问题,它通过将这些共享数据复制到位于不同地点的多个数据库中,从而实现数据的本地访问,减少了网络负荷,并提高了数据访问的性能,而且通过对数据库中的数据定期同步(通常是每天晚上),从而确保了所有的用户使用同样的、最新的数据。该技术适用于用户数量较大、地理分布较广、而且需要实时地访问相同数据的应用模式。

数据复制的概念及特点

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中的数据复制技术,在具体应用中,还有许多比较复杂的问题需要解决,比如主控组中如果包含循环依赖的表或自相关的表时如何处理;如何利用模版机制来创建物化视图站点;如何对数据复制环境进行管理与维护。这些问题需要在实际

应用中逐步探索,深入研究。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9417382/viewspace-963613/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9417382/viewspace-963613/

基于STM32设计的智能家居控制系统(华为云)_363 本项目设计并实现了一种基于STM32的智能家居控制系统,融合了语音识别、远程控制、环境监测与安全报警等功能。系统以STM32F103C8T6单片机为核心控制器,集成ESP8266 Wi-Fi模块实现与华为云IOT物联网平台的数据交互,采用MQTT协议进行通信。用户可通过语音识别模块控制风扇、空调、窗帘、卧室灯、客厅灯和电视等家电的开关操作,同时也可通过Android手机APP或Windows电脑上位机进行远程控制。系统还具备温湿度、光照强度、烟雾浓度和火焰检测功能,当检测到异常情况时,自动触发蜂鸣器报警并向 阅读详情

相关推荐

AI 代码生成工具的质量评估体系

基础需求层包括响应速度(Response Time)和界面友好性(UI Friendliness),期望需求层涵盖智能提示(Smart Suggestions)和个性化配置(Personalization),兴奋需求层则涉及多模态交互(Multimodal Interaction)和代码进化(Code Evolution)。在金融领域,代码审计合规性(Compliance Audit)权重应提升至40%,而在Web开发中,API兼容性(API Compatibility)的权重需达到35%。

2503_92418637的博客 3372

.NET面试经典三问:什么是.NET、.NET Framework、.NET Core?及相关引申问题

前言本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从类型系统开始讲起,我将通过跨语言操作这个例子来逐渐引入一系列.NET的相关概念,这主要包括:CLS、CTS(CLI)、FCL、Windows下CLR的相关核心组成、Windows下托管程序运行概念、什么是.NET Framework,.NET Core,.NET Standard及一些VS编译器相关杂项和相关阅读链接。完整的从上读到下...

weixin_68436326的博客 251

告别轮询!用STM32CubeMX给STM32F030配置ADC多通道+DMA,实测代码分享

本文详细介绍了如何使用STM32CubeMX为STM32F030配置ADC多通道采集与DMA传输,显著提升采集效率。通过实测对比轮询与DMA模式的性能差异,提供完整的代码实现和优化技巧,帮助开发者快速掌握这一高效采集方案。

weixin_42570296的博客 410

.NET常见的20个面试题

通过定义类来创建对象,使用继承实现类之间的层次关系,利用多态实现不同对象对同一消息的不同响应,通过封装将数据和方法封装在类中,实现数据的封装和隐藏。Entity Framework是.NET中的一个ORM(对象关系映射)框架,它简化了数据库访问和操作的过程,将数据库中的表和列映射到.NET中的实体类和属性。发布策略包括选择适当的部署方式(例如XCopy部署、Web部署、ClickOnce部署等),配置应用程序的设置和参数,处理依赖项和版本控制,以及确保应用程序的稳定性和安全性。

2401_83470102的博客 5321

第一天(点亮led灯+led灯闪烁)——Arduino uno R3 学习之旅

发光二极管(Light Emitting Diode,简称LED)是一种能够将电能转化为光能的固态的半导体器件。长脚为阳极短脚为阴极电流必须从长脚流入从短脚流出方可点亮LED##杜邦线杜邦线:是导线中的一种,杜邦线端部有两种接头形式:带针的一种称为公头,带孔的一种称为母头,如下图所示:说明:与电源相连接时,一般采用红色杜邦线,与地连接时采用黑色杜邦线。

qwsbcjendb的博客 1130

​苹果开发者账号推送证书配置详细指南​

推送证书的配置是iOS应用实现消息推送的核心步骤。通过生成证书、配置描述文件、集成到服务器三大环节,开发者可快速为App启用APNs服务。建议优先使用更灵活的APNs Auth Key替代传统证书,以减少维护成本。确保拥有有效的苹果开发者账号(个人/公司账号),年费已缴纳。

2326

分享DotNet面试宝典

这是传智播客分享的DotNet面试宝典,查漏补缺,希望能够好好利用。 .Net工程师面试笔试宝典 传智播客.Net培训班内部资料 http://net.itcast.cn 这套面试笔试宝典是传智播客在多年的教学和学生就业指导过程中积累下来的宝贵资料,大部分来自于学员从面试现场带过来的真实笔试面试题,覆盖了主流的.Net笔试面试题。很多学员面试回来都会说“这次面试出的题几乎都在面试笔试宝

陈晖ToDo 4497

simulink求解器选择的小tip

给出了simulink选择求解器的一种tip,与积分初值有关。

高能阿博特的博客 2054

大型软件公司.net面试题!一定得看(附答案)

1:a=10,b=15,在不用第三方变量的前提下,把a,b的值互换   2:已知数组int[] max={6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列,并返回数组   3:请简述面向对象的多态的特性及意义!   4:session喜欢丢值且占内存,Cookis不安全,请问用什么办法代替这两种原始的方法   5:对数据的并发采用什么办法进行处理较好。   6:已...

weixin_33877885的博客 226

fastadmin云快充充电桩系统部署文档uniapp

多商户 嘎嘎快充V1.0部署文档 一、服务器环境: 服务器配置4核心8GB内存5M带宽以上配置 VX next1402 只支持linux环境 nginx1.22 php7.2 开启redis、fileinfo扩展,关闭禁用workerman gatewayworkerman需要的函数,如pcntl相关的函数 mysql5.7 supervisor redis 注意: 1.站点必须配置https、websocket配置wss 2.注意开放直连服务端口:2024,并添加到安全组 二、必

itholiday2014的博客 1629

【数字孪生与仿真技术】10:半导体制造中的虚拟量测技术深度解析:从多尺度建模到工业级应用

摘要:半导体制造过程中,晶圆加工需实时监测300+关键参数,传统物理量测技术面临产能损耗、延迟检测等痛点。本文系统阐述虚拟量测(Virtual Metrology)技术的完整解决方案,通过多尺度混合建模实现物理机理与数据驱动的深度融合。内容涵盖等离子体刻蚀、薄膜沉积等关键工艺的物理模型构建,LSTM神经网络的数据校正算法,以及边缘-云协同的实时部署架构。某12英寸晶圆厂实践表明,虚拟量测技术可减少70%物理量测频次,异常漏检率从18%降至3%,机台利用率提升11%。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2548

.NET初级软件工程师面试经验分享

今天大姚给大家分享一个来源于DotNetGuide编程学院小伙伴的面试经验分享,首先这位小伙伴是24年6月份毕业的,满打满算也就只有一年的经验,从当初投递简历没太多动静,到后面找我帮忙优化完简历后 HR 邀约率大幅上升,并且成功斩获2个不错的offer,现已入职。.NET初级软件工程师面试经验分享。

专注于C#/.NET/.NET Core学习、工作、面试干货和实战教程分享。这里聚焦了大量的C#/.NET/.NET Core优质文章、开源项目、实用工具和学习、工作、面试心得。 1763

从零开始理解Linux中断架构(1)-前言

前段时间在转行手撸WIFI路由器,搞wifi路由器需要理解网络驱动程序,以太网卡驱动程序,无线WIFI驱动程序,而网卡驱动的关键路径就在中断程序中,需要了解NIC设备驱动程序如何收发数据,为了彻底的知道数据包是如何二层传递上来的,又需要了解一点Linux中断系统。第一次看到这张表是无感的,大概能够看懂的就是那个中断次数,因为不停的cat,这个数值会一直不停的增加。第一列是逻辑中断号,第二三列是中断次数,第四列是中断控制器的名字,第五列是硬件中断号,第六列 中断类型,第七列是 中断源关联设备。

maxleng的专栏 881

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

  一个中型或大型公司往往由地理上分散的部门所组成,这些部门通常需要进行数据共享。针对这些共享数据,可以将其存储在某个站点上,需要的用户都从这个站点上存取。这种方案的优点是数据的一致性容易保证,但其缺点也是很突出的,那就是该站点的负载大、网络负载大,远程用户的数据响应迟缓。数据复制技术可以有效地解决这个问题,它通过将这些共享数据复制到位于不同地点的多个数据库中,从而实现数据的本地访问,减少了网络负

Roger's Blog 475

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

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

      一个中型或大型公司往往由地理上分散的部门所组成,这些部门通常需要进行数据共享。针对这些共享数据,可以将其存储在某个站点上,需要的用户都从这个站点上存取.这种方案的优点是数据的一致性容易保证,但其缺点也是很突出的,那就是该站点的负载大、网络负载大,远程用户的数据响应迟缓。数据复制技术可以有效地解决这个问题,它通过将这些共享数据复制到位于不同地点的多个数据库中,从而实现数据的本地访问,减少

827

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

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

详解 Oracle 分布式系统数据复制技术  发布时间:2007.04.25 04:49     来源:ruoo.com    作者:ruoo.com一个中型或大型公司往往由地理上分散的部门所组成,这些部门通常需要进行数据共享。针对这些共享数据,可以将其存储在某个站点上,需要的用户都从这

simkyo天之蓝 575

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Oracle复制技术的分布式系统同步应用

本文将结合一个实际案例,讲解Oracle复制技术在分布式信息系统中的同步应用,希望通过这篇文章,大家能更好的理解Oracle复制技术。   引言   基于WAN的分布式管理信息系统是当前跨多地域企事业单位信息处理的首选。福建省运政管理信息系统是覆盖全省14个市运管处、84个县运管所的WAN分布式网络管理系统,根据业务特点和实际应用特征,全省数据存储分为二级,在省局中心设立全省数据存储中...

五谷杂粮 217

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

详解Oracle分布式系统数据复制技术 引言 一个中型或大型公司往往由地理上分散的部门所组成,这些部门通常需要进行数据共享。 针对这些共享数据,可以将其存储在某个站点上,需要的用户都从这个站点上存取。这种方案的优点是数据的一致性容易保证,但其缺点也是很突出的,那就是该站 点的负载大、网络负载大,远程用户的数据响应迟缓。数据复制技术可以有效地解决这个问题,它通过将这些共享数据复制到位于不同地点...

133

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

精细分析Oracle分布式系统数据复制技术 一个中型或大型公司往往由地理上分散的部门所组成,这些部门通常需要进行数据共享。针对这些共享数据,可以将其存储在某个站点上,需要的用户都从这个站点上存取。这种方案的优点是数据的一致性容易保证,但其缺点也是很突出的,那就是该站点的负载大、网络负载大,远程用户的数据响应迟缓。数据复制技术可以有效地解决这个问题,它通过将这些共享数据复制到位于不同地点的多个数

软件开发 348

Oracle 8高级数据复制技术

    本文首先简单介绍和数据库复制有关的基本概念,然后探讨Oracle8数据复制技术中的几个重要模型,最后介绍Oracle8的数据复制管理器以及如何利用它来配置和维护复制环境。       在文章的开头,我想首先简单谈一下复制的基本概念,也就是什么是复制?复制简单地说就是在由两个或者多个数据库系统构成的一个分布式数据库环境中拷贝数据的过程。Oracle高级复制,也称为对称复制,第一次是在...

iteye_19796的博客 175

Oracle分布式系统数据复制技术——概念篇

http://dev.yesky.com/138/2020138.shtml 一、数据复制的概念 数据复制,就是将数据库中的数据拷贝到另外一个或多个不同的物理站点上,从而保持源数据库与目标数据库中指定数据的一致性。 二、数据复制的分类 按照数据复制的实时性,数据复制可分为同步数据复制和异步数据复制。 同步数据复制是指将本地生产数据以完全同步的方式复制到异地,每一本地IO交易均需等待远

happy 露 791

什么是分布式系统,如何学习分布式系统(转)

转载自:https://www.cnblogs.com/xybaby/p/7787034.html#_label_5 正文   虽然本人在前面也写过好几篇分布式系统相关的文章,主要包括CAP理论、分布式存储与分布式事务,但对于分布式系统,并没有一个跟清晰的概念。分布式系统涉及到很多的技术、理论与协议,很多人也说,分布式系统是“入门容易,深入难”,我之前的学习也只算是管中窥...

diaoyu9204的博客 199

oracle复制技术在分布式信息系统中的同步应用

摘要:采用基于增量复制来解决分布式系统的数据同步是一个简单易实现的方法。文章利用Oracle的高级复制技术实现了分布式数据库系统间的数据同步,并给出了PL/SQL命令方式的实现过程。      0引言      基于WAN的分布式管理信息系统是当前跨多地域企事业单位信息处理的首选。福建省运政管理信息系统是覆盖全省14个市运管处、84个县运管所的WAN分布式网络管理系统,根据业务特点和实际应

luoyuchuan的专栏 592
上一篇: 数据备份方法及灾难恢复探讨(转)
下一篇: Linux操作系统中备份恢复技术的应用(转)
congwan5321
博客等级 码龄11年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值