MySQL 5.7搭建Innodb Cluster高可用集群
一、MySQL Innodb Cluster介绍与安装版本
MySQL InnoDB Cluster是MySQL的一种高可用性和灾难恢复解决方案,为MySQL提供了自动化的高可用性解决方案。区别于MySQL原生的主从复制,InnoDB Cluster能够实现集群中的节点进行自动故障切换,提供了更高的高可用性。
InnoDB Cluster 支持两种不同的部署模式,即单主模式(Single Primary Mode)和多主模式(Multi-Primary Mode)。在单主模式下,集群中只有一个节点被指定为主节点(Primary),其余节点为从节点(Secondary)。在这种模式下所有写操作都必须通过主节点进行,从节点只用于读操作。当主节点不可用时,InnoDB Cluster 会自动选举新的主节点,确保集群的高可用性;在多主模式下,集群中的每个节点都可以同时作为主节点和从节点,即每个节点都可以执行读和写操作。在这种模式下写操作可以在任何节点上执行,而不仅仅是在主节点上,当节点不可用时,集群仍然可以继续进行写操作。
多主模式提供了更大的灵活性,允许应用在不同的节点上执行写操作,从而更好地利用系统资源。然而多主模式下,对于相同的数据在不同节点上的写操作可能会导致数据冲突,需要应用程序适当处理。建议在生产环境中,尽可能使用单主模式,本文主要是对Innodb Cluster的单主模式进行介绍。
InnoDB Cluster的主要组件和特性:
-
MySQL Group Replication: MySQL Group Replication是MySQL 5.7版本引入的一个插件,它提供了基于多主复制的高可用性和灾难恢复方案。它允许多个MySQL实例协同工作,形成一个同步的集群。
-
MySQL Shell: MySQL Shell是用于管理和操作InnoDB Cluster的命令行工具。它提供了JavaScript、Python和SQL的接口,可以用于执行各种任务,如创建和管理集群、进行监控和诊断等。
-
MySQL Router: MySQL Router是InnoDB Cluster的负载均衡和路由组件。它负责将连接路由到正确的MySQL节点,提供了透明的故障切换和负载均衡。
MySQL InnoDB Cluster 是建立在 MySQL Group Replication 基础之上的一种高可用性和灾难恢复解决方案。InnoDB Cluster 不仅使用了 Group Replication 插件,还包括了 MySQL Shell 和 MySQL Router 这两个组件,提供了更全面的功能,例如集群的创建、管理、监控以及负载均衡等。
Mysql Innodb Cluster | 安装版本 |
---|---|
Mysql Server | 5.7.33 |
Mysql Shell | 8.0.23 |
Mysql Router | 8.0.23 |
二、三台服务器分别部署MySQL Server、MySQL Shell和MySQL Router
- 将官网对应的版本MySQL Shell和MySQL Router下载到本地
- 省略MySQL Server的具体部署步骤
1. yum localinstall -y mysql-shell-8.0.23-1.el7.x86_64.rpm
1. mysqlsh --version
mysqlsh Ver 8.0.23 for Linux on x86_64 - for MySQL 8.0.23 (MySQL Community Server (GPL))
1. yum localinstall -y mysql-router-community-8.0.23-1.el7.x86_64.rpm
1. mysqlrouter --version
MySQL Router Ver 8.0.23 for Linux on x86_64 (MySQL Community - GPL)