简介
MySQL InnoDB集群(Cluster)提供了一个集成的,本地的,HA解决方案。Mysq Innodb Cluster是利用组复制的 pxos 协议,保障数据一致性,组复制支持单主模式和多主模式。
InnoDB Cluster组件:
MySQL Group Replication,简称MGR,是MySQL的主从同步高可用方案,包括数据同步及角色选举
Mysql Shell 是InnoDB Cluster的管理工具,用来创建和管理集群
Mysql Router 是业务流量入口,支持对MGR的主从角色判断,可以配置不同的端口分别对外提供读写服务,和单端口读写分离。
innoDB Cluster将三个MySQL数据库实例构成一个高可用集群。其中一个实例是具有读/写能力的主要成员,其他两个实例是具有只读能力的次要成员。组复制将数据从主要成员复制到次要成员。MySQL Router将客户端应用程序连接到集群的主要成员。
为什么选择InnoDB Cluster:
InnoDB **集群(Cluster)**是InnoDB 副本集(ReplicaSet) 与 组复制(Group Replication) 的合成版,是InnoDB 副本集(ReplicaSet) 的高可用版,是 组复制(Group Replication) 的简易、自动化故障转移、可编程的增强版。
InnoDB **集群(Cluster)**提供了一个集成的,本地的,HA解决方案。Mysq Innodb Cluster是利用组复制的 pxos 协议,保障数据一致性,组复制模式(支持单主模式和多主)。
一、基础环境配置
1.1 部署规划:
IP
主机名
角色
安装软件
172.31.0.115
Mysql01
primary
mysql-shell,mysql8.3.0
172.31.0.116
Mysql02
secondary
mysql-shell,mysql8.3.0,mysqlroute
172.31.0.117
Mysql03
secondary
mysql-shell,mysql8.3.0,mysqlroute
1.2 部署资源:
下载地址:https://www.mysql.com/downloads
mysql-8.3.0-linux-glibc2.17-x86_64.tar.xz
mysql-router-8.3.0-linux-glibc2.17-x86_64.tar.xz
mysql-shell-8.3.0-linux-glibc2.17-x86-64bit.tar.gz
1.3 设置主机名:
每个节点都要设置
#配置主机名
vi /etc/hosts
#写入主机名信息
172.31.0.115 mysql01
172.31.0.116 mysql02
172.31.0.117 mysql03
#也可通过命令设置主机名:
sudo hostnamectl set-hostname mysql01
sudo hostnamectl set-hostname mysql02
sudo hostnamectl set-hostname mysql03
系统相关优化(自选):
cat>>/etc/sysctl.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 681574400
kernel.shmmax = 137438953472
kernel.shmmni = 4096
kernel.sem = 250 32000 100 200
net.ipv4.ip_local_port_range = 9000 65000
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586