数据库高可用架构 转载

数据库高可用架构对于我们这些应用端开发的人来说是一个比较陌生的领域,是在具体的数据库产品之上搭建的环境,需要像DBA这样对数据库产品有足够的了解才能有所涉及,虽然不能深入其中,但可以通过一些经典的高可用架构学习其中的思想。就我所了解到的有以下几种:

  • MySQL Replication
  • MySQL Cluster
  • Oracle RAC
  • IBM HACMP
  • Oracle ASM

MySQL Replication

MySQL Replication就是通过异步复制多个copy以达到提高可用性的目的,常规的复制架构有以下几种:

  • Master-Slaves
  • Master-Master
  • Master-Master-Salves

1)Master-Slaves

Master-Slaves是最常用的提高可用的方法,特别是在互联网应用中,读远远大于写,因此提高读的可用性是首当其中的,Master-Slaves就是让写的操作集中在一台数据库Master上,然后这个Master会把更新的操作复制到其他数据库Slaves上,读的操作都发生在Slaves上,架构图如下所示:

如上图在SlaveC不可用时,读和写都不会中断,等SlaveC恢复后会自动同步丢失的数据,又能重新投入运转,可维护性非常好。但如果Master有问题就麻烦了,因此它只解决了读的高可用性,但不保证写的高可用性。关于Master-Slaves的实战可参考以前的一篇博文构建高性能web之路------mysql读写分离实战

2)Master-Master

为解决上面谈的写的高可用性,MySQL提供了Master-Master的复制架构,如下所示:

一般说来都向MasterA写,MasterA同步数据到MasterB,当MasterA有问题时,会自动切换到MasterB,等MasterA恢复时,MasterB同步数据到MasterA

3)Master-Master-Salves

Master-Master-Salves是结合上面两种方案,是一种同时提供读和写高可用的复制架构,如下图所示:

MySQL Cluster

MySQL Cluster主要由三个部分组成:

  • SQL服务器节点
  • NDB数据存储节点
  • 监控和管理节点

三个部门的组成结构如下图所示:

这样的分层也是由MySQL本身把SQL处理和存储分开的架构相关系的,关于MySQL的架构可见以前的博文设计与开发应用服务器(一)------常见模式

这样一来MySQL Cluster就可以分别在SQL处理和存储两个层次上做高可用的复制策略。在SQL处理层次上,比较容易做集群,因为这些SQL处理是无状态性的,完全可以通过增加机器的方式增强可用性。在存储层次上,通过对每个节点进行备份的形式增加存储的可用性,这类似与MySQL Replication,结构图如下所示:

Oracle RAC

Oracle RAC和MySQL Cluster有些相似,但主要集中在SQL处理层的高可用性,而在存储上体现不多,结构图如下所示:

它的主要优点就是对应用透明,并且通过Heartbeat检测可用性非常高,主要缺点就是存储是共享的,存储上可扩展能力不足。

IBM HACMP

IBM HACMP与Oracle RAC也是类似,主要用于双机互备,运行流程如下所示:

1)作为双机系统的两台服务器(主机A和B)同时运行在Hacmp环境中;
2)服务器除正常运行自机的应用外,同时又作为对方的备份主机;
3)两台主机系统(A和B)在整个运行过程中,通过 “心跳线”相互监测对方的运行情况(包括系统的软硬件运行、网络通讯和应用运行情况等);
4)一旦发现对方主机的运行不正常(出故障)时,故障机上的应用就会立即停止运行,本机(故障机的备份机)就会立即在自己的机器上启动故障机上的应用,把故障机的应用及其资源(包括用到的IP地址和磁盘空间等)接管过来,使故障机上的应用在本机继续运行;
5)应用和资源的接管过程由Ha软件自动完成,无需人工干预;
6)当两台主机正常工作时,也可以根据需要将其中一台机上的应用人为切换到另一台机(备份机)上运行。
Oracle ASM

Oracle ASM主要提供存储的可扩展性,通过自动化的存储管理加上后端可扩展性的存储阵列达到高可用性,结构图如下所示:

因此,可以尝试把Oracle RAC和ASM组合起来使用,同时提供SQL处理和存储的高可用性,这也是MySQL Cluster想达到的效果

 

转载于:https://www.cnblogs.com/E-star/p/4314648.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决 There are no resources that can be added or removed from the server

网上下载了一个项目,在eclipse中部署时,加载项目到tomcat中项目名称无法显示,报出There are no resources that can be added or removed from the server 这个是因为下载下来的项目没有eclipse的相关配置文件,eclipse不知道这是一个什么项目。 解决方法: 1、进入confi…

推荐几款爬虫软件与无需编程的数据分析工具

爬虫软件: 八爪鱼,火车头,前嗅,熊猫采集器,集搜客等 相对来说八爪鱼配置还是比较简单的,不过免费版的爬起数据来那叫一个慢。。。 不过也可能是我是个急性子。。。1分钟爬10条,很心塞啊。火车头就尴尬,不是高 配版。。基本上啥也干不了,不过好的一点是他们的论坛还是…

登录时本地保存账号密码及关闭ARC的方法

对于登录时保存用户名和密码,苹果官方使用的是KeychainItemWrapper,但使用时有些不便,如在引入KeychainItemWrapper的类中都要关闭arc,不能自定义key,必须使用该类提供的kSecValueData、kSecAttrAccount等。所以推荐使…

收银扫描设备统计

前端时间开发一个会员管理系统,里面涉及一些支付的问题,就查找一些配套的硬件设备。记录点滴成长 2000元的配套设备一般就可以满足系统应用啦。

推断:Facebook的新Java静态分析工具

如何使用Facebook的Infer改善Java开发工作流程? 如果您与技术话题保持紧密联系(如果您正在阅读此博客,我想您应该这样做),那么您可能听说过Facebook 刚刚向公众发布的新工具:推断。 由于它来自Facebook&am…

html 转换xslt,XSLT xsl:template 元素

元素元素用于构建模板。match 属性用于关联 XML 元素和模板。match 属性也可用来为整个文档定义模板。match 属性的值是 XPath 表达式(举例,match"/" 定义整个文档)。好了,让我们看一下上一节中的 XSL 文件的简化版本:xmlns:xsl&qu…

开发一个大数据网站做的铺垫

知名大数据分析网站推荐8个 用到的大数据5个关键技术 人工智能6大关键技术

如何优化Hibernate EllementCollection语句

介绍 Hibernate支持三种数据映射类型 : 基本 (例如String,int), Embeddable和Entity 。 通常,数据库行映射到Entity ,每个数据库列都与一个基本属性关联。 当将多个字段映射组合到一个可重用的组…

使用Eclipse将包含第三方jar库的java工程打包成jar包

1、MANIFEST.MF 在工程下新建一个MANIFEST.MF的文件,项目结构如下。 M.java package cn.hwd.main;import java.io.IOException;import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.s…

史上最牛逼的导航网站(很全很详细)

今天,给大家推荐47个聚合型的导航网站 每一个都收录上百个网站,1个能顶100个,丝毫没有夸张的成分。 (推荐收藏) 设计师导航网站 01 优设导航 https://hao.uisdc.com/ 设计师必备的导航网站,包含设计工具、素材资源、字体设计、配色方案、酷站模板等。 界面清晰无广告…

codeforces 337D Book of Evil(dp)

转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Book of Evil Paladin Manao caught the trail of the ancient Book of Evil in a swampy area. This area contains n settlements numbered from 1 to n. Moving through the swamp is ver…

html 如何去滚动条,css怎么去除滚动条?

css可以通过overflow与scroll属性来实现去除滚动条效果。css设置overflow属性为hidden可以实现去除滚动条或设置scroll属性为no。1、这个可以用CSS实现 你可以用JS操作CSS方法一:设置CSS属性overflow为hidden。<body style"overflow:hidden"&a…

阿里云ECS服务器连接不上3306端口?

连不上3306端口一般有三种情况。 1 .本机上防火墙没有开放3306端口,需要自己配置入站规则,或者关闭本机防火墙。 2 .linux 服务器上的 iptables 防火墙没有开放3306端口, 或者关闭服务器上的防火墙。 打开 /etc/sysconfig/iptables 在 "-A INPUT –m state --sta…

UGUI 锚点

今天我们来学习下UGUI的锚点, 他是做什么的呢? 基本上就是用于界面布局. 1. 1个控件对应1个描点. 2. 描点分成四个小叶片, 每1个叶片 对应 控件四边框的角点 3. 不管屏幕如何放大缩小, 控件四边点与 每一个叶片对应的四边点距离不变.(换句话说,按钮的中心与描点的…

语文课外运用计算机探究,[小学语文]计算机在小学写字教学中的运用之我见

[小学语文]计算机在小学写字教学中的运用之我见随着经济的快速发展,教育也出现了加快发展、加快改革的势态。随着教育技术的不断增加,教学设备得以不断更新,教学手段变得更加现代化。特别是我们火星小学,计算机辅助教学已成为学校…

glassfish_具有GlassFish和一致性的高性能JPA –第1部分

glassfish您以前听说过连贯性吗? 可能是。 它是那些著名的内存网格解决方案之一,这些解决方案承诺了出色的快速数据访问和无限空间用于您经常使用的数据。 其中一些众所周知的竞争对手是Infinispan , Memcached和Terracotta Ehcache 。 它们都…

推荐几个开发高薪技术产品(APP、网站、小程序)的原型设计工具

工欲善其事必先利其器。作为一名产品经理,如何才能快速地设计一款产品?一款优秀的产品原型工具必不可少。如何才能选择一款适合自己的原型工具呢?Benson特意整理了11款产品原型工具以供参考,并学习曲线,性价比&#xf…

APP界面常用的五种颜色搭配

众所周知,每一种颜色带给用户的视觉感受也是不同的。现在人们对手机的依赖程度,就能看到手机中APP的发展前景,那今天就跟大家聊聊如何通过颜色搭配的不同来进行移动端APP界面的布局和排版设计。移动端UI界面中通常是需要选取主色,…

JavaOne 2015 –提交的技巧和建议

大家都知道JavaOne 。 感觉就像一直在那儿。 而且,即使我们跌宕起伏,而地理位置也不是我们想要的那样,旧金山也很昂贵,而且和。 这是有关各种Java的顶级会议。 今年又再次成为程序委员会(“ Java,DevOps和云…

计算机网络课程计划,计算机网络教学计划2017

计算机网络教学计划2017教学计划(课程计划)是课程设置的整体规划,它规定不同课程类型相互结构的方式,也规定了不同课程在管理学习方式的要求及其所占比例。下面是小编整理的计算机网络教学计划范文,希望对你有帮助!计算机网络教学计划(一)一、…