最近在研究ProxySQL,觉得还挺不错的,所以就简单的折腾了一下,ProxySQL目前也是Percona在推荐的一个读写分离的中间件。关于详细的介绍可以参考官方文档。https://github.com/sysown/proxysql/wiki
本文主要介绍的是MHA+ProxySQL读写分离以及高可用,ProxySQL的细节请参考文档,目前已经有人写的非常详细了,文章最后会给出链接。当然和Group Replication,PXC搭配那是更完美的。关于MHA的配置参考我前面的文章,本文就不再介绍。下面来看看
MHA和ProxySQL搭配使用的架构图:
测试环境(1主2从):
M-> 192.168.0.20 S1-> 192.168.0.30 S2-> 192.168.0.40 proxysql -> 192.168.0.10
1. 检查主从复制是否正常:
[root@db_server_yayun_04 ~]# masterha_check_repl --conf=/data/mha/3306/mha.cnf Thu Jun 15 17:45:32 2017 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping. Thu Jun 15 17:45:32 2017 - [info] Reading application default configuration from /data/mha/3306/mha.cnf.. Thu Jun 15 17:45:32 2017 - [info] Updating application default configuration from /usr/local/bin/load_cnf.. Thu Jun 15 17:45:32 2017 - [info] Reading server configuration from /data/mha/3306/mha.cnf.. Thu Jun 15 17:45:32 2017 - [info] Setting max_ping_errors to 10, ping_interval to 3. Thu Jun 15 17:45:32 2017 - [info] MHA::MasterMonitor version 0.57. Thu Jun 15 17:45:32 2017 - [info] GTID failover mode = 1 Thu Jun 15 17:45:32 2017 - [info] Dead Servers: Thu Jun 15 17:45:32 2017 - [info] Alive Servers: Thu Jun 15 17:45:32 2017 - [info] 192.168.0.20(192.168.0.20:3306) Thu Jun 15 17:45:32 2017 - [info] 192.168.0.30(192.168.0.30:3306) Thu Jun 15 17:45:32 2017 - [info] 192.168.0.40(192.168.0.40:3306) Thu Jun 15 17:45:32 2017 - [info] Alive Slaves: Thu Jun 15 17:45:32 2017 - [info] 192.168.0.30(192.168.0.30:3306) Version=5.7.17-log (oldest major version between slaves) log-bin:enabled Thu Jun 15 17:45:32 2017 - [info] GTID ON Thu Jun 15 17:45:32 2017 - [info] Replicating from 192.168.0.20(192.168.0.20:3306) Thu Jun 15 17:45:32 2017 - [info] Primary candidate for the new Master (candidate_master is set) Thu Jun 15 17:45:32 2017 - [info] 192.168.0.40(192.168.0.40:3306) Version=5.7.17-log (oldest major version between slaves) log-bin:enabled Thu Jun 15 17:45:32 2017 - [info] GTID ON Thu Jun 15 17:45:32 2017 - [info] Replicating from 192.168.0.20(192.168.0.20:3306) Thu Jun 15 17:45:32 2017 - [info] Primary candidate for the new Master (candidate_master is set) Thu Jun 15 17:45:32 2017 - [info] Current Alive Master: 192.168.0.20(192.168.0.20:3306) Thu Jun 15 17:45:32 2017 - [info] Checking slave configurations.. Thu Jun 15 17:45:32 2017 - [info] Checking replication filtering settings.. Thu Jun 15 17:45:32 2017 - [info] binlog_do_db= , binlog_ignore_db= Thu Jun 15 17:45:32 2017 - [info] Replication filtering check ok. Thu Jun 15 17:45:32 2017 - [info] GTID (with auto-pos) is supported. Skipping all SSH and Node package checking. Thu Jun 15 17:45:32 2017 - [info] Checking SSH publickey authentication settings on the current master.. Thu Jun 15 17:45:33 2017 - [info] HealthCheck: SSH to 192.168.0.20 is reachable. Thu Jun 15 17:45:33 2017 - [info] 192.168.0.20(192.168.0.20:3306) (current master) +--192.168.0.30(192.168.0.30:3306) +--192.168.0.40(192.168.0.40:3306) Thu Jun 15 17:45:33 2017 - [info] Checking replication health on 192.168.0.30.. Thu Jun 15 17:45:33 2017 - [info] ok. Thu Jun 15 17:45:33 2017 - [info] Checking replication health on 192.168.0.40.. Thu Jun 15 17:45:33 2017 - [info] ok. Thu Jun 15 17:45:33 2017 - [warning] master_ip_failover_script is not defined. Thu Jun 15 17:45:33 2017 - [warning] shutdown_script is not defined. Thu Jun 15 17:45:33 2017 - [info] Got exit code 0 (Not master dead). MySQL Replication Health is OK. [root@db_server_yayun_04 ~]#