【MySQL高可用集群 九】ProxySQL集群 环境搭建
【MySQL高可用集群 二】MySQL主从搭建(GTID方式)
【MySQL高可用集群 七】ProxySQL&MySQL 主从环境搭建
【MySQL高可用集群 八】ProxySQL&MGR 环境搭建
一、环境准备
1、单机 ProxySQL + MGR 集群环境,参考:【MySQL高可用集群 八】ProxySQL&MGR 环境搭建
2、若干单独的 ProxySQL 服务节点,ProxySQL安装参考:【MySQL高可用集群 六】ProxySQL安装部署
现在是假设已经有了 一个ProxySQL 服务节点代理了一个 MGR 集群,现在需要引入多个ProxySQL服务,搭建 ProxySQL 服务的高可用集群。总体思路是:
(1)keepallived + nginx 做负载接入,将用户流量分发到 ProxySQL 集群中,并将结果返回至用户应用,参考:https://www.cnblogs.com/hewei-blogs/articles/17160430.html。
(2)ProxySQL 多节点集群,接收来自nginx的流量,转发至后端MySQL集群,并返回结果至nginx。已经搭建的部分参考:【MySQL高可用集群 八】ProxySQL&MGR 环境搭建 。
(3)MySQL MGR 集群,接收来自ProxySQL的路由流量,进行真正的数据处理,返回数据给ProxySQL集群。参考:【MySQL高可用集群 五】MySQL的MGR集群 。
这里我们主要进行第二步 ProxySQL 多节点集群的搭建。由于前几章已经介绍并搭建了相关的集群服务,所以就在之前搭建的基础上进行搭建。
/etc/hosts 配置应当如下:
#IP 域名|主机名 10.53.207.20 10.53.207.20 # mgr (已部署) 10.53.207.21 10.53.207.21 # mgr (已部署) 10.53.207.22 10.53.207.22 # mgr (已部署) 10.53.207.24 10.53.207.24 # proxysql (已部署) 10.53.207.23 10.53.207.23 # proxysql (待部署并配置ProxySQL集群)
二、环境搭建:
ProxySQL 集群的搭建思路有两个,一是在集群初始化时所有节点使用相同的已经配置好的配置文件(/etc/proxysql.cnf)进行启动,这种方式适合进行初始集群搭建。二是先启动一个服务后对所有配置进行设置,然后持久化到数据库文件 proxysql.db 文件中,然后将文件拷贝至其他节点直接进行使用,这种方式适合扩展当前proxysql服务集群。
由于前面的步骤已经搭建过proxysql服务,所以本文采用第二种方式进行集群扩展式搭建。
1、在已经部署成功的节点(10.53.207.24)进行以下设置:
设置集群通信账号:集群通信账号 必须是在 admin-admin_credentials 的管理员列表中存在的,也就是说集群通信账号其实是从管理员账号中选择一个,但不能是 admin:admin ,否则集群间无法通信。
set admin-cluster_username='hadmin'; set admin-cluster_password='hpasswd'; load admin variables to runtime; save admin variables to disk;
添加ProxySQL集群节点:proxysql_servers 表中存储 ProxySQL集中各个节点信息。
insert into proxysql_servers(hostname,port,comment) values ("10.53.207.23",6032,"proxy-23"), ("10.53.207.24",6032,"proxy-24"); load proxysql servers to runtime; save proxysql servers to disk;
2、在 10.53.207.23 节点安装 一个 ProxySQL 服务,安装后不要启动。
3、将已配置好的 ProxySQL 服务(10.53.207.24节点)的 proxysql.db数据库文件复制到 新安装的ProxySQL节点(10.53.207.23)的对应目录下。proxysql.db 数据库文件在ubuntu系统下默认的位置为 /var/lib/proxysql/ ,如果 23 节点已经存在了数据库文件,需要先删除再将24节点已经配置好的数据库文件复制过来。
4、在新安装的ProxySQL服务节点(10.53.207.23)下进行数据库文件权限的修改
#修改所属组为 proxysql chgrp proxysql proxysql.db #修改所有者为 proxysql chown proxysql proxysql.db #文件读写赋权 chmod 660 proxysql.db
5、启动验证新节点(10.53.207.23)的服务
#重新启动
service proxysql start 或 service proxysql restart
#登录 mysql -uadmin -padmin -h127.0.0.1 -P6032 --prompt='ProxySQL> '
#检验数据是否和另一个节点一致 select * from global_variables; select * from proxysql_servers;
#查看集群信息 select hostname,port,comment,Uptime_s,last_check_ms from stats_proxysql_servers_metrics;

通过Uptime_s 可以看到集群中各个节点的在线时间。
三、环境验证
数据操作验证:通过数据操作账号分别远程连接 10.53.207.23、10.53.207.24 两个节点,进行 数据的查询和修改,发现都可以正常执行。
ProxySQL集群验证:
停掉23节点的服务 service proxysql stop ,在 24 节点查看,发现23 节点的在线存活时间Uptime_s不再增长。

重启23节点,发现 23节点的Uptime_s 重新从头开始增长。

修改23节点的变量(注意修改后要进行生效和持久化操作)。
set admin-stats_credentials='stats:stats;hstats:hstats'; load admin variables to runtime; save admin variables to disk;
在24节点查看,发现23节点变量的更改也同步至24节点了,并且是持久化的。
select @@admin-stats_credentials;
发现各节点之间的配置数据可以进行同步,每个节点也可以正常进行数据库代理服务,集群环境搭建成功!
原创文章,转载或引用请注明出处:【MySQL高可用集群 九】ProxySQL集群 环境搭建
本文来自博客园,作者:蓝迷梦,转载请注明原文链接:https://www.cnblogs.com/hewei-blogs/articles/17669001.html

浙公网安备 33010602011771号