【技术实现步骤摘要】
数据库集群单点故障的监控系统及方法
本申请涉及网络通信系统,具体地,涉及一种数据库集群单点故障的监控系统及方法。
技术介绍
目前,互联网公司通常采用数据库集群来存储网站的海量数据。数据库集群的结构如图1所示,主库(Master)1提供对外的读写服务,若干个从库(Slave)2只对外提供读服务,以MySQL数据库为例,主库1和从库2均为MySQL实例,从而图1所示的数据库集群构成一个MySQL集群,每一个MySQL数据库(包括主库和从库)都是一个单点。各个MySQL数据库之间的关系包括:通过复制机制,从库2根据主库1定期发送的日志,不断地从主库1中读取更新的数据,从而使得从库2尽量与主库1的数据保持一致,使得应用端3(Client)从从库2中读取的数据与主库一致。在实际运行中,互联网公司使用的服务器大部分都是普通的个人电脑(PC,PersonalComputer)服务器(Server),PCServer存在一定的故障率,如通常会发生内存异常、主板异常、或者直接宕机,发生故障的PCServer就无法向外提供服务,这就是MySQL数据库的单点故障,如果正好是主库1的机器出现问题,那么应用端3(Client)对主库1写入数据的操作就会受影响,影响到数据库集群对外提供的写服务。目前,针对MySQL数据库的单点故障主要有以下两种解决方案:第一种方案,采用人工干预的解决办法。该方法包括:人工确认主库1是否存活(即正常向外提供读写服务),若存活,则将主库1直接启动,以确定从库2是否能够正常同步,若主库1中的数据损坏或者主库1不存活(即不能正常向外提供读写服务),则选择一台 ...
【技术保护点】
一种数据库集群单点故障的监控系统,应用于包括若干个数据库的数据库集群中,所述数据库包括主库或从库,其特征在于,所述监控系统包括:若干个数据库代理,至少三个基于分布式协调机制相互通信的协调终端,其中,至少三个所述协调终端中包括一个领导协调终端;一个所述数据库代理与所述数据库集群中的一个数据库对应设置在一台服务器上,每个所述数据库代理中均保存各个所述协调终端的地址;所述数据库代理,用于定时检测对应数据库的读写状态,并将检测得到的数据库读写状态信息发送给所述领导协调终端;所述领导协调终端,用于接收来自各个数据库代理的数据库读写状态信息,在超过预定时限未接收到任意一个所述数据库读写状态信息,或接收到的任意一个数据库读写状态信息为异常时,确定所述数据库集群中存在单点故障。
【技术特征摘要】
1.一种数据库集群单点故障的监控系统,应用于包括若干个数据库的数据库集群中,所述数据库包括主库或从库,其特征在于,所述监控系统包括:若干个数据库代理,至少三个基于分布式协调机制相互通信的协调终端,其中,至少三个所述协调终端中包括一个领导协调终端;一个所述数据库代理与所述数据库集群中的一个数据库对应设置在一台服务器上,每个所述数据库代理中均保存各个所述协调终端的地址;所述数据库代理,用于定时检测对应数据库的读写状态,并将检测得到的数据库读写状态信息发送给所述领导协调终端;所述数据库代理能够对数据库的读写状态进行设置,不能够对数据库中的其他数据进行操作;所述领导协调终端,用于接收来自各个数据库代理的数据库读写状态信息,在超过预定时限未接收到任意一个所述数据库读写状态信息,或接收到的任意一个数据库读写状态信息为异常时,确定所述数据库集群中存在单点故障。2.根据权利要求1所述的系统,其特征在于,所述领导协调终端,具体用于:在超过预定时限未接收到所述主库的读写状态信息或接收到的所述主库的读写状态信息为异常时,确定所述主库发生单点故障,将发生单点故障的所述主库标记为旧主库,通知与读写状态信息正常的从库对应的数据库代理上报所述从库的数据更新状况信息;根据各所述数据库代理上报的所述从库的数据更新状况信息,将数据更新数量最多的从库确定为新主库,指示与所述新主库对应的数据库代理将所述新主库的数据读写状态设置为可读可写;与所述从库对应的数据库代理,根据来自所述领导协调终端的所述通知,获取对应从库的数据更新状况信息,将获取到的从库数据更新状况信息发送给所述领导协调终端;在接收到来自所述领导协调终端的所述指示的情况下,将对应从库的数据读写状态设置为可读可写。3.根据权利要求2所述的系统,其特征在于,所述领导协调终端,还用于:将所述新主库的数据更新状况信息发送给与所述从库对应的数据库代理;与所述从库对应的数据库代理,还用于根据来自所述领导协调终端的所述新主库的数据更新状况信息、以及对应从库的数据更新状况信息,确定对应从库中缺乏的数据,从所述新主库中读取所确定缺乏的数据、并将读取的数据存入到对应从库中。4.根据权利要求3所述的系统,其特征在于,所述领导协调终端,还用于:在能够与所述旧主库对应的数据库代理通信的情况下,指示与所述旧主库对应的数据库代理将所述旧主库的读写状态设置为只读、上报所述旧主库中的数据更新状况信息,并将接收到的所述旧主库的数据更新状况信息发送给与所述新主库对应的数据库代理和与所述从库对应的数据库代理;与所述旧主库对应的数据库代理,还用于:根据来自所述领导协调终端的所述指示,将对应所述旧主库的读写状态设置为只读,获取对应所述旧主库的数据更新状况信息,将获取到的旧主库数据更新状况信息发送给所述领导协调终端;与所述新主库对应的数据库代理,还用于:根据来自所述领导协调终端的所述旧主库的数据更新状况信息、以及对应的所述新主库的数据更新状况信息,确定对应的所述新主库中缺乏的数据,从所述旧主库中读取所确定缺乏的数据、并将读取的数据存入到对应所述新主库中;与所述从库对应的数据库代理,还用于:根据来自所述领导协调终端的所述旧主库的数据更新状况信息、以及对应从库的数据更新状况信息,确定对应从库中缺乏的数据,从所述旧主库中读取所确定缺乏的数据、并将读取的数据存入到对应从库中。5.根据权利要求1所述的系统,其特征在于,所述领导协调终端,还用于:在接收到的所述从库的读写状态信息为异常时,确定所述从库发生单点故障,指示与该从库对应的数据库代理将该从库的读写状态设置为不可用;与所述从库对应的数据库代理,还用于:在接收到来自所述领导协调终端的所述指示的情况下,将对应从库的读写状态设置为...
【专利技术属性】
技术研发人员:朱金清,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。