查看原文
其他

『2021数据技术嘉年华·ON LINE』:《MySQL高可用架构演进及实践》

叶金荣 GreatSQL社区 2024-07-08

本文来源:原创投稿

* 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的配合上不如MySQRouter更顺滑,例如还需要额外创建存储过程以监控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提问:

MySQRouter和 app装在一起,一台server机器上的程序可能 连接多个 MySQL 集群,用一个Router吗 还是 多个Router?还有 MySQL Router如果需要更新升级,影响是不是很大?

  • 如果一台server上的程序可能链接多个MGR集群的话,可以在部署MySQRouter时选择多实例方案,可以关注我的微信公众号“老叶茶馆”,最近即将分享这个话题内容。
  • MySQRouter的升级很轻量级,通过yum或rpm直接升级即可,升级前利用服务调度机制,把要升级的app server临时下线,升级完再上线即可,后端数据库不会受到影响。

lanjian106103提问:

请问老师,同城跨IDC架构,如果MGR A全部节点挂掉,会自动切换到MGR B吗?

  • 在我的分享中,同城跨IDC的两个MGR集群是相互独立的,只是在两个集群间又构建了双向复制通道,这两个集群是一主一备的概念。
  • 这两个集群中任何一个整体挂掉了,都需要人工介入干预。

张辉提问:

如果集群因意外导致 主从或从从间的不一致。mgr会怎么恢复数据一致性?

  • MGR自己有数据一致性检查机制,一旦发现某个节点有事务延迟,则会自行补齐。但如果(因为误操作在从节点写数据、删数据)发现数据不一致或者丢失了,则会将这个节点踢出集群,需要再利用Clone等方式重建该节点,然后再加回集群。

老道注册用户提问:

MySQRouter在服务端与客户端配置差别大么?哪里可以找到相关配置资源?


完整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群

微信

QQ


想看更多技术好文,点个“在看”吧!

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存