本文主要介绍mysql的高可用性方案(mysql数据库高可用性架构),下面一起看看mysql的高可用性方案(mysql数据库高可用性架构)相关资讯。
高可用性架构基本上是互联网服务的一个标准,它要求应用服务和数据库服务的高可用性。虽然互联网服务是一天24小时可用的,但或多或少还是有一些服务是不可用的。例如,当网页可以 打不开,百度可以 找不到也没有微博和。一般来说,高可用性措施在一年内可以服务的程度不能作为参考时间。它必须实现三个9的可用性,并且一年内只需要八小时的服务。但如果要做到五个9的可用性,只需要五分钟,一年内服务就会中断。所以虽然每个公司都说他们的服务是7 * 24,但实际上可以做到5,9甚至更少。国内互联网巨头bat(百度、阿里巴巴、腾讯)都有因故障停机的问题。对于一个系统来说,可能会有很多模块,比如前端应用、缓存、数据库、搜索、消息队列等等。为了保证整个系统的高可用性,每个模块都需要高可用性。对于数据库服务来说,高可用性可以更复杂,可以用于用户服务,不仅仅是访问,还要保证正确性。因此,在讨论数据库的高可用性解决方案时,还要考虑程序的数据一致性。主要讨论了mysql数据库的高可用性方案,并介绍了各种方案的特点和优缺点。这篇文章是各种计划的总结。希望能给大家一些建议,和大家一起探讨。1。基于共享存储方案的san方案:san(存储区域网),简单来说就是可以实现网络中不同服务器之间的数据共享,共享存储可以与数据库服务器和存储解耦。共享存储时,服务器可以挂载文件系统并正常运行。如果服务器挂起,备用服务器可以挂载相同的文件系统,执行所需的恢复操作,然后启动mysql:优点:1。可以避免由存储之外的组件导致的数据丢失。2。简单的部署、简单的交换逻辑和透明的应用。3.确保主要数据的强一致性。局限性或缺点:1。共享存储是一个单点。如果共享存储被挂起,数据将会丢失。2。价格比价格贵。2。基于磁盘的复制方案drbd方案:drbd(distributed replication block device)是一种磁盘复制技术,可以达到类似san.dbrd的效果,是一种在linux内核模块中实现的块级同步复制技术。它将主服务器的每个块复制到另一个服务器上块设备通过网卡并记录在主设备提交块. drbd类似st .,也有热备用机。当它开始提供服务时,它将为故障机使用相同的数据,但drbd的数据是复制的,不能共享。drbd的架构图如下:优点uff1a 1。切换到应用程序透明2。担保人要求数据具有很强的一致性。局限性或缺点:1。影响写入性能,因为每次写入磁盘时,基本上都需要与网络服务器同步。2。通常,两个节点被配置为同步,这导致可扩展性差。3.图书馆可以 不提供阅读服务,浪费资源。3.基于主从复制(单点写入)方案,依靠底层共享存储的磁盘复制技术,解决了mysql服务器单点和磁盘的单点问题。在实际生产环境中,高可用性很大程度上取决于mysql本身的复制,这使得一个或多个热备份复制主机和exchange服务无法控制热备份。下面的程序是基于主从复制方案,功能越来越强大,由简单到复杂,实现难度由易到难。可以根据实际情况选择合适的方案。3.1简单/心跳。程序介绍:简单就是ha软件。它的功能是检测服务器(web服务器、db服务器等)的状态。).检测原理是模拟网络请求检测,包括http _ get | ssl _ get | tcp _ check | smtp _ check | misc _ check等等。db服务器,主要是ip和端口(tcp_check),但这可能还不够(比如数据库服务器是只读的),所以simple还支持一个简单的验证服务器,带有自定义脚本。通过倾听来监控现状。如果服务器出现故障,故障服务器将从系统中删除。简单高可用架构,如下图所示,简单软件分别安装在主服务器和从服务器上,配置相同的vip。vip层屏蔽的ip,应用服务器获得数据库访问服务的vip。当主人失败时,简单的感知会增强奴隶 的主人,并继续为应用层提供透明性。优势uff1a 1。安装简单,当2。主站故障,从站快速切换提供服务和透明应用。局限性或缺点:1。主ip需要在同一个网段。2。为了提供弱检测机制,需要定制脚本来确定主机是否可以提供服务,比如更新心跳表。3.不能保证数据的一致性。最初的mysql是异步复制的。如果主服务器发生故障,从服务器数据可能不是最新的,从而导致数据丢失。所以在切换时,一定要考虑依赖延迟因子,确定切换策略。对于强一致性的要求,可以采用半同步和半同步来减少数据丢失。4.keepalived软件本身可以 我不能保证。3.2.mha项目简介:mha (master high availability)是日本一位mysql daniel用perl编写的mysql数据库故障转移方案,保证了数据库的高可用性,存储的二进制日志从背面的主服务器上下来。mha可以最大限度地减少数据丢失。mha分为两部分:mha管理器(管理节点)和mha节点(数据节点)。mha可以独立服务器部署在不同的机器上来管理多个主从集群。mha节点运行在每台mysql服务器上。它的主要功能是切换二进制日志,以确保切换是可能的。mha管理器定期检查集群中主节点的数量。当主设备出现故障时,它可以自动从最新的数据升级到新的主设备,然后所有其他从设备指向新的主设备。故障转移方法对应用程序是完全透明的。mha的结构如下:mha故障转移过程:发现主设备异常,做出一系列判断,最终确定主设备下来;检查配置信息并列出当前体系结构中节点的状态。c .处理失败的主人,vip漂移,或者关闭基于脚本的mysqld服务定义。d、从所有比对网站中,选择离该点最近的从站,然后与主站进行比对,获取binlog差异,并复制到管理节点;e .选择候选节点的新拥有者和新拥有者,将新拥有者与网站进行比较,获得转发差异。f、管理节点将二进制日志差异复制给新的所有者,新所有者的二进制日志差异的应用与relaylog不同,最终获取轨迹信息并接受写请求(read_only = 0)。g .其他奴隶对比网站上的新奴隶,得到relaylog的差异,复制到对应的奴隶;h .管理节点复制binlog中各从机的差异,比较exec_master_log_pos和read_master_log_pos,得到不同的日志;每个从设备将拥有所有不同的日志,然后重置从设备并重定向新的所有者;j .新的所有者重置从设备并清除从设备信息。优势uff1a 1。开源代码方便了两种业务场景的开发。2.在故障转移的情况下,它可以修复多个从设备之间的差异日志,并最终保持所有从设备的数据一致。然后选择一个充当新的主,指向另一个从。3.您可以灵活选择vip方案或全局目录数据库方案(将主ip映射更改为交换机)。缺点:1。不能保证强一致性,因为从故障主机保存二进制日志并不总是可行的,例如坏的主磁盘或失败的ssh验证。2。支持一主多从体系结构要求副本群集必须至少有三台数据库服务器,一台主服务器和两台从服务器,一台作为主服务器,一台作为备用主服务器,另一台作为从库。3.在使用全局目录数据库时,我们需要在切换程序时应用感知变化,因此它对应用程序是不透明的,所以我们需要保持切换对应用程序透明,并且仍然依赖于vip。4。不适合大规模集群部署,配置比较复杂。5.mha管理节点本身不保证。3.3的高可用性。基于zookeeper程序介绍:从前面的讨论来看,我们可以看到,无论是简单方案还是mha方案,都可以解决ha软件的高可用性问题,因为这本身就是一个点。那么如果ha也引入了多副本,那么,就带来了新的问题,如何保证2个顶级ha软件之间的同步。如何保证不同时有多个ha交换操作,这两个问题本质上是分布式系统的一致性问题。所以分布式一致性协议类似于paxos raft推出的ha软件,保证了ha软件的可用性,zookeeper是典型的发布/订阅模式的分布式数据管理和协调框架。方便构建的核心功能是拥有丰富数据节点类型的管理员使用事件通知机制与观察者进行交叉,这涉及到一系列分布式应用,如数据发布/订阅、负载均衡和分布式协调/通知等。集群管理、主控选举、分布式锁和分布式队列等。管理员是一个大话题,你可以从抛媚眼中获得更多的信息,而我 我在这里讨论如何解决ha饲养员的可用性问题。结构图如下:图中每个mysql节点都部署了ha客户端,用于实时报告本地节点的心跳状态。以城市动物园为例,主库崩溃,通过修改基于zookeeper节点(以下简称zk)的信息来通知ha。高可用性节点注册zk监控事件。当节点发生变化时,会自动感受ha,ha节点可以部署一个或多个,主容灾. ha节点通过zookeeper服务实现数据一致性。通过分布式锁,多个ha节点无法保证同时切换到主从节点,ha本身是无状态的,所有mysql节点的状态信息都存储在zookeeper服务器中。在转换过程中,ha会检查mysql节点和交换机。发布后让管理员看到交接过程:a.ha客户端检测到主人的异常,做出一系列判断,最终确定主人;b. that客户端删除zk主节点信息;由于拦截机制,ha会注意到一个节点被删除;d.ha重新检查mysql节点,比如建立连接,更新心跳表等。当e .确认异常时,开关发出。让 让我们看看这个架构能否保证ha本身的高可用性。(1)。如果ha客户端本身挂起,mysql节点正常吗?客户管理mysql节点无法与管理员保持心跳。zk服务将删除该节点,ha将意识到这一变化,并准备尝试切换。在切换之前,它将被重新检查。mysql节点正常时,不会切换。(the.mysql节点和administrator s网?因为高可用性客户端和节点在同一个主机中,所以高可用性客户端无法报告zk ;又是心跳。zk会删除相应的mysql节点信息,ha会审核。,还是不合格,开关。(3)哈挂了,表现如何?因为ha是无状态的,有多个副本,所以ha被挂起,不会影响整个系统。优势uff1a 1。保证了整个系统的高可用性。2的强一致性。主从依赖于mysql本身,比如半同步,或者周边工具的补充策略,类似于mha。第三,扩展性很强,可以管理大规模集群。缺点:1。zk介绍说,整个系统变得复杂了。4。第三部分讨论基于集群(多点写入)的方案基本上是目前市场的主流,由单点组成。虽然我们可以使用中间件来分段(切片),但我们仍然只允许一个节点写入相同的数据。从这个角度来看,上述方案是伪分布式的。下面两种方案是真正分布式的,可以写在多个节点的同一个数据上。理论上,这类似于oracle rac、emc 的greenplum分布式数据库和mysql。主要有两种解决方案:基于galera的medicine和ndb集群,mysql集群基于很多有限的ndb存储引擎,medicine基于innodb引擎,但有其局限性,但由于应用广泛,有一定的参考价值。据我所知,公司在生产环境中使用pxc方案。pxc结构图(percona xtradb集群)如下:优点uff1a 1。准同步复制超过2。节点可以同时读写,可以实现写扩展,比切片方案更进一步。三。自动节点管理4。数据是严格一致的。5。服务非常到位缺点:1。支持innodb引擎2。所有表都有主键。3.因为写入与其他节点同步,所以存在写入扩展问题。4。非常依赖网络的稳定性,不适合远程同步。5。准确地说,中间件的高可用性与否是特别相关的,因为切换是在数据库级别进行的,但中间层的引入使应用程序更加透明。之前介绍的中间件,所有的方案基本都是依赖vip漂移机制或者不依赖vip,无法保证应用的透明性。透明和高可用性应用程序可以同时加入中间件层。此外,中间层也可以很容易地划分和扩展。代理的解决方案有很多,比如mysql代理和mysql的fabric,阿里巴巴coba和分时数据传输线等等。我们以fabric为例,框架的内容是:连接应用程序所需的fabric,然后节点通过xml-rpc协议连接到fabric。结构节点依靠备份存储(备份存储)来存储整个高可用性群集的元数据信息。连接器读取备份存储信息,然后将元数据缓存到缓存中。这种方法的优点是减少了相互连接的次数。管理节点交互的成本。每个ha组都有一个主节点和多个辅助节点(从节点)。当主节点出现异常时,将从辅助节点中选择最合适的节点升级到新的主节点,其余节点将被重定向到新节点。这些都是自动操作,不懂业务。ha切换后,需要通知连接器的元数据信息。优势uff1a 1。切换到应用程序透明2。扩展性,易于切片和扩展3。它可以部署到整个机房缺点:1。是一个比较新的组件,实际应用场景不多。2。在没有解决强一致性问题的情况下,强一致性依赖于mysql本身(半同步)以及回滚和补充机制。综上,介绍了几种典型的高可用架构mysql,包括共享存储方案、磁盘复制方案和主从复制方案。对于主从复制方案,这很简单,mha和城市动物园介绍了一下。每一个方案,总是可用的,具有很强的数据一致性,并切换到解释应用程序的透明性。个人认为,基于mysql的复制方案是主流且成熟的。中间件和管理员的引入可以使系统可用性更高,支持更大的规模,但也对研发、运维提出了更高的要求。所以选择方案的选择是基于业务场景和运维规模。
了解更多mysql的高可用性方案(mysql数据库高可用性架构)相关内容请关注本站点。
笔记本电脑怎么用麦(台式电脑怎么装麦)
0x0000000c2蓝屏代码是什么意思(0xc00000c2蓝屏代码)
运维工程师培训,新能源充电桩运维工程师培训3个月学费多少钱
荣耀畅玩4pro(华为荣耀畅玩4)
windows10安装宝塔(windows怎么装宝塔)
mysql的高可用方案(mysql数据库高可用架构)
苹果m2芯片百度百科(iphone m2芯片)
win10如何开启和关闭测试模式(win10如何开启和关闭测试模式选项)
鲍鱼的家常做法
bitlocker解锁后无法读取文件(bitlocker无法继续解密)
笔记本m2接口怎么安装方法,m2接口的固态怎么装
手机淘宝开店怎么开店(手机淘宝开店怎么开的怎么注册)
nokia638怎么设置铃声
4s怎么用搜狗输入法,苹果4S下载了输入法可是用不了谁能告诉我怎么设置
高通 专利(高通的专利费还收多少年)
旧版赛尔号(赛尔号经典版手游下载)
两千一下的笔记本电脑
怎么恢复已经删除的照片,vivo怎么恢复已经删除的照片
白天支出(白天消费)
如何制作装机u盘,这样制作装机u盘