原创:知数堂
在《高可用 | Xenon:后 MHA 时代的选择》一文中,我们对 Xenon 的实现原理、应用场景等做了简要介绍。文章发布后,社区小伙伴都在咨询 Xenon 如何与 MySQL 配合使用?
本文来自知数堂投稿,是一篇基于 Xenon 架构原理,部署 一主两从 架构的 MySQL 高可用集群的实操文档。
环境信息:
- Redhat 7
- MySQL 5.7
- Xenon 1.0.7
- XtraBackup 24
*另:Xenon 支持 MySQL 5.6/5.7/8.0 内核,本文以 5.7 为例。
1. 搭建 MySQL 增强半同步复制架构
1.1 准备单机 MySQL
准备三台单机 MySQL,安装步骤(略)。
- db1 (10.10.10.10)
- db2 (10.10.10.11)
- db3 (10.10.10.18)
1.2 配置主从复制
配置三台单机 MySQL 主从 复制关系,配置步骤(略)。
1.3 配置增强半同步复制
在 db1 服务器上,开启 semi_sync
插件。
set global super_read_only=0; ---默认
set global read_only=0; ---默认
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
show plugins;
在 db2 和 db3 服务器上执行并查看结果。
stop slave io_thread;
start slave io_thread;
2020-01-05T12:16:01.269943Z 20 [Note] Aborted connection 20 to db: 'unconnected' user: 'root' host: 'localhost' (Got timeout reading communication packets)
2020-01-05T12:25:57.193720Z 13 [Note] Slave I/O thread killed while reading event for channel ''
2020-01-05T12:25:57.193804Z 13 [Note] Slave I/O thread exiting for channel '', read up to log 'mysql-bin.000002', position 2310
2020-01-05T12:25:57.227685Z 22 [Note] Slave I/O thread: Start semi-sync replication to master 'repl@10.10.10.10:3306' in log 'mysql-bin.000002' at position 2310
2020-01-05T12:25:57.227782Z 22 [Warning] Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using