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

2023-11-10 08:40

本文主要是介绍Oracle复制技术的分布式系统同步应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文将结合一个实际案例,讲解Oracle复制技术在分布式信息系统中的同步应用,希望通过这篇文章,大家能更好的理解Oracle复制技术。

  引言

  基于WAN的分布式管理信息系统是当前跨多地域企事业单位信息处理的首选。福建省运政管理信息系统是覆盖全省14个市运管处、84个县运管所的WAN分布式网络管理系统,根据业务特点和实际应用特征,全省数据存储分为二级,在省局中心设立全省数据存储中心,各市处设立本市处数据存储中心,省局数据中心又分内网数据中心和外网数据中心。本文运用Oracle高级复制技术实现各数据中心的数据同步。

  1 Oracle高级复制技术

  Oracle高级复制,也称为对称复制,有基于整个表的复制和基于部分表的复制两种复制方法。这两种复制主要是通过多主复制和可更新快照复制两种机制实现的。同时还可以将这两种复制机制结合起来以满足不断变化的业务需求。

  1.1多主复制

  多主复制方法支持全表在各个主节点间的对称复制,允许所有主节点对主表有更新操作的权力。任何-个主节点上的复制表的更新都会被传播并直接应用到其他所有主表。一个主节点出现问题,不会影响其他主节点之间的传播。

  多主复制采用一种称为“延迟远程过程调用(deferred remoteprocedure calls RPCs)”机制。各节点之间变化的传播,既可以以基于事件的方式立即传播,也可以从某个特定的时间点(如在网络空闲)开始传播。在传播变化时,如果其中的一个远端系统没有准备好,传播变化的延迟远程过程调用就会保存在其本地队列中,等到系统准备好以后再执行。

  1.2可更新快照复制

  Oracle将只读快照机制扩展为一种允许快照可更新的对称复制。快照更新的传播方式也是采用了和多主复制一样的延迟远程过程调用机制。

  快照是对出现在特定时刻的数据的复制,既可以是包含一个主表的完全拷贝,也可以是满足基于值的选择标准的主表中行的子集。快照在主节点的刷新是按照一定的时间间隔或用户单独请求进行的。最后一次刷新后主表的任何变化也同样被传播并应用到快照。多个快照的刷新是在一个一致的事务中完成的,这就确保了数据和引用的完整性。

  1.3混合配置

  可以将多主复制和可更新快照结合在一起,构成一种新的混合配置,这种配置可以完成对全表或子表的复制。例如,一个系统具有两个不同地理区域的中心节点,这两个不同的地理区域下面还有一些分支机构,可以把两个中心节点看作是互为备份节点,采用多主复制方法在两个中心节点之间复制数据,同时采用只读或可更新快照复制方法在区域范围中的主节点之间复制全表或主表。这种配置的一个显著好处就是当其中的一个中心发生问题时,快照的主节点可以被重新定义到另一个良好的中心节点上,从而提高了系统的可靠性。

  1.4过程级复制

  这种复制方法主要应用在存在大量数据以及采取批处理方式操作数据的情况。

  2实际应用

  2.1福建省运输管理局网络环境

  福建省运输管理局根据系统业务的需要,建立了全省的省、市、县业务VPN三级网络系统,各数据中心均采用oracle数据库系统,整个数据的存储采用二级分布存储,以确保全省业务数据存储的快速、稳定、安全。全省数据中心分布如图1。

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

  各级数据中心的存储原则:省局数据中心(内网)汇集全省各市运管处的所有业务数据,为各市实现异地备份,提供跨地市数据查询,协助完成异地执法稽查,通过内外网数据交换,实现内网相关数据流向外网,外网提交的数据进入内网,为公众提供数据查询与业务力、理等服务。各市运管处只为本市所辖县的运管所提供存储服务,并将数据汇集到省局数据中心,出现数据故障时自动从省局读取数据进行数据恢复。

  基于以上的数据存储原则,整个数据同步机制主要采用Oracle复制技术的可更新快照机制。省局的数据库系统设置为主数据库,各市处的数据库系统设置为从数据库,所以整个分布式数据库系统是“一主多从”的结构。使用Oracle系统中的增量复制技术,定时或手动进行主数据库与从数据库的数据更新。从数据库复制到主数据库的是全部数据,只要从数据库中的数据有变化,就会反映到主数据库中;主数据库复制到从数据库的是与本市相关的业务数据。省局内网与外网数据中心、省局与省厅之间数据交换同样采用可更新快照要制实现。

  2.2数据复制以及各中心的数据同步过程

  数据库复制操作可以由各市处数据库发起,发起的方式可以是定时自动复制也可以是手动复制。实现数据复制可以用命令方式或用Oracle系统的 Advanced replication manger来定制。下面采用命令方式,以省局和厦门两点为例描述主从数据中心节点的数据同步复制的操作步骤。

  2.2.1实现数据库复制的前提

  (1)用system身份登录各数据库,查看v$option视图,如果其中Advanced replication为TRUE,则支持高级复制功能,否则不支持。

  (2)打开tnsnames.ora文件,设置数据库初始化参数要求:

  ①db_domain=fjysgl.com.cn,/指明数据库的域名(默认的是WORLD),这里用fjysgl.com.cn。

  ②global_names=true//它要求链接(database link)和被连接的数据库名称一致,因而全局数据库名为:db_name+”.”+db_domain。

  ③有跟数据库job执行有关的参数。

  1.job_queue processes=l //定义SNP进程的启动个数为n,系统缺省值为0,正常定义范围为0-36,根据任务的多少,可以配置不同的数值。

  2.job_queue_interval=60 //定义系统每隔N秒唤醒该进程一次,系统缺省值为60秒,正常范围为1~3600秒。

  3.distributed_transactions=lO

  4.open._links=4

  2.2.2实现数据库的同步复制操作

  省局数据中心与厦门市处数据中心的具体配置如表1所示。

  (1)确认网络畅通,两中心数据库服务器之间可以互相访问,在tnsnames.ora里设置数据库连接字符串。

  ①修改厦门市处数据库连接字符串。

  1.fjyg=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=

  2.(PROTOCOL=TCP)(HOST=10.1.1.3)(PORT=1521)))

  3.(CONNECT_DATA=(SERVICE_NAME=f]yg)))

  运行$tnsping fjyg,出现以下提示符:

  1.Attempting 10 contact(ADDRESS=(PROTOCOL=TCP)

  2.(HOST=10.1.1.3)(PORT=1521))

  OK(10毫秒)则表明有厦门市处数据库可以访问省局中心数据库。

  ②在省局数据库作同样类似配置,并确认$tnsping xm是通的。

  (2)改数据库全局名称,建公共的数据库链接。

  ①用system身份登录xm数据库:

  1.alter database rename global_name t0 xm.1jysgl.com.cn:

  用system身份登录fjyg擞据库:

  1.alter database rename global_name to fjyg.1jysgl.com.cn:

  ②用system身份登录xm数据库:

  1.create public database link fjyg.fjysgl.com.cn using fjyg’:

  测试数据库全局名称和公共的数据库连接:

  1.select。from global_name@t]yg.fjysgl.com.cn:

  返回结果应为fjYg.fjysgl.com.cn;

  用system身份登录fjyg数据库:

  1.create public database link xm.fjysgl.com.cn using‘xm’;

  测试数据库全局名称和公共的数据库链接。


(3)建立管理数据库复制的用户repadmin,并赋权。

  ①用system身份登录xm数据库,分别运行如下命令:

  1.create user repadmin identified by repadmin default

  2.tablespace users temporary tablespace temp;

  3.execute dbms_defer_sys.register_propagator(‘repadmin’):

  4.

  5.grant execute any procedure to repadmin;

  6.execute dbms_repcat_admin.grant_admin_any_repgroup

  7.(‘repadmin’):

  8.grant comment any table t0 repadmin;

  9.grant lock any table tO repadmin;

  ②同样用system身份登录旬yg数据库,运行以上的命令,管理数据库复制的用户repadmin,并赋权。

  (4)在数据库复制的用户repadmin下创建私有的数据库链接。

  ①用repadmin身份登录xm数据库。

  1.create database link fjYg.fjysgl.com.cn connect Io repadmin

  2.identified by repadmin;

  ②用repadmin身份登录fjyg数据库。

  1.create database link xm.fjysgl.com.cn connect to repadmin

  2.identified by repadmin;

  在这里以ORACLE系统的例程用户的scott及dept表。

  (5)创建或选择实现数据库复制的用户和对象,给用户赋权,数据库对象必须有主关键字。

  (6)创建要复制的组scott_mg,加入数据库对象,产生对象的复制支持。

  ①用repadmin身份登录xm数据库,创建主复制组。

  1.scott_mg execute dbms_repcat.create_master_repgroup

  2.(‘scott_mg’):

  ②在复制组scott_mg里加入数据库对象。

  1.execute dbms_repcat.create_master_repobject(sname=>'scott',

  2.oname=>'dept',type=>'table',use_existing_object=>true.

  3.gname=>。scotLmg’):

  ③对数据库对象产生复制支持。

  1.execute dbms_repcat.generate_replication_support(‘scott','dept',

  2.‘tabIe’):

  ④确认复制的组和对象已经加入数据库的数据字典。select gname.master。status from dba_repgroup;select from dba_repobject;

  (7)创建主复制节点。

  ①用repadmin身份登录xm数据库,创建主复制节点。execute dbms_repcat.add_master_database

  1.(gname=>'sco~_mg',master=>'rjyg.fjysgLcom.cn.,

  2.use_existing_objects=>true.copy_rows=>false,

  3.propagation_mode=>。asynchronous');

  ②确认复制的任务队列已经加入数据库的数据字典。select’from useriobs;

  (8)使同步组的状态由停顿(quiesced)改为正常(normal)。

  ①用repadmin身份登录xm数据库,运行以下命令:execute dbms_repcat.resume_master_activity('scott_mg',false);

  ②确认同步组的状态为正常(normal)。select gname,master,status from dba_repgroup;

  ③如果这个①命令不能使同步组的状态为正常(normal),可能有一些停顿的复制,运行以下命令进行处理:execute dbms_repcat.resume_master_activity('scott,mg',true);

  (9)创建复制数据库的时间表,假设10分钟自动复制一次。

  ①用repadmin身份登录xm数据库,运行以下命令:

  1.SQL>begin

  2.dbms_defer_sys.schedule_push

  3.(destination=>'fjyg.fjysgl.com.cn.,interval=>’sysdate

  4.+10/1440',next_date=>sysdate);end;/

  5.

  6.SQL>be_qin

  7.dbms_defer_sys.schedule_purge(next_date=>sysdate.

  8.interval=>’sysdate+10/1440',delay_seconds=>0.

  9.rollback_segment=>”):

  10.end;

  11./

  ②用repadmin身份登录巧yg数据库,运行与①相似命令。

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

  通过以上的配置即可实现省局与厦门市处二个数据中心之间的数据同步复制,其他点省局与福州处、省局与泉州处等使用相同的方法进行处理。

  对于省局中心的内外网数据库服务器,因为正常工作时间,内外网均不能停顿,而内外网又不能物理连通,于是设定在每天晚上非工作时间(或其它时段)为维护时段,该时段内外网均停止作业,由系统管理员把与内外网DB相连的所有网线断开,用一根直连网线把两台DB连接,使用相同的方式实现内外网数据的同步。

  3 结束语

  Oracle的高级复制功能为分支机构多、地理范围广的大型企事业单位的分布式数据库系统提供了很好的各中心数据同步的实现方案。而随着网络技术的发展,这种应用也显得越来越重要,变得越来越复杂。为充分利用数据复制来提高数据的可用性和系统的性能,在进行复制之前应作出详细的需求分析才能取得更好的应用效果。


视频:http://www.56.com/u75/v_NTA0NDIzNjg.html

 

这篇关于Oracle复制技术的分布式系统同步应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/381569

相关文章

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

zoj3820(树的直径的应用)

题意:在一颗树上找两个点,使得所有点到选择与其更近的一个点的距离的最大值最小。 思路:如果是选择一个点的话,那么点就是直径的中点。现在考虑两个点的情况,先求树的直径,再把直径最中间的边去掉,再求剩下的两个子树中直径的中点。 代码如下: #include <stdio.h>#include <string.h>#include <algorithm>#include <map>#

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。