§ 单机多实例高可用


本文档介绍如何在单机多实例环境下,构建GreatSQL数据库高可用架构方案。

注意,线上生产环境通常不要采用单机多实例架构方案,本方案仅用于开发、测试环境

§ 高可用方案选择

单机多实例上的高可用方案比较简单,一般可以选用以下几种:

  1. lvs/haproxy。
  2. mysql router中间件。

本文重点讨论利用mysql router构建高可用的解决方案,lvs/haproxy方案请自行搜索。

§ 单机多实例部署MGR集群

首先,参考文档:单机多实例 完成单机多实例环境部署,并构建MGR集群。

greatsql> select MEMBER_ID,MEMBER_HOST,MEMBER_PORT,MEMBER_ROLE from performance_schema.replication_group_members;
+--------------------------------------+-------------+-------------+-------------+
| MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_ROLE |
+--------------------------------------+-------------+-------------+-------------+
| 62edd23f-07fa-11ed-aad1-00155d064000 | 127.0.0.1   |        3309 | SECONDARY   |
| 66c5a894-07e6-11ed-b1ff-00155d064000 | 127.0.0.1   |        3306 | PRIMARY     |
| 6e65ef68-07e6-11ed-a6d8-00155d064000 | 127.0.0.1   |        3307 | SECONDARY   |
| 6f367f17-07e6-11ed-825d-00155d064000 | 127.0.0.1   |        3308 | ARBITRATOR  |
+--------------------------------------+-------------+-------------+-------------+
1
2
3
4
5
6
7
8
9

这是一个单机4实例的MGR集群,其中包含1个ARBITRATOR节点。

§ 部署MySQL Router

在前文 读写分离 中介绍过,MySQL Router最好是和应用程序端部署在一起。

MySQL Router的部署方法可以参考文档:读写分离

应用程序端只需连接到router的读写分离端口,而无需关注后端数据库实际拓扑结构,当Primary节点发生切换时,或者某个Secondary节点下线时,都不影响应用程序端的使用。

此时高可用架构图大致如下所示:

MySQL Router单机多实例高可用方案

在本案中,因为是单机多实例环境,因此直接把MySQL Router和数据库服务器部署在一起,没有分开。

greatsql-wx