本文来源:原创投稿
* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。本次分享全程视频及PPT内容将全部放出,并在文末附上助理微信号二维码,可添加助理微信加入GreatSQL/MGR交流微信群或扫描QQ群二维码GreatSQL/MGR交流QQ群。
这是2021年11月26日,叶金荣在『2021数据技术嘉年华·ON LINE』:《MySQL高可用架构演进及实践》分享的全内容,戳下方小程序直达(平台审核视频可能略有延迟,如未发布请稍晚点再来观看回放):
以下为分享ppt全内容:
下面回答直播间网友提的一些关于MGR相关问题的提问:
淼淼DBA提问:
MGR这个应用,读写分离,都是最新的版本,这个最新版本是哪个时间节点的。手工设置吗。
通过MySQL Router实现读写分离的话,Router会直接连接到后端MGR服务上,根据MGR层设置的事务一致性级别来确定是否要读取最新版本的数据,不需要人工干预。
当然了,如果你希望总是读取到最新数据,可以自己动手调整 group_replication_consistency 选项值,根据业务需要自行设定。
张凡提问:
MySQL InnoDB Cluster架构里面的Router是不是可以proxysql进行替换??
- 可以,但不推荐。
- proxysql毕竟不是官方原生的,在和MGR的配合上不如MySQL Router更顺滑,例如还需要额外创建存储过程以监控MGR的变化。此外就是proxysql的bug其实也挺多的。
- 当然了,如果是业务量不大,或者出于学习、实验用途,选用proxysql也是可以的。
三横一竖提问:
MySQL的多个Router设置,硬件配置有要求吗,多节点是不是需要硬件,预算是不是需要增加。
- MGR作为目前MySQL原生最好的高可用方案,如果是重要业务的话,也该值得投入更多硬件以满足可用性的要求,不可能想着不投入又要高可用。
- 另外,GreatSQL下个版本中计划推出新特性,支持把一个节点设置为仲裁节点,只需要存储日志,无需存储用户数据,但还能参与MGR的多数派投票。这就可以降低硬件成本的基础上保证MGR的可靠性等级,欢迎关注。
灰~~提问:
虽然还有这样那样的问题,MySQL MGR 现在有蛮多用户在使用了。但是MySQL InnoDB Cluster 老师你那边确定已经在使用的用户吗??感觉用户数应该比MySQL NDB Cluster还少。
- NDB Cluster是一个非常不成熟的技术,存在先天不足。目前国内业界只有听说某银行在使用,几年前还出了比较大的问题,但基本上没人能搞定。
- 因此非常不推荐使用NDB Cluster。
梁雪柏提问:
自动切换,会不会因为网络等因素导致误判,怎么防止这个的
- MGR不会因为短时间的网络异常就直接切换,是有多次判断的。
- 如果是发生网络分区了,一个集群可能分离成两个或多个集群,这个就需要人工干预了。
wx提问:
MySQL Router和 app装在一起,一台server机器上的程序可能 连接多个 MySQL 集群,用一个Router吗 还是 多个Router?还有 MySQL Router如果需要更新升级,影响是不是很大?
- 如果一台server上的程序可能链接多个MGR集群的话,可以在部署MySQL Router时选择多实例方案,可以关注我的微信公众号“老叶茶馆”,最近即将分享这个话题内容。
- MySQL Router的升级很轻量级,通过yum或rpm直接升级即可,升级前利用服务调度机制,把要升级的app server临时下线,升级完再上线即可,后端数据库不会受到影响。
lanjian106103提问:
请问老师,同城跨IDC架构,如果MGR A全部节点挂掉,会自动切换到MGR B吗?
- 在我的分享中,同城跨IDC的两个MGR集群是相互独立的,只是在两个集群间又构建了双向复制通道,这两个集群是一主一备的概念。
- 这两个集群中任何一个整体挂掉了,都需要人工介入干预。
张辉提问:
如果集群因意外导致 主从或从从间的不一致。mgr会怎么恢复数据一致性?
- MGR自己有数据一致性检查机制,一旦发现某个节点有事务延迟,则会自行补齐。但如果(因为误操作在从节点写数据、删数据)发现数据不一致或者丢失了,则会将这个节点踢出集群,需要再利用Clone等方式重建该节点,然后再加回集群。
老道注册用户提问:
MySQL Router在服务端与客户端配置差别大么?哪里可以找到相关配置资源?
- 可以查阅MySQL Router的官方文档或者查阅我的这篇文章:技术分享 | InnoDB Cluster+GreatSQL快速部署MGR集群,并实现读写分离和故障自动转移(超详细)
完整PPT文档下载地址:
(https://gitee.com/GreatSQL/GreatSQL-Doc/tree/master/Presentations)
Enjoy GreatSQL :)
关于 GreatSQL
GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。
Gitee:
https://gitee.com/GreatSQL/GreatSQL
GitHub:
https://github.com/GreatSQL/GreatSQL
微信&QQ群:
可扫码添加GreatSQL社区助手微信好友,发送验证信息“加群”加入GreatSQL/MGR交流微信群,亦可直接扫码加入GreatSQL/MGR交流QQ群。
微信