构建高性能MySQL笔记

 常见的高可用的MySQL解决方案
 MySQL数据库作为最基础的数据存储服务之一,必须具备高可用性。有很多解决方案能实现不同的SLA(服务水平协定),这些方案可以
保证数据库服务器在硬件或者软件出现故障时服务继续可用。
  高性能的解决主要有两个问题,第一个是如何实现数据共享或同步数据,第二个是如何处理故障转移。数据共享的一般方案是通过SAN
(Storage Area Network)来实现,而数据同步可以通过rsync软件或DRBD技术来实现。故障转移是当服务器死机或者出现错误时,可以
自动切换到其他备用的服务器。
1.主从复制解决方案
主从复制解决方案是MySQL自身提供的一种高可用的解决方案,数据同步方法采用的是MySQL复制技术。MySQL复制就是一个日志的复制过程
,在复制过程中一个服务器充当主服务器,而一个或多个其他服务器充当从服务器。也就是从服务器到主服务器拉取二进制日志文件,然后
再将日志文件解析成相应的SQL在从服务器重新执行一遍主服务器的操作,通过这种方式保证数据的一致性。
  MySQL复制技术仅仅提供了日志的同步执行功能,而从服务器只能提供读操作,并且当主服务器故障时,必须通过手动来处理故障转移,
通常做法是将一台从服务器更改为主服务器。这种解决方案体现了MySQL的高可用性,可以实现90%的SLA。
  为了达到更高的可用性,在实际的应用环境中,一般都是采用MySQL复制技术配合高可用的集群软件来实现故障转移,这种方式可以解决95%
的SAL
2.MMM高可用的解决方案
 MMM是Master-Master Replication Manager for MySQL 的缩写,全称为MySQL主主复制管理器,它提供了主主复制配置的监控、故障转移和
管理的脚本套件。典型的应用就是双主多从架构,通过MySQL复制技术可以实现两个服务器互为主从,且在任何时候只有一个节点可以被写入,
避免多点写入的数据冲突。同时,当可写的主节点故障时,MMM套件可以立刻监控到,然后将服务自动切换到另一个主节点,继续提供服务。
 MMM方案是目前比较成熟的MySQL
高可用解决方案,可以实现99%的SLA
3.Heartbeat/SAN高可用解决方案
   Heartbeat/SAN是借助于第三方软硬件实现的,处理故障转移的方式是高可用集群软件Heartbeat,它监控和管理各个节点间的网络,并
监控集群服务,当节点出现故障或者服务不可用时,自动在其他节点启动集群服务。
   在数据共享方面,通过SAN存储来共享数据,在正常状态下,集群主要节点将挂载存储进行数据读写,集群发生故障时,Heartbeat会
首先通过一个仲裁设备将主节点挂载的存储设备释放,然后在备用节点上挂载存储,接着启动服务,从而实现数据的共享和同步。这种数据
共享方式实现简单,但是成本高,可以实现99.99%的SLA
4.Heartbeat/DRBD 高可用解决方案
 Heartbeat/DRBR高可用方案也是借助第三方软硬件实现的。在处理故障转移的方式上依旧采用Heartbeat,不同的是在数据共享方面,采用
基于块既别的数据同步软件DRBD来实现的。
 DRBD即Distributed Replicated Block Device,是一个用软件实现的、无共享的、服务器之间镜像块设备内容的分布式存储复制解决方案
。和SAN网络不同,它并不共享存储,而是通过服务器之间的网络复制数据,这种方式实现起来复杂,存在脑裂问题。可以实现99.9%的SLA
5.MySQL Cluster 高可用解决方案
  MySQL Cluster由一组服务节点构成,每个服务节点上均匀运行着多种进程,包括MySQL服务器、NDB Cluster的数据节点、管理服务器
,以及(可能)专门的数据访问程序。此解决方案是MySQL官方主推的解决方案,功能强大,但由于实现较为繁琐,配置麻烦,实际应用的
企业不是很多。可以达到99.999%SLA
 

猜你喜欢

转载自blog.csdn.net/lzh_86/article/details/80062773