数据库读写分离方案及对比
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库读写分离方案及对比版本日期修改历史作者
目录
1概述 (3)
2背景 (3)
3数据库读写分离方案 (3)
3.1Oracle数据库几种常用的复制技术及特点 (3)
3.2异构数据库(Oracle+Mysql)+ GoldenGate (3)
3.2.1方案描述 (3)
3.2.2实现原理 (4)
3.3异构数据库(Oracle+Mysql)+ 其他复制技术 (6)
3.4同构数据库(Oracle)+ GoldenGate (6)
3.4.1方案描述 (6)
3.4.2实现原理 (7)
3.5同构数据库(Oracle)+ DataGuard (7)
3.6同构数据库(SqlServer2008 企业版) (7)
3.6.1实现原理 (8)
3.7同构数据库(Mysql5社区版) (8)
4方案对比 (9)
1概述
本文主要是描述SVC(统一客户视图)项目的数据库读写分离的几种解决方案及优缺点对比。2背景
为了能进一步提升SVC业务系统的服务质量水平、运行效率、系统健壮性稳定性及运行安全,信息中心提出了对SVC的架构进行调整升级,以满足目前及未来的建设需求。
为了缓解大并发的情况下对数据库造成的压力,方案中引入了缓存及数据库的读写分离的技术解决问题。这里针对数据库的读写分离方案有几种实现方式,这里主要是描述这几种方案,以及这几种方案的对比,最后根据具体的情况选择最适合的方案。
由于是比较重要的业务系统,数据量及访问量都比较大,数据的存储主要考虑Oracle、DB2、SQLServer等知名商业数据库厂商。考虑到实现的技术复杂度及运维难度这里主要推荐Oracle作为存储数据库。
3数据库读写分离方案
这里初步提议的数据库有两种,Oracle 11g与Mysql 5。
3.1O racle数据库几种常用的复制技术及特点
3.2异构数据库(Oracle+Mysql)+ GoldenGate
3.2.1方案描述
该方案使用的是异构数据库,其中主数据为Oracle双机热备,从数据库使用的是多台Mysql。主数据库可进行读写操作,主要是进行写操作,从数据库只能读操作。下面是该方案的逻辑架构图:
3.2.1.1主从数据库的高可用
为了避免单点问题,主从数据需要考虑高可用性,其中主数据库可以做双机热备,推荐使用RAC的方式。
对于从数据库的高可用性,有几种方法:
1、对每一个从数据库都作一个备份,当其中一个数据库宕机的时候,可以切换到另一个
备份的数据上,或者双机热备,目前这个技术上Mysql5已经支持。
2、从数据库可以互为备份,即一个数据库上存放两个或多个数据库的数据。当一台数据
库宕机后其他的数据库仍可以正常提供服务。
3、考虑当从数据库宕机的时候把链接切换到主数据库上,这种方案在技术上实现比较困
难,代价大,主要是受异构数据库因素影响,不同类型的数据库的SQL语句不能交叉
执行,另外受到项目使用到的技术(Hibernate)制约,不支持异构数据库的切换。这
方法基本是不可行的。
3.2.2实现原理
Golden Gate支持的数据库及运行环境:
数据库操作系统
抽取:
▪Oracle
▪DB2 OS/390
▪DB2 UDB
▪Microsoft SQL Server
▪Sybase
▪Enscribe
▪SQL/MP
▪SQL/MX
▪Teradata
投递:
▪All listed above
▪MySQL, Ingres
▪and any ODBC compatible databases
Windows 2000, 2003, XP
Linux
Sun Solaris
HP-UX
IBM AIX
HP NonStop
TRU64
IBM z/OS, LUW Golden Gate工作原理:
Golden Gate的工作模式:
3.3异构数据库(Oracle+Mysql)+ 其他复制技术
其他复制技术暂时不支持异构数据库的复制,对于异构的数据库的复制技术选择性很小。3.4同构数据库(Oracle)+ GoldenGate
3.4.1方案描述
该方案使用的是同构数据库,其中主数据为Oracle双机热备,从数据库使用的是多台Oracle。主数据库可进行读写操作,主要是进行写操作,从数据库只能读操作。下面是该方案的逻辑架构图:
3.4.1.1主从数据库的高可用
为了避免单点问题,主从数据需要考虑高可用性,其中主数据库可以做双机热备,推荐使用RAC的方式。
对于从数据库的高可用性,有几种方法:
1、对每一个从数据库都作一个备份,当其中一个数据库宕机的时候,可以切换到另一个备份
的数据上,或者双机热备,目前这个技术上可以做到动态数据源切换。
2、从数据库可以互为备份,即一个数据库上存放两个或多个数据库的数据。当一台数据库宕
机后其他的数据库仍可以正常提供服务。
3、当从数据库宕机的时候把数据源链接切换到主数据库上,这种方案在技术上实现是可行的。
也可以减少从数据库的数量,减少运维的难度及减少故障率。
4、使用共享存储方式,多个从数据库可以共享同一份数据文件,可以大大减少Golden Gate
的复制数据,减少延迟。
3.4.2实现原理
Golden Gate的实现与上面的实现原理相同,可参见3.2.2概述实现原理。
3.5同构数据库(Oracle)+ DataGuard
这个方案与方案3.4同构数据库(Oracle)+ GoldenGate类似,实现的方式也类似,他们的之间的区别主要是在GoldenGate与DataGuard工作方式。
3.6同构数据库(SqlServer2008 企业版)
该方案采用SqlServer2008企业版,使用SqlServer 2008的AlwaysOn技术实现读写分离。下面是该方案的逻辑架构图: