- 浏览: 1504834 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (798)
- struts2 (42)
- servlet (20)
- quartz (4)
- jquery & ajax (24)
- tomcat (5)
- javascript (15)
- struts1 (8)
- 搜索关键字及链接 (3)
- fckeditor (3)
- Apache (5)
- spring (22)
- linux (3)
- 企业应用 (8)
- 综合应用 (13)
- 服务器 (2)
- 数据库 (85)
- 性能调优 (21)
- 网络应用 (15)
- 缓存技术 (8)
- 设计模式 (39)
- 面试题 (7)
- 程序人生&前辈程序员 (29)
- java基础 (59)
- hibernate (75)
- log4j (4)
- http (11)
- 架构设计 (28)
- 网页设计 (12)
- java邮件 (4)
- 相关工具 (11)
- ognl (7)
- 工作笔记 (18)
- 知识面扩展 (12)
- oracle异常 (1)
- 正则表达式 (2)
- java异常 (5)
- 项目实践&管理 (1)
- 专业术语 (11)
- 网站参考 (1)
- 论坛话题 (2)
- web应用 (11)
- cxf&webservice (22)
- freemarker (3)
- 开源项目 (9)
- eos (1)
- ibatis (6)
- 自定义标签 (3)
- jsp (3)
- 内部非公开文档(注意:保存为草稿) (0)
- 国内外知名企业 (2)
- 网店 (3)
- 分页 (1)
- 消费者习惯 (2)
- 每日关注 (1)
- 商业信息 (18)
- 关注商业网站 (1)
- 生活常识 (3)
- 新闻 (2)
- xml&JSON (5)
- solaris (1)
- apache.common (3)
- BLOB/CLOB (1)
- lucene (2)
- JMS (14)
- 社会进程 (8)
- SSH扩展 (2)
- 消费心理 (1)
- 珠三角 (1)
- 设计文档 (1)
- XWork&webwork (1)
- 软件工程 (3)
- 数据库及链接 (1)
- RMI (2)
- 国内外知名企业&人物 (1)
最新评论
-
司c马:
简介易懂、
OutputStream和InputStream的区别 -
在世界的中心呼喚愛:
解决我的问题
Java获取客户端的真实IP地址 -
bo_hai:
都是些基本的概念呀!
SSO -
tian_4238:
哥们,你也是搞水利这块的吧。
巧用SQLQuery中的addScalar -
loveEVERYday:
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
本文将结合一个实际案例,讲解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系统中的增量复制技术,定时或手动进行主数据库与从数据库的数据更新。从数据库复制到主数据库的是全部数据,只要从数据库中的数据有变化,就会反映到主数据库中;主数据库复制到从数据库的是与本市相关的业务数据。省局内网与外网数据中心、省局与省厅之间数据交换同样采用可更新快照要制实现。
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数据库,运行与①相似命令。
通过以上的配置即可实现省局与厦门市处二个数据中心之间的数据同步复制,其他点省局与福州处、省局与泉州处等使用相同的方法进行处理。
对于省局中心的内外网数据库服务器,因为正常工作时间,内外网均不能停顿,而内外网又不能物理连通,于是设定在每天晚上非工作时间(或其它时段)为维护时段,该时段内外网均停止作业,由系统管理员把与内外网DB相连的所有网线断开,用一根直连网线把两台DB连接,使用相同的方式实现内外网数据的同步。
3 结束语
Oracle的高级复制功能为分支机构多、地理范围广的大型企事业单位的分布式数据库系统提供了很好的各中心数据同步的实现方案。而随着网络技术的发展,这种应用也显得越来越重要,变得越来越复杂。为充分利用数据复制来提高数据的可用性和系统的性能,在进行复制之前应作出详细的需求分析才能取得更好的应用效果。
视频:http://www.56.com/u75/v_NTA0NDIzNjg.html
发表评论
-
SQL查询顺序处理
2011-09-15 11:29 1637select的解析执行顺序1. from语句 2. where ... -
概念模型、逻辑模型、物理模型区别
2011-09-08 10:48 1244http://wenku.baidu.com/view/9a6 ... -
规范化-数据库设计原则
2011-09-07 10:41 1460简介: 关系数据库设计的核心问题是关系模型的设计。本文将结合具 ... -
数据库设计准则(第一、第二、第三范式说明)
2011-09-07 10:17 1286I、关系数据库设计范式 ... -
oracle日志文件及归档日志模式
2011-09-01 10:18 1764oracle数据库中分为联机日志文件和归档日志文件两种日志文件 ... -
Oracle重做日志管理
2011-09-01 09:50 1440Oracle重做日志操作是为了记录数据的改变,提供数据库 ... -
oracle数据同步
2011-08-28 14:34 1001首先创建一个 dblink(dat ... -
Oracle 流复制(Stream Replication)
2011-07-20 10:37 5632Stream 是Oracle 的消息队列( ... -
表分区
2011-06-30 09:21 1681分区表: 当表中的数据量不断增大,查询数据的速度就会变慢,应用 ... -
数据库大型应用解决方案总结(1)
2011-06-22 18:01 1397随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设 ... -
oracle_SQL中ROWID与ROWNUM的使用
2011-06-16 10:51 1430对于 Oracle 的 rownum 问题,很多资料都说不支持 ... -
oracle函数手册
2011-06-08 09:22 1191SQL中的单记录函数1.ASCII ... -
oracle基础文档
2011-06-03 09:10 1246oracle基础文档 -
ORACLE 找回误删的数据库
2011-06-02 14:14 1376同事找回时操作的数据库为oracle 10g , 之前删除方式 ... -
为什么Oracle有时会用索引来查找数据?--强制Oracle使用最优的“执行计划”
2011-06-01 09:04 1746[摘要] 在你运用SQL语言,向数据库发布一条查询语句时,O ... -
sql编程规范与性能
2011-05-31 08:40 1282sql编程规范与性能 -
Nested Loops Join(嵌套连接)
2011-04-13 16:21 11590说明:最近找到了一个 ... -
如何看Oracle执行计划
2011-01-14 15:43 2189oracle执行计划解释 ... -
oracle中分析sql语句执行计划的方法
2011-01-14 15:36 2233如何生成explain plan? 解答:运行utl ... -
oracle sql 语句(二)
2010-12-10 09:17 145027建立序列:(注意,这里并没有出现说是哪个表里面的序列 ...
相关推荐
Oracle复制技术在分布式信息系统中的同步应用.pdf
这种需求推动了数据复制技术在Oracle分布式系统中的应用和发展。 Oracle分布式系统数据复制技术的主要优势在于数据的本地化访问、网络负荷的减少、数据访问速度的提升以及数据一致性的保障。具体操作上,数据复制...
特别是Oracle高级复制技术,它为分布式数据库系统在广域网(WAN)环境下的应用提供了有力的技术支持。 一、数据一致性的保障 在分布式数据库系统中,数据一致性是核心问题。Oracle高级复制技术采用手动复制和自动...
Oracle高级复制技术是Oracle数据库系统中一种强大的工具,尤其在分布式数据库系统中,它能够有效地管理和同步分布在不同地点的数据。这项技术使得在广域网(WAN)环境下实现分布式信息管理成为可能,同时解决了实时...
### 三、Oracle高级复制技术原理与应用场景 #### 1. 高级复制原理 当在源数据库上发生数据修改(DML)操作时,Oracle高级复制技术通过内部触发器捕获这些变化,并将操作封装成远程过程调用(RPC)的形式。这些RPC通过...
总的来说,Oracle9i的分布式数据库系统复制机制是实现高效、可靠的分布式数据库环境的关键技术,它通过多种复制模式和一致性保证策略,为企业级应用提供了强有力的数据管理支持。随着技术的发展,数据复制技术也在...
《ORACLE分布式数据库及应用》一书主要涵盖了Oracle数据库在分布式环境中的应用和技术。Oracle数据库是全球广泛使用的关系型数据库管理系统之一,尤其在大型企业级应用中占据主导地位。其分布式数据库特性允许数据...
在单机上模拟Oracle分布式数据库数据复制,我们主要利用Oracle的逻辑复制技术,如Materialized Views(物化视图)和Database Link(数据库链接)。物化视图可以定期或实时地从源表获取数据,并在目标数据库中创建一...
Oracle作为全球领先的数据库管理系统之一,其提供的数据复制技术(Oracle Replication)是实现分布式环境中数据同步与共享的关键技术之一。本文将详细介绍Oracle数据复制技术的基本概念、应用场景、实现机制以及配置...
【Oracle数据库在分布式系统中的应用】 Oracle数据库被广泛应用于分布式系统中,因为它具有强大的网络分布式数据库能力,可以在多个物理上分离的服务器上实现数据共享,同时保持逻辑上的统一。这种特性使得不同地理...
总结起来,Oracle 分区技术通过将大表物理上分割为小的分区,提高了查询效率,增强了系统维护性和可用性,而复制技术则保证了分布式环境下的数据同步,两者结合在分布式网通销售系统中发挥了关键作用,提升了系统的...
在具体方案中,作者描述了数据库复制技术的实现过程,强调了复制技术在分布式系统中保证数据安全、实现数据一致性和平衡数据库负载的能力。 4. 关键技术术语解释 - 分布式系统(Distributed Systems):一组通过...
Oracle数据库间的同步复制技术是一种确保数据在多个数据库之间保持一致性的解决方案。这一技术在分布式环境、高可用性架构以及灾难恢复场景中具有重要的应用。它允许数据在主数据库发生更改时,实时或近实时地复制到...
Oracle数据复制技术是Oracle数据库系统中的一种功能,用于在分布式数据库环境中实现数据的同步和共享。这种技术允许数据在不同的数据库节点之间进行实时或近实时的复制,以支持跨地理位置的数据访问、提高应用程序...
Oracle数据库同步技术是确保数据在多个数据库之间保持一致的重要手段,尤其在分布式系统或灾难恢复策略中发挥着关键作用。Oracle提供了多种内置的数据同步解决方案,包括DataGuard、Streams、Advanced Replication...
分布式环境的数据复制和同步,而且Streams 能在异构环境下实施。在设计高用 可方案时,往往需要考虑充分利用现有的设备资源。若使用的设备存在异构的情 况(例如采用不同操作系统),Streams 是一种较理想的解决方案
Oracle复制技术在地震前兆元数据交换中的应用主要涉及到Oracle数据库的高级特性,特别是快照复制技术。在地震预测和监测领域,及时、准确的数据交换至关重要。本文详细介绍了如何利用Oracle快照复制来管理和交换地震...
Oracle高级复制功能是一种强大的技术,它允许在一个分布式系统中,跨多个数据库保持数据的一致性和同步。这种技术在现代企业环境中至关重要,因为它满足了不同地理位置的用户对数据访问的需求,同时保证了数据的安全...