mysql+proxysql+keepalived实现高可用的数据库读写分离
前言为了降低一台数据库的IO,远程连接数据库的时候,可以实现读写分离进行调度。这里就出现了一个单点,所以必须要做一个高可用。当然数据库服务器也需要做主从复制。
实验结构
https://s1.运维网.com/oss/201711/14/8db1ac08b733935984b91acf96346c65.png-wh_500x0-wm_3-wmp_4-s_2892316726.png
说明:上图的拓扑只是整个架构中的一个小部分,其余功能的实现此图并未规划出来。此拓扑实现的目的是利用proxysql实现数据读写分离,并对proxysql高可用。两台安装了Keepalived和proxysql虚拟成一个VIP对外提供服务。这两台mysql服务器做的半同步复制,192.168.32.111是主节点负责用户的写操作,192.168.32.112从节点负责用户的读操作。
实验步骤
1、安装数据库并配置半同步复制
主mysql:192.168.32.111
]#yum install mariadb -y GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'ma'@'192.168.32.%' IDENTIFIED BY 'centos'; SHOW MASTER LOGS; SHOW BINLOG EVENTS IN 'master-log.000001'; INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master'; SHOW GLOBALVARIABLES LIKE '%rpl%'; SHOW GLOBAL STATUS LIKE '%rpl%'; SET@@GLOBAL.rpl_semi_sync_master_enabled=ON; FLUSH PRIVILEGES; 从mysql配置:192.168.32.112
]#yum install mariadb -y CHANGE MASTER TO MASTER_HOST='192.168.32.111',MASTER_USER='ma',MASTER_PASSWORD='centos',MASTER_LOG_FILE='master-log.000001',MASTER_LOG_POS=245;
>START SLAVE;
> SHOW SLAVE STATUS\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.32.111
页:
[1]