很多小伙伴反映说网上的MHA教程甚至收费的课程里的MHA教程都存在坑,不少教程只是搭建完成了,是否真的能在主库宕机时自动切换不得而知,鉴于此情况,简单写了一个MHA集群的搭建步骤。由于搭建的次数较多,没踩到过多的坑(坏笑),所以没有写太多的排坑方法,如果小伙伴们在部署的过程中遇到问题可以和我沟通,文中如有问题欢迎斧正。
(本文篇幅相对较长,建议收藏,如对你有帮助,帮忙文末点个推荐或关注公众号:数据库干货铺,谢谢)
MHA管理节点上执行(但建议每台主机均执行,便于切换管理节点及集群间维护,但注意主机安全),包含本机到本机的互信
如果以上安装包未安装全,则会出现类似下面的错误,如出现可以调整yum源或找下载好的同学获取
配置两个重要的脚本master_ip_failover、master_ip_online_change
日志中大致的流程是检测到主库(192.168.28.128:)不可用-->连续试探3次(次数可自定义)-->检测进群中剩余存活的节点-->从备选主节点中选择一个节点为主节点-->漂移VIP至新的主节点(如果原主节点系统正常则将VIP在原主机上删除)-->拷贝原主节点的binlog日志-->新主节点判断是否需要补充日志-->其他节点全部改为从新主节点复制数据(组成新的集群)
很多时候需要主动进行主从切换,此时就可以用MHA的手动切换脚本来进行,例如将主库再切回192.168.28.128:上(此时MHA如果是启动状态则必须关闭)
因MHA集群建议关闭relay-log所以relay-log需要手动清理,因此可以配置一个定时任务进行清理
可以配置公网的时钟服务器,也可以自己搭建(生产环境需有自建的时钟服务器,可以参考时钟服务器搭建)
MHA的搭建过程中最大的困难点在于经常依赖包安装不全以及相关脚本与版本不对应导致一直无法部署,还有一个问题是集群复制检查、手动切换主库均正常,但是主库异常宕机时无法切换(切换脚本问题)。小伙伴们在实践过程中遇到问题可以多多与我沟通,相互学习提高排坑技能。如需相关安装软件及依赖包也可以关注公众号数据库干货铺联系我获取或回复加群进入技术交流群与更多小伙伴交流。