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

来源 :计算机时代 | 被引量 : 0次 | 上传用户:buynewer1111
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:采用基于增量复制来解决分布式系统的数据同步是一个简单易实现的方法。文章利用Oracle的高级复制技术实现了分布式数据库系统间的数据同步,并给出了PL/SQL命令方式的实现过程。
  关键词:复制;分布式;数据库;同步;应用
  
  0引言
  
  基于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系统中的增量复制技术,定时或手动进行主数据库与从数据库的数据更新。从数据库复制到主数据库的是全部数据,只要从数据库中的数据有变化,就会反映到主数据库中;主数据库复制到从数据库的是与本市相关的业务数据。省局内网与外网数据中心、省局与省厅之间数据交换同样采用可更新快照要制实现。
  
  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执行有关的参数。
  job_queue processes=l //定义SNP进程的启动个数为n,系统缺省值为0,正常定义范围为0—36,根据任务的多少,可以配置不同的数值。
  job_queue_interval=60 //定义系统每隔N秒唤醒该进程一次,系统缺省值为60秒,正常范围为1~3600秒。
  distributed_transactions=lO
  open._links=4
  2.2.2实现数据库的同步复制操作
  省局数据中心与厦门市处数据中心的具体配置如表1所示。
  (1)确认网络畅通,两中心数据库服务器之间可以互相访问,在tnsnames.ora里设置数据库连接字符串。
  ①修改厦门市处数据库连接字符串。
  fjyg=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=
  (PROTOCOL=TCP)(HOST=10.1.1.3)(PORT=1521)))
  (CONNECT_DATA=(SERVICE_NAME=f]yg)))
  运行$tnsping fjyg,出现以下提示符:   Attempting 10 contact(ADDRESS=(PROTOCOL=TCP)
  (HOST=10.1.1.3)(PORT=1521))
  OK(10毫秒)则表明有厦门市处数据库可以访问省局中心数据库。
  ②在省局数据库作同样类似配置,并确认$tnsping xm是通的。
  (2)改数据库全局名称,建公共的数据库链接。
  ①用system身份登录xm数据库:
  alter database rename global_name t0 xm.1jysgl.com.cn:
  用system身份登录fjyg擞据库:
  alter database rename global_name to fjyg.1jysgl.com.cn:
  ②用system身份登录xm数据库:
  create public database link fjyg.fjysgl.com.cn using fjyg’:
  测试数据库全局名称和公共的数据库连接:
  select。from global_name@t]yg.fjysgl.com.cn:
  返回结果应为fjYg.fjysgl.com.cn;
  用system身份登录fjyg数据库:
  create public database link xm.fjysgl.com.cn using‘xm’;
  测试数据库全局名称和公共的数据库链接。
  (3)建立管理数据库复制的用户repadmin,并赋权。
  ①用system身份登录xm数据库,分别运行如下命令:
  create user repadmin identified by repadmin default
  tablespace users temporary tablespace temp;
  execute dbms_defer_sys.register_propagator(‘repadmin’):
  grant execute any procedure to repadmin;
  execute dbms_repcat_admin.grant_admin_any_repgroup
  (‘repadmin’):
  grant comment any table t0 repadmin;
  grant lock any table tO repadmin;
  ②同样用system身份登录旬yg数据库,运行以上的命令,管理数据库复制的用户repadmin,并赋权。
  (4)在数据库复制的用户repadmin下创建私有的数据库链接。
  ①用repadmin身份登录xm数据库。
  create database link fjYg.fjysgl.com.cn connect Io repadmin
  identified by repadmin;
  ②用repadmin身份登录fjyg数据库。
  create database link xm.fjysgl.com.cn connect to repadmin
  identified by repadmin;在这里以ORACLE系统的例程用户的scott及dept表。
  (5)创建或选择实现数据库复制的用户和对象,给用户赋权,数据库对象必须有主关键字。
  (6)创建要复制的组scott_mg,加入数据库对象,产生对象的复制支持。
  ①用repadmin身份登录xm数据库,创建主复制组。
  scott_mg execute dbms_repcat.create_master_repgroup
  (‘scott_mg’):
  ②在复制组scott_mg里加入数据库对象。
  execute dbms_repcat.create_master_repobject(sname=>'scott',
  oname=>'dept',type=>'table',use_existing_object=>true.
  gname=>。scotLmg’):
  ③对数据库对象产生复制支持。
  execute dbms_repcat.generate_replication_support(‘scott','dept',
  ‘tabIe’):
  ④确认复制的组和对象已经加入数据库的数据字典。select gname.master。status from dba_repgroup;select from dba_repobject;
  (7)创建主复制节点。
  ①用repadmin身份登录xm数据库,创建主复制节点。execute dbms_repcat.add_master_database
  (gname=>'sco~_mg',master=>'rjyg.fjysgLcom.cn.,
  use_existing_objects=>true.copy_rows=>false,
  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数据库,运行以下命令:SQL>begin
  dbms_defer_sys.schedule_push
  (destination=>'fjyg.fjysgl.com.cn.,interval=>’sysdate
  +10/1440',next_date=>sysdate);end;/
  SQL>be_qin
  dbms_defer_sys.schedule_purge(next_date=>sysdate.
  interval=>’sysdate+10/1440',delay_seconds=>0.
  rollback_segment=>”):
  end;
  /
  ②用repadmin身份登录巧yg数据库,运行与①相似命令。
  


  通过以上的配置即可实现省局与厦门市处二个数据中心之间的数据同步复制,其他点省局与福州处、省局与泉州处等使用相同的方法进行处理。
  对于省局中心的内外网数据库服务器,因为正常工作时间,内外网均不能停顿,而内外网又不能物理连通,于是设定在每天晚上非工作时间(或其它时段)为维护时段,该时段内外网均停止作业,由系统管理员把与内外网DB相连的所有网线断开,用一根直连网线把两台DB连接,使用相同的方式实现内外网数据的同步。
  
  3结束语
  
  Oracle的高级复制功能为分支机构多、地理范围广的大型企事业单位的分布式数据库系统提供了很好的各中心数据同步的实现方案。而随着网络技术的发展,这种应用也显得越来越重要,变得越来越复杂。为充分利用数据复制来提高数据的可用性和系统的性能,在进行复制之前应作出详细的需求分析才能取得更好的应用效果。
  (注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。)
其他文献
摘要:利用GPRS网络作为无线智能监控的信息传输平台是一种非常有效的方法,其原理简单,安全保密性高,不需要组建专用网络。GPRS网络覆盖面广,可实现全球无缝覆盖,与传统的监控系统相比有着独特的优势。文章给出了基于GPRS网络的机房智能监控系统的硬件结构组成和软件工作流程。整个系统主要由终端采集系统和GPRS模块构成。用于无人监守的通信机房远程监控。  关键词:通信机房智能监控;MC35;GPRS;
期刊
摘要:提升处理器时钟频率和二级缓存的大小是提升CPU效率的方法。文章在对AMD Athlon 64实际测试的基础上,概要地从理论上分别阐述了时钟频率和二级缓存对CPU效率影响的原理,侧重分析了在不同应用环境中二级缓存和时钟频率的大小对CPU效率产生不同影响的原因,并提出了二级缓存对CPU效率影响的最佳容量的概念,可使大家对CPU的效率有一个更清楚的认识。  关键词:时钟频率;二级缓存;CPU效能;
期刊
摘要:在编写Java程序时,数组是常用的一种数据类型,然而在实际使用时有许多不便之处。为此,文章讨论了代替Java传统数组的动态数组的设计及实现过程,并举例说明了动态数组类的使用方法。  关键词:Java;动态数组;类;方法    O引言    熟悉Java编程的人员都知道,在创建Java数组时,必须用表达式指定其大小(如:int a[]=new int[3])或通过初始化(如:int a[]={
期刊
摘要:在ERP采购管理系统中采用DM与DB/DW紧耦合方式设计了一个开放集成的数据挖掘系统DMSPM。使用基于约束的交互式数据挖掘技术,以提高挖掘效率和灵活性;将计算模型和工具分离,形成一个模型求解的工具箱,便于使用和维护;通过人机界面和知识推理接受用户决策需求并输出决策结果,提供良好的交互性,从而形成一个拥有强大决策功能的ERP采购系统。  关键词:数据挖掘;ERP;决策支持;采购管理    O
期刊
摘要:介绍了Java ME的Web服务规范,比较了该规范定义的可选包与kXML和kSOAP之间的不同,指出了JavaME的JAX-RPC与Java SE/EE平台上的JAX-RPC 1.1之间的差异,并给出了这些差异给Java ME程序设计者带来的影响,为开发者提供了一些有价值的参考。  关键词:Java ME;Web服务;JSR 172;JAX-RPC    O引言    在有线网络环境中,We
期刊
摘要:根据Web日志中的浏览时间、服务器发送字节数信息和统计所得的页面浏览频度计算页面兴趣度,并结合模糊理论,生成模糊关联规则,提出了一个预测用户浏览兴趣的方法。实验表明,该方法是可行的并且具有较好的效果。  关键词:Web日志挖掘;模糊集;关联规则;页面兴趣度    0引言    自20世纪90年代互联网开始迅速发展以来,Web已成为人们获取信息的一个重要途径,搜索引擎在人们的日常生活和学习中发
期刊
摘要:利用Authorware外部扩展函数,对Authorware中的菜单进行改进,在Authorware中实现了多级菜单和右键弹出菜单。  关键词:Authorware;外部扩展函数;多级菜单;弹出菜单    0引言    Authorware提供了"Pull-Down Menu”这种交互方式,利用它可以制作出菜单。不过,与常见的多级Windows标准菜单相比,它的菜单大为逊色,而右键弹出菜单就
期刊
摘要:分布式拒绝服务(DDoS)攻击是目前黑客经常采用而难以防范的攻击手段。文章从DDoS的概念、攻击原理、攻击过程、攻击方法四个方面对DDoS加以说明。最后,介绍了一个局域网内的攻击实例。  关键词:DDoS;TCP/IP;TCP连接洪水;TCP SYN洪水;Smurf攻击    0引言    DDoS(分布式拒绝服务),其全称为Distributed Denial ofService,它是一种
期刊
摘要:SIP协议是应用层会话控制协议,具有简单、可扩展和分布式的特点。LDAP目录作为一种非关系型数据库,可以简化查询的步骤,PAM就是在应用程序和下层的认证模块之间加入一个抽象层,使得上层应用和底层认证相互独立。文章提出了通过LDAP目录与PAM结合来实现SIP服务器的认证方案,并利用pam_ldap模块实现了SIP服务器的LDAP认证。  关键词:SIP;PAM;LINUX;LDAP    0
期刊
摘要:介绍了基于Vega平台的虚拟现实系统;GL Studio平台的工作流程;针对GL Studio制作的仪表仿真模型不能在Vega场景中直接应用的问题,分析了Vega和GL Studio的底层软件开发原理;对GL Studio模型向Vega场景移植的几项关键技术进行了研究,解决了坐标系差异、坐标系基本单位转换、模型载入以及场景中的模型操作等问题。  关键词:Vega;GL Studio;视景仿真
期刊