MySQL高可用集群的VIP切换「建议收藏」

MySQL高可用集群的VIP切换「建议收藏」一、目的 实现在mysql高可用集群的VIP切换,不涉及数据补偿 二、基础环境 python3.0+ 三、具体三大部分 1、启动条件检测 检测集群是否down机 方式 select 1 检测主库是否…

一、目的
实现在mysql高可用集群的VIP切换,不涉及数据补偿

二、基础环境
python3.0+

三、具体三大部分
1、启动条件检测

  • 检测集群是否down机 方式 select 1
  • 检测主库是否有VIP绑定 方式是 采用vip进行连接
  • 检测从库是否正常复制和延迟
  • 检测从库是否开启binlog中继日志写入
  • 检测集群是否已经开启了增强半同步方式
  • 检测集群是否开启了GTID复制

2、高可用切换流程

  • 主库down机 如果失败则进行尝试三次进行判定
  • 摘掉原主VIP,如果能进行SSH登录的话
  • 从slave节点中选择新主 判断方式
  • 打开new master节点读写功能
  • new master上绑定VIP
  • 在日志中生成change语句
  • 发送报警邮件

3、新主判定条件

  • 选择集群从库加入选举组,条件是sql_thread 状态为YES
  • 根据集群的成员对比 binlog(name and postion) 进行排序,选择头部成员
  • 对新主进行进一步判定,判定条件为second_master_behind
  • 如果为0,确保sql_thread已应用完全部relay-log
  • 第三步判断成功,则针对新主采取以下操作:

set global read_only= off 关闭读写
ifconfig vip 绑定VIP

四、相关注意点
1、云环境和多实例环境并不适合VIP环境,所以此文章不适用,不过大体原理相同
2、数据补偿依赖增强半同步复制,这是必须的
3、在绑定VIP之前需要arpping VIP,防止出现脑裂问题
4、采用一个集群启动一个进程方式,防止出现问题互相影响,当然如果你的python能力很高,可以随意改造
5、监控好你的从库健康情况,防止高可用切换的时候无健康从库可用

五、关于应用场景情况
1、对于集群都出现延时的情况比较少见
2、一旦发生这种情况而又导致切换
重要场景 会坚持relay-log应用完才会进行切换,业务响应排后
非重要场景 不考虑relay-log应用情况进行直接

六、总结
本文章只是提供一个思路,如有意见可以联系本人进行修订

七、切换日志图示
MySQL高可用集群的VIP切换「建议收藏」MySQL高可用集群的VIP切换「建议收藏」


本文选自知数堂学员-邓志航的文章;
邓志航,MySQL DBA,天生的MySQL爱好者,热衷于为他人解决问题,善于总结和分享。
对数据平台构建和排查疑难问题有非常浓厚的兴趣

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10743.html

(0)
上一篇 2022-12-22
下一篇 2022-12-22

相关推荐

  • Python实践:优化Web应用性能

    Python实践:优化Web应用性能Web应用的性能优化对于提升用户体验和增加网站的转化率至关重要。Python作为一种高效、简洁且易于学习的编程语言,越来越受到Web开发者的喜爱。本文将从多个方面介绍如何使用Python优化Web应用的性能,帮助你更好地提升网站的访问速度和用户体验。

    2024-01-15
    55
  • MySQL总结(十)表连接查询(内、外连接)-详解[通俗易懂]

    MySQL总结(十)表连接查询(内、外连接)-详解[通俗易懂]表连接查询 1.什么是多表查询 准备数据 # 创建部门表 create table dept( id int primary key auto_increment, name varchar(20)…

    2023-03-10
    100
  • 免费Python在线面试练习测试

    免费Python在线面试练习测试
    Python作为一种高级编程语言,现已成为众多企业和开源社区的首选语言。在以信息技术为核心的现代化社会中,Python的广泛应用正在为许多行业和领域带来新的变革和机遇。同时,竞争也在不断升级。众多有才华的程序员以及培训机构涌现出来,使得就业市场变得异常激烈。企业和个人想要脱颖而出,全方位的技能和经验都非常重要。

    2023-12-13
    63
  • 使用Python CGI构建动态Web应用

    使用Python CGI构建动态Web应用使用Python CGI(公共网关接口,Common Gateway Interface)可以构建动态Web应用,该技术已经持续发展了多年,现已成为开发动态Web应用的标准技术之一。Python作为一门灵活、高效的编程语言,与CGI的结合也是非常自然和流畅的。下面的文章将就Python CGI的开发涵盖多方面进行详细阐述,希望能带给读者更深入了解的体验。

    2023-12-17
    62
  • mysql索引优化有几种_如何优化索引

    mysql索引优化有几种_如何优化索引导读 本文章始发于本人公众号:码猿技术专栏,原创不易,谢谢关注推荐。 索引下推(index condition pushdown )简称ICP,在Mysql5.6的版本上推出,用于优化查询。 在不使用

    2023-02-11
    103
  • 计算列表长度的函数

    计算列表长度的函数Python中内置了一个函数len(),用来计算列表的长度。

    2023-12-09
    69
  • 整理最近用的Mongo查询语句「建议收藏」

    整理最近用的Mongo查询语句「建议收藏」整理最近正在用的多条件查询以及聚合查询的实例,作为文档保留供以后查阅

    2023-04-19
    100
  • Python Scalr教程:使用Scalr管理和自动化部署Python应用程序

    Python Scalr教程:使用Scalr管理和自动化部署Python应用程序Scalr是一种高度可扩展的云管理平台,它使您可以通过云实例自动化和管理应用程序的部署。在本教程中,我们将探讨如何使用Scalr来部署和管理Python应用程序。

    2023-12-27
    59

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注