PROXYSQL  搭建步骤,配合MYSQL MGR 高可用方案_数据库

MySQL 高可用的方案中,互联网企业使用的高可用的方式是比较丰富的,但大多离不开主从复制,BINLOG,据我所知,有的互联网企业早就自己写了一套高可用的软件,来控制MYSQL 的高可用和部分读写分离。

而作为传统企业(金融企业)是无法忍受延迟的,尤其是集群中的MYSQL 从节点延迟,这里提醒一下,以后MYSQL 也不要在提 MASTER SLAVE,要说,primary 和  standby, 这是ORACLE 公司主导的新名词,避免被起诉。

PROXYSQL  搭建步骤,配合MYSQL MGR 高可用方案_高可用_02

而MGR 作为ORACLE 公司主推的MYSQL 高可用和集群的方案,已经在北京上海,这样的一线城市的大公司里面开始试用了,并且有的已经推广开了。 但作为 MYSQL MGR的方案中 ,最大的缺陷还是不能进行FAILOVER的 对应用的透明,和MONGODB 不一样,MYSQL MGR还是需要中间件来支持 MYSQL 失败后的自动切换和读写分离(自动)。

而PROXYSQL SQL 作为这些中间件的佼佼者,脱颖而出,并且以一如既往的开源世界的准则,这个是免费的。并且从PROXYSQL 1.4以后可以原生支持MYSQL MGR的,并且PROXYSQL 还可以支持众多的MYSQL 的高可用方式 主从的方式,PXC的方式,等等

这里仅仅讨论PROXYSQL 在我们公司中线上的安装(测试系统已经良好的运行了 2个月,无任何问题)

首先我们先的了解一下这个软件的作者是哪位 大仙

PROXYSQL  搭建步骤,配合MYSQL MGR 高可用方案_高可用_03

这位大仙是一位法国人,目前专门研究PROXYSQL 的继续研发和BUG修复。可以看他的在大学里面的 report , 不过的去YOUTOBE 上看,具体怎么看我这里就不介绍了,因为你懂得....  反正我是看过了

PROXYSQL  搭建步骤,配合MYSQL MGR 高可用方案_mysql_04

大致的粗略的结构图是这样的,而PROXYSQL 是多线程的在操作的

PROXYSQL  搭建步骤,配合MYSQL MGR 高可用方案_mysql_05

安装时非常简单的,由于集成了SQLLITE 数据库,所以他不是非常依赖配置文件,大部分配置是要写到 SQLLITE数据库的,而且作为MYSQL的中间件,他数据库的使用方式大部分是使用 MYSQL的语法,让我们操作起来更方便。

这里我们假设好我们已经有一套MYSQL MGR的环境,我们目前只需要安装PROXYSQL 并做简单的设计就让他可以对应用透明的 FAILOVER

PROXYSQL  搭建步骤,配合MYSQL MGR 高可用方案_数据库_06

PROXYSQL  搭建步骤,配合MYSQL MGR 高可用方案_数据库_07

1 请先从https://github.com/sysown/proxysql/releases ,下载RPM 安装包

2 暂时请下载 1.4.12 此版本已经在测试库运行2个月并未产生任何问题至今

3 直接将RPM 包放入到 中间件服务器, 执行

yum ­y install proxysql­1.4.12­1­centos7.x86_64.rpm

相关依赖包,应该可以直接安装

4 请安装 MYSQL 客户端,不需要安装MYSQL 服务器程序,客户端可以从官网,或者PERCONA

官网,或者 Mariadb 下载客户端,安装即可,不安装MYSQL 客户端则不能再SHELL 下进行

PROXYSQL 配置

5 启动 PROXYSQL SERVICE START

查看 PROXYSQL SERVER STATUS

6 第一次登陆 PROXYSQL

mysql ­u admin ­padmin ­h 127.0.0.1 ­P6032 –prompt=’Admin> ‘

7 在配置PROXYSQL 中有两种方法,1 通过管理接口进行管理, 2 用过配置文件进行配置 ,这里

建议使用管理端口进行配置,因为使用配置文件只能进行基础配置,并且PROXYSQL 本身携带

SQLLITE 数据库,配置文件在初次配置后就被抛弃,所有的配置数据会写入到 SQLLITE 数据库。

8 虽然使用的是MYSQL 的客户端,部分命令是可以使用来控制 SQLLITE ,但是在上层打包,下层

还是使用 SQLLITE的部分命令,所以有些MYSQL命令在键入后并不能执行,请知晓

PROXYSQL  搭建步骤,配合MYSQL MGR 高可用方案_高可用_08

9 我们将我们的MGR MYSQL的机器添加进复制组

INSERT INTO mysql_servers(hostgroup_id,hostname,port) VALUES (1,’10.5.1.117’,3306); 

INSERT INTO mysql_servers(hostgroup_id,hostname,port) VALUES (1,’10.5.1.118’,3306); 

INSERT INTO mysql_servers(hostgroup_id,hostname,port) VALUES (1,’10.5.1.119’,3306); 

INSERT INTO mysql_servers(hostgroup_id,hostname,port) VALUES (2,’10.5.1.117’,3306); 

INSERT INTO mysql_servers(hostgroup_id,hostname,port) VALUES (2,’10.5.1.118’,3306); 

INSERT INTO mysql_servers(hostgroup_id,hostname,port) VALUES (2,’10.5.1.119’,3306); 

10插入监控账号 

请先在相关的MGR组中建立相关的监控账号,在PROXYSQL 中更新相关的账号

UPDATE global_variables SET variable_value=’monitor’ WHERE variable_name=’monitor’;

UPDATE global_variables SET variable_value=’1234.Com’ WHERE variable_name=’mysql­-monitor_password’;

11 配置PROXYSQL 监控的间隔

UPDATE global_variables SET variable_value=’2000’ WHERE variable_name IN (‘mysql­-monitor_connect_interval’,’mysql­monitor_ping_interval’,’mysql­-monitor_read_only_interval’);

并将机器添加到读写组

PROXYSQL  搭建步骤,配合MYSQL MGR 高可用方案_数据库_09

12 插入MYSQL_USERS,这里需要先在MYSQL中进行配置,建立相关的账号

PROXYSQL  搭建步骤,配合MYSQL MGR 高可用方案_高可用_10

13 将配置添加进系统和保存到硬盘

load mysql variables to runtime; 
save mysql variables to disk; 
load mysql variables to runtime; 
save mysql variables to disk;

14 验证是否可以通过6033 端口直接访问MYSQL 的集群,IP地址为PROXYSQL的地址

PROXYSQL  搭建步骤,配合MYSQL MGR 高可用方案_数据库_11

15 至此最简单的PROXYSQL的安装和调试已经完成

当然这知识这个软件最小化的功能,加速MYSQL的查询,增强MYSQL访问的安全性,自动化MYSQL的读写分离,当然我们目前应用着这个软件最强大的MYSQL DOWN机,透明切换应用无感知。

今天就到这里