MySQL高可用方案介绍
公司内部目前采用的有三种,PXC,MHA,MGR,MySQL5.6版本的采用MHA,5.7版本的采用MGR。
MHA
MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,该软件由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点。
- MHA Manager: 可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。
- MHA Node: 行在每台MySQL服务器上。
MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。
Image result for mysql mhaMGR
MySQL官方推荐的一款高可用集群方案MySQL Group Replication,基于Paxos协议的状态机复制,彻底解决了基于传统的异步复制和半同步复制中数据一致性问题无法保证的情况,也让MySQL数据库涉及的领域更广,打开互联网金融行业的大门。
组复制
组复制是一种可用于实现容错系统的技术。复制组是一个通过消息传递相互交互的Server集群。复制组由多个Server成员组成,如下图的Master1、Master2、Master3,所有成员独立完成各自的事务。
当客户端发起一个更新事务时,该事务先在本地执行,执行完成之后就要发起对事务的提交操作。在还没有真正提交之前,需要将产生的复制写集广播出去,复制到其它成员。如果冲突检测成功,组内决定该事务可以提交,其它成员可以应用,否则就回滚。
img组复制可以在两种模式下运行:
- 单主模式下,组复制具有自动选主功能,每次只有一个 Server成员接受更新,其它成员只提供读服务。
- 多主模式下,所有的Server 成员都可以同时接受更新,没有主从之分,成员角色是完全对等的。
PXC
Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案, 的特性如下:
1).同步复制,事务要么在所有节点提交或不提交。
2).多主复制,可以在任意节点进行写操作。
3).在从服务器上并行应用事件,真正意义上的并行复制。
4).节点自动配置。
5).数据一致性,不再是异步复制。
优点如下:
1).当执行一个查询时,在本地节点上执行。因为所有数据都在本地,无需远程访问。
2).无需集中管理。可以在任何时间点失去任何节点,但是集群将照常工作,不受影响。
3).良好的读负载扩展,任意节点都可以查询。
缺点如下:
1).加入新节点,开销大。需要复制完整的数据。
2).不能有效的解决写缩放问题,所有的写操作都将发生在所有节点上。
3).有多少个节点就有多少重复的数据。
img