【MySQL高可用集群 九】ProxySQL集群 环境搭建

【MySQL高可用集群 一】MySQL主从搭建(传统方式)

【MySQL高可用集群 二】MySQL主从搭建(GTID方式)

【MySQL高可用集群 三】MySQL双主搭建

【MySQL高可用集群 四】MySQL多主多从

【MySQL高可用集群 五】MySQL的MGR集群

【MySQL高可用集群 六】ProxySQL安装部署

【MySQL高可用集群 七】ProxySQL&MySQL 主从环境搭建

【MySQL高可用集群 八】ProxySQL&MGR 环境搭建

【MySQL高可用集群 九】ProxySQL集群 环境搭建

【MySQL高可用集群 】相关SQL脚本

 

一、环境准备

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集群 环境搭建

posted @ 2023-08-31 10:48  蓝迷梦  阅读(408)  评论(0)    收藏  举报