当前位置: 首页 > 科技观察

Linux运维:高可用MySQL解决方案概述

时间:2023-03-14 00:14:52 科技观察

数据库作为最基础的数据存储服务之一,在存储系统中扮演着非常重要的角色,要求它具备高可用无可厚非。有很多解决方案可以实现不同的SLA(服务水平协议),可以保证数据库服务器的服务在硬件或软件出现故障时继续可用。高可用需要解决的问题主要有两个,一个是如何实现数据共享或者数据同步,另一个是如何处理failover。数据共享的一般解决方案是通过SAN(存储区域网络)实现,数据同步可以通过rsync软件或者DRBD技术实现。故障转移是指当一台服务器宕机或出现错误时,能够自动切换到另一台备用服务器上,而不影响服务器上业务系统的运行。本文介绍目前成熟的MySQL高可用方案。1、主从复制方案这是MySQL自己提供的高可用方案。数据同步方式采用MySQL复制技术。MySQL复制技术是一个日志复制过程。在复制过程中,一台服务器作为主服务器,一台或多台其他服务器作为从服务器。简单的说就是从服务器拉取二进制日志文件到主服务器,然后将日志文件解析成相应的SQL,在从服务器上重新执行主服务器的操作,通过这种方式来保证数据的一致性。MySQL复制技术只提供日志的同步执行功能,而从服务器只能提供读操作,当主服务器出现故障时,必须手动处理故障转移。通常的方法是将一个从服务器更改为主服务器。该方案在一定程度上实现了MySQL的高可用,可以达到90.000%的SLA。为了达到更高的可用性,在实际应用环境中,一般采用MySQL复制技术配合高可用集群软件实现自动故障转移,可以达到95.000%的SLA。2.MMM高可用性解决方案MMM(Master-MasterReplicationManagerforMySQL)MySQL主-主复制管理器提供了一个可扩展的脚本套件,用于监视、故障转移和管理MySQL主-主复制配置。MMM高可用方案中,典型的应用是双主多从架构。通过MySQL复制技术,两台服务器可以互为主从,任何时候只能有一个节点写入,避免了多点写入数据。冲突。同时,当可写主节点发生故障时,MMM套件可以立即对其进行监控,然后自动将服务切换到另一个主节点继续提供服务,从而实现MySQL的高可用。MMM方案是目前比较成熟的MySQL高可用方案,可以达到99.000%的SLA。3、Heartbeat/SAN高可用方案该方案借助第三方软硬件实现。在这个方案中,处理故障转移的方式是高可用性集群软件Heartbeat,它监控和管理各个节点之间连接的网络,监控集群服务,当某个节点出现故障或服务不可用时,集群服务自动启动在其他节点上启动。在数据共享方面,采用SAN存储来共享数据。正常情况下,集群的主节点会挂载存储进行数据读写。当集群出现故障时,Heartbeat会首先使用仲裁设备将存储挂载到主节点上。释放设备,然后把存储挂载到备节点上,再启动服务,这样就可以实现数据的共享和同步。这种数据共享方式实现简单,但成本较高,且存在脑裂的可能,需要根据实际应用环境进行选择。该解决方案可以实现99.990%的SLA。4、Heartbeat/DRBD高可用方案这个高可用方案也是借助第三方软硬件实现的。Heartbeat仍然用于处理故障转移的方式。不同的是,在数据共享方面,使用的是块级数据。同步软件DRBD来实现。DRBD(分布式复制块设备)是一种软件实现的无共享存储复制解决方案,用于在服务器之间镜像块设备内容。与SAN网络不同,它不共享存储,而是通过网络在服务器之间复制数据。这个方案实现起来有点复杂,而且还有脑裂的问题,可以达到99.900%的SLA。5.MySQLCluster高可用解决方案MySQLCluster由一组服务节点组成,每个服务节点运行各种进程,包括MySQL服务器、NDBCluster数据节点、管理服务器和(可能)专门的数据访问程序。本方案为MySQL官方推广的技术方案。它具有强大的功能。但由于实现繁琐,配置麻烦,在企业中的实际应用并不多。MySQLCluster标准版和电信版可以达到99.999%的SLA。