- 浏览: 1470143 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (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 1582select的解析执行顺序1. from语句 2. where ... -
概念模型、逻辑模型、物理模型区别
2011-09-08 10:48 1184http://wenku.baidu.com/view/9a6 ... -
规范化-数据库设计原则
2011-09-07 10:41 1403简介: 关系数据库设计的核心问题是关系模型的设计。本文将结合具 ... -
数据库设计准则(第一、第二、第三范式说明)
2011-09-07 10:17 1242I、关系数据库设计范式 ... -
oracle日志文件及归档日志模式
2011-09-01 10:18 1719oracle数据库中分为联机日志文件和归档日志文件两种日志文件 ... -
Oracle重做日志管理
2011-09-01 09:50 1392Oracle重做日志操作是为了记录数据的改变,提供数据库 ... -
oracle数据同步
2011-08-28 14:34 949首先创建一个 dblink(dat ... -
Oracle 流复制(Stream Replication)
2011-07-20 10:37 5572Stream 是Oracle 的消息队列( ... -
表分区
2011-06-30 09:21 1639分区表: 当表中的数据量不断增大,查询数据的速度就会变慢,应用 ... -
数据库大型应用解决方案总结(1)
2011-06-22 18:01 1357随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设 ... -
oracle_SQL中ROWID与ROWNUM的使用
2011-06-16 10:51 1381对于 Oracle 的 rownum 问题,很多资料都说不支持 ... -
oracle函数手册
2011-06-08 09:22 1148SQL中的单记录函数1.ASCII ... -
oracle基础文档
2011-06-03 09:10 1202oracle基础文档 -
ORACLE 找回误删的数据库
2011-06-02 14:14 1333同事找回时操作的数据库为oracle 10g , 之前删除方式 ... -
为什么Oracle有时会用索引来查找数据?--强制Oracle使用最优的“执行计划”
2011-06-01 09:04 1703[摘要] 在你运用SQL语言,向数据库发布一条查询语句时,O ... -
sql编程规范与性能
2011-05-31 08:40 1239sql编程规范与性能 -
Nested Loops Join(嵌套连接)
2011-04-13 16:21 11480说明:最近找到了一个 ... -
如何看Oracle执行计划
2011-01-14 15:43 2148oracle执行计划解释 ... -
oracle中分析sql语句执行计划的方法
2011-01-14 15:36 2178如何生成explain plan? 解答:运行utl ... -
oracle sql 语句(二)
2010-12-10 09:17 140127建立序列:(注意,这里并没有出现说是哪个表里面的序列 ...
相关推荐
Oracle复制技术在分布式信息系统中的同步应用.pdf
数据复制通过在多个站点上建立备份,能够提高数据的安全性,同时也提高了数据的可用性,这是因为如果一个站点出现了问题,用户可以选择其他站点继续进行操作,应用系统还可继续运行,从而数据复制提供了容错保护机制...
数据复制技术可以通过将这些共享数据复制到位于不同地点的多个数据库中,从而实现数据的本地访问,减少了网络负荷,并提高了数据访问的性能,而且通过对数据库中的数据定期同步(通常是每天晚上),从而确保了所有的...
分布式环境的数据复制和同步,而且Streams 能在异构环境下实施。在设计高用 可方案时,往往需要考虑充分利用现有的设备资源。若使用的设备存在异构的情 况(例如采用不同操作系统),Streams 是一种较理想的解决方案
程序复制使用程序代码来捕获和传播已提交的事务,而不是数据变化本身。例如,将采 购订单上运输费用的变更作为一个事务表示出来可能比将...复制包括使一个分布式系统中跨多个数据库的一些或所有应用程序数据保持同步。
Oracle GoldenGate在应急系统,在线报表,实时数据仓库供应,交易跟踪,数据同步,集中/分布式,灾难恢复,数据库升级和迁移中已经得到了应用。 关键词: Oracle GoldenGate, 数据同步, 数据集成
5、一些商品化的数据库系统产品,如Oracle,Ingres,Sybase,Informix,IBM DB2等 6、关系技术是分布式技术的一个先决条件。 7、分布式数据库系统是物理上分散而逻辑上集中的数据库系统。分布式数据库系统使用 ...
§9.9.1 分布式系统 110 §9.9.2 多层系统 110 §9.9.3 Oracle并行服务器 110 §9.10 Oracle数据库增长的规划 111 §9.10.1 不同增长表的配置 111 §9.10.2 对增长表进行规划和分析 112 第10章 数据库结构设计要点 ...
这种技术可以将整个数据库、数据库中的对象复制到另一数据库中,通过使用Stream的技术,对归档日志的挖掘,可以在对主系统没有任何压力的情况下,实现对数据库对象级甚至整个数据库的同步。 Oracle 的Streams提供...
1.分布式应用框架。 2.支持主流的操作系统:WINDOWS、AIX、LINUX、SOLARIS。 3.系统函数适配:进程和线程、通信、同步机制、定时器、消息队列。 4.远程日志跟踪、调试。 5.动态可配置. 6.多机容错、分布式...
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。 拉里•埃里森 就业前景 从就业与择业的...
应用技术 计算机基础知识 cpu mem disk net 线程,进程 第三方库 poi Jsoup zxing Gson 数据结构 树 栈 链表 队列 图 操作系统 linux 代码控制 自动化代码检查 sonar 代码规范 阿里巴巴...
多源复制,以便更好的支持CDN等分布式应用。 GIS空间函数,以便更好的支持地理信息系统。 半同步复制的性能和稳定性改进。 性能优化和稳定性改进等。 支持更多的SSL/TLS协议。使用SSL加密MySQL的连接,可以大大提高...
DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。 DB2(3张) 除了它可以提供主流的OS/390和VM操作系统,以及中等规模的AS/400系统...
EntityBean被用来代表应用系统中用到的数据。 对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。 对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的...
本书集实用性、思想性、趣味性于一体,内容共分为技术基础总结、系统架构设计思想及项目实战解析三部分,随书所附光盘收录大量实例代码及独家披露的商业系统,供读者参考学习。 本书适合于.NET初、中级开发人员参考...
本书集实用性、思想性、趣味性于一体,内容共分为技术基础总结、系统架构设计思想及项目实战解析三部分,随书所附光盘收录大量实例代码及独家披露的商业系统,供读者参考学习。 本书适合于.NET初、中级开发人员参考...
EntityBean被用来代表应用系统中用到的数据。 对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。 对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体...
应用系统的多语言支持 (二) 自动返回上次请求页面(小技巧) ASP.NET 2.0 控件 ASP.NET 2.0 验证控件新的功能 DataGridView中如何在textbox列中限制输入。 ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu ...