网络浪子 发表于 2018-12-30 08:42:56

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]
查看完整版本: mysql+proxysql+keepalived实现高可用的数据库读写分离