本篇文章给大家分享的是有关如何使用MySQL MHA源代码进行监控检查,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、前言在研究的同时,把MHA免费主机域名的源代码也翻阅了一遍,现在准备把MHA一些重要内容梳理一下,既然是高可用工具,那么健康检测是一个基础工作,只有正确检测了数据库的故障,才能进行数据库的切换;而MHA的布局亦如此:二、MHA健康检查核心调用函数链注意我这里的函数调用链的规则是文件名|方法名,方法名中的或者表示的是,通过读取配置文件,执行其中的一个函数MasterMonitor.pm|MHA::MasterMonitor::main()->MasterMonitor.pm|MHA::MasterMonitor::wait_until_master_is_dead()->MasterMonitor.pm|MHA::MasterMonitor::wait_until_master_is_unreachable()->HealthCheck.pm|MHA::HealthCheck::wait_unt免费主机域名il_unreachable()->HealthCheck.pm|MHA::HealthCheck::ping_select(或者)->HealthCheck.pm|MHA::HealthCheck::ping_insert(或者)->HealthCheck.pm|MHA::HealthCheck::ping_connect(或者)三、代码分析我们主要看HealthCheck.pm|MHA::HealthCheck::wait_until_unreachable的实现1) 该函数通过一个死循环,检测4次,每次sleep ping_interval秒(这个值在配置文件指定,参数是ping_interval),持续四次失败,就认为数据已经宕机2)如果有二路检测脚本,需要二路检测脚本检测主库宕机,才是真正的宕机,否则只是推出死循环,结束检测,不切换3)这里的GETLOCK(姑且说是分布式锁)就是用来保护数据库的访问,防止脚本多次启动的4)该函数调用了三种经检测方法,如下:PING_TYPE_CONNECT(ping_select),PING_TYPE_INSERT(ping_insert),PING_TYPE_SELECT(ping select),但是哪种最好呢,我建议是PING_TYPE_CONNECT,实际上PING_TYPE_CONNECT调用了ping_select的方法,比PING_TYPE_CONNECT更具有可靠性四、总结1)数据库MHA的健康检查,最终调用的ping_select,ping_insert,ping_connect的一种,检测的时间由ping_interval控制,其中ping_connect调用了ping_select2)MHA最好配置二路检测,否则只是MHA主节点从自身ssh去检测主库是否正常,在MHA管理节点与主库网络存在问题的时候,有可能会发生误切换3)注意:这里只列出了核心函数,其实在程序启动的时候,还有一些启动情况检查,基本是主库是否可连接,配置是否正确,从库是否正常等等以上就是如何使用MySQL MHA源代码进行监控检查,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注云技术行业资讯频道。
相关推荐: Oracle在Centos7.5安装遇到的问题及解决方法
本篇内容主要讲解“Oracle在Centos7.5安装遇到的问题及解决方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle在Centos7.5安装遇到的问题及解决方法”吧!一般在安装oracle时,当确定…