› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
holinhot
V2EX  ›  MySQL

MySQL Group Replication down 机后

  •  
  •   holinhot · Feb 28, 2018 · 4085 views
    This topic created in 3141 days ago, the information mentioned may be changed or developed.

    目前用 Group Replication 做热备份用,遇到个问题。

    3 台服务器组成的集群: mysql1 mysql2 mysql3

    其中 mysql1 为 master 提供写入服务,其他节点是从,只读。

    当 mysql1 重启服务器,集群内部 master 会自动漂移,会从集群中移除 mysql1。 此时 mysql1 重启后没有自动再次加入集群,加入集群前是可以直接提供写入。

    那么问题就来了,此时数据全部写入到了 mysql1 两个问题: 问题 1. mysql1 数据和集群不一致了。 问题 2. 因为 mysql1 数据和集群的不一至导致无法再次加入集群。会提示: 2018-02-28T04:10:02.576953Z 0 [Note] Plugin group_replication reported: 'To force this member into the group you can use the group_replication_allow_local_disjoint_gtids_join option'

    当然你可以强制加入集群,但这很容易数据错乱吧。

    如果使用 haproxy 做一个 vip 然全部应用使用这个 vip 连 mysql。

    但 Grroup Replication 的主切换是在 mysql 内部完成的,haproxy 根本无法知道哪台服务器是主。 稍微看了下那个 ProxySQL 原理好像是代理转发的定时检查哪个是主,然后把 sql 查询转发到主。不知道生产稳定性怎么样

    另外我测试了多主模式,数据一致性更难保证。

    另外 ProxySQL 这种定时检测切换的好像也有问题:

    如定时检测为 30 秒,服务器 1,网络中断 10 秒自动脱离集群。但 ProxySQL 检测间隔问题, 正好没有检测出服务器已经脱离集群,而将 sql 语句发至服务器 1,此时服务器 1 已经恢复,但未加入到集群。于是乎问题来了,1 号服务器数据和集群不一致了。数据乱了

    runntuu
        1
    runntuu  
       Feb 28, 2018 via iPhone
    1.Group Replication 主切换是在 MySQL 内部完成的,但不意味着你不能对节点状态做检查,你可以写脚本。
    2.不管是 HAProxy 还是 Keepalived,都可以调用脚本,你可以基于上一步的结果来决定将 VIP 漂移至哪个节点。
    所以实现都能实现,只是你对负载均衡工具还不够了解,具体怎么实现去 Google 吧。
    holinhot
        2
    holinhot  
    OP
       Feb 28, 2018
    @runntuu 除了对每条 sql 转发前做点状态做检查,不然还是会出现上面的问题:
    如定时检测为 30 秒,服务器 1,网络中断 10 秒自动脱离集群。但 检测间隔问题, 正好没有检测出服务器已经脱离集群,而将 sql 语句发至服务器 1,此时服务器 1 已经恢复,但未加入到集群。于是乎问题来了,1 号服务器数据和集群不一致了。数据乱了
    runntuu
        3
    runntuu  
       Mar 1, 2018 via iPhone
    @holinhot 不管是 HAProxy 还是 Keepalived 都有自己的机制来做健康检查,但这个机制并不是你说的定时检测。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   754 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:51 · PVG 05:51 · LAX 14:51 · JFK 17:51
    ♥ Do have faith in what you're doing.