监测主从数据库同步延时的方法、监控终端及系统与流程

文档序号:18885025发布日期:2019-10-15 20:46阅读:547来源:国知局
监测主从数据库同步延时的方法、监控终端及系统与流程

本申请涉及数据库同步领域,尤其涉及一种监测主从数据库同步延时的方法、监控终端及系统。



背景技术:

如今大型网站的数据库通常为mysql的主从配置,实现读写分离,以减轻数据库压力。在实现数据库读写分离的时候,通过业务逻辑判断主库主要用于写操作,从库用于读操作,主从库之间通过主从数据复制保证数据的一致性。但主从复制需要一定的时间,因此存在主从数据库同步延时的问题。

现有技术中,mysql自带的监控是基于已读取主库binlog位置position的时间点和从库上已经执行主库上binlog的position位置上的时间点来做时间差的,不能准确的反应主从延时的真实差距。如遇到大事务的情况,本身执行时间和传输时间就不能计算在主从延时时间内,从而造成一种假象同步无延时,seconds_behind_maste为0的现象。



技术实现要素:

本申请实施例提供了一种监测主从数据库同步延时的方法、监控终端及系统,可以准确监测主从数据库件的数据同步延时。

第一方面,本申请实施例提供了一种监测主从数据库同步延时的方法,所述方法应用于主从数据库同步系统,所述系统包括一个主库、一个或多个从库、时间服务器及监控终端,所述方法包括:所述监控终端按照预设时间间隔将主库监控表中的时间字段更新为当前系统时间;其中,所述主库监控表包括n个id字段,及每个所述id字段对应的当前系统时间字段,n为非负数;确定所述主库监控表中id值为i时对应的当前系统时间为s1;其中,所述i为0至n-1中的任意一个整数;查询从库监控时间表id值为i时对应字段的字段值s2;根据s1和s2的值,计算所述主数据库和所述从数据库的之间的延时时长;根据所述延时时长判断是否需要生成告警信息。

实施本申请实施例,可以精准的判断mysql主从数据库之间的数据同步延时。通过使mysql主从数据库服务器都采用统一的时间服务器同步,可以保证系统时间是统一的,根据系统时间的判断更直观的表现出mysql主从数据库之间的延时问题。

在一种可能的实现方式中,所述监控终端按照预设时间间隔将主库监控表中的时间字段更新为当前系统时间s1之前,所述方法还包括:所述监控终端创建所述主库监控表。

在另外一种可能的实现方式中,所述根据所述延时时长判断是否需要发出告警信息包括:若所述延时时长超过预设阈值,则发出所述告警信息。

在另外一种可能的实现方式中,所述延时时长为60秒。

在另外一种可能的实现方式中,所述预设时间间隔为1秒。

第二方面,本申请实施例提供了一种监控终端,所述监控终端用于主从数据库同步系统,所述系统包括一个主库、一个或多个从库、时间服务器及所述监控终端,所述监控终端包括:更新单元,用于按照预设时间间隔将主库监控表中的时间字段更新为当前系统时间;其中,所述主库监控表包括n个id字段,及每个所述id字段对应的当前系统时间字段,n为非负数;确定单元,用于确定所述主库监控表中id值为i时对应的当前系统时间为s1;其中,所述i为0至n-1中的任意一个整数;查询单元,用于查询从库监控时间表id值为i时对应字段的字段值s2;计算单元,用于根据s1和s2的值,计算所述主数据库和所述从数据库的之间的延时时长;判断单元,用于根据所述延时时长判断是否需要生成告警信息。

实施本申请实施例,可以精准的判断mysql主从数据库之间的数据同步延时。通过使mysql主从数据库服务器都采用统一的时间服务器同步,可以保证系统时间是统一的,根据系统时间的判断更直观的表现出mysql主从数据库之间的延时问题。

在一种可能的实现方式中,所述监控终端还包括:创建单元,用于在所述更新单元按照预设时间间隔将主库监控表中的时间字段更新为当前系统时间之前,创建所述主库监控表。

在另外一种可能的实现方式中,所述判断单元具体用于:若所述延时时长超过预设阈值,则发出所述告警信息。

在另外一种可能的实现方式中,所述延时时长为60秒。

在另外一种可能的实现方式中,所述时间间隔为1秒。

第三方面,本申请实施例提供了一种主从数据库同步系统,所述主从数据库同步系统包括一个主库、一个或多个从库、时间服务器及所述监控终端;其中,所述监控终端为本申请实施例第二方面或第二方面的任意一种实现方式提供的监控终端。

第四方面,本申请实施例提供了另外一种监控终端,该监控终端可以包括存储器、处理器;其中:

存储器用于存储计算机程序指令;

处理器用于调用所述计算机程序指令,以使所述监控终端执行本申请实施例第一方面或第一方面的任意一种实现方式提供的监测主从数据库同步延时的方法。

第五方面,本申请实施例提供了一种计算机程序产品,当所述计算机程序产品在监控设备上运行时,使得所述监控设备执行本申请实施例第一方面或第一方面的任意一种实现方式提供的监测主从数据库同步延时的方法。

第六方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当所述指令在监控设备上运行时,使得所述监控设备执行本申请实施例第一方面或第一方面的任意一种实现方式提供的监测主从数据库同步延时的方法。

附图说明

图1为本申请实施例提供的主从数据库同步系统的网络架构图;

图2为本申请实施例提供的监测主从数据库同步延时的方法流程图;

图3为本申请实施例提供的主库监控表示意图;

图4为本申请另一实施例提供的监测主从数据库同步延时的方法流程图;

图5为本申请实施例提供的监控终端结构示意图;

图6为本申请另一实施例提供的监控终端结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。

首先,结合图1介绍本申请实施例提供的主从数据库同步延时系统。

如图1所示,主从数据库同步延时系统10可以包括:一个主数据库100(以下实施例中简称主库)、一个或多个从数据库200(以下实施例中简称从库)、监控终端300以及时间服务器400。其中,主库100和从库200均可为服务器,具体可以但不限于是应用服务器,监控终端也可以是服务器。主库100可以与一个或多个从库200连接,主库100可以用于写数据,从库200可以用于读取主库100中的输入。监控终端300可以与主库100和从库200连接,用于监控主库100可从库200之间的数据同步时延。时间服务器400可以与主库100和从库200连接,用于使主库100和从库200都采用统一的时间服务器同步,可以保证系统时间是统一的,从而根据系统时间判断出主库100可从库200之间的数据同步延时。

接下来结合图1提供的主从数据库同步延时系统10介绍本申请实施例提供的监测主从数据库同步时延的方法,该方法可以由监控终端执行。

如图2所示,监测主从数据库同步时延的方法至少可以包括以下几个步骤:

s201:按照预设时间间隔将主库监控表中的时间字段更新为当前系统时间。

其中,主库监控表包括n个id字段,及每个id字段对应的当前系统时间字段,n为非负数。

具体地,n的值可以但不限于为60。n为60时,主控监控表可以如图3所示。从图3可以看出,id的值可以依次从0取到59。check_time字段为时间服务器400提供的系统时间。系统时间的秒值即为id值。

具体地,上述预设时间间隔可以但不限于是1秒。2秒、5秒等。

s202:确定主库监控表中id值为i时对应的当前系统时间为s1。

其中,所述i为0至n-1中的任意一个整数。

例如,若i=6,则s1=2019-04-1717:29:06。

s203:查询从库监控时间表id值为i时对应字段的字段值s2。

具体地,从库200可以读取主库100的数据。从库200可以读取主库监控表中的id值,并将读取该id值的时刻作为从库监控时间表中check_time字段的值。例如,读取id值为6的时刻为2019-04-1717:29:35,则从库监控时间表中id=6时,对应字段的字段值s2=2019-04-1717:29:35。

具体地,可以将s2的值转为时间戳,暂存在监控终端30的存储器中。

s204:根据s1和s2的值,计算主数据库和从数据库的之间的延时时长。

具体地,若id=6时,s1=2019-04-1717:29:06,s2=2019-04-1717:29:35。则主数据库和从数据库之间的延时时长δs=s2-s1=29秒。

s205:根据延时时长判断是否需要生成告警信息。

具体地,上述告警信息的发送方式可以由监控人员在监控终端30上设置。具体的发送方式可以但不限于是短信、邮件、电话等。

例如,监控人员可以在监控终端30上设置告警信息的发送方式为短信,并填写可接收短信的号码。则在监控终端30根据延时时长判断出需要生产告警信息后,生成告警信息,并将该告警信息发送至监控人员预先填写的号码。以便监控人员及时发现主数据库与从数据库之间的数据同步延时时长。

实施本申请实施例可以精准的判断mysql主从数据库之间的数据同步延时。通过使mysql主从数据库服务器都采用统一的时间服务器同步,可以保证系统时间是统一的,根据系统时间的判断更直观的表现出mysql主从数据库之间的延时问题。此外,通过更新主库监控表中的时间字段成功与否可以判断主库是否可用,起到实时监测主库可用状态的作用,便于监控终端分析mysql数据库的可用性情况。

本申请实施例还提供了一种具体的监测主从数据库同步时延的方法,该方法可以由监控终端执行。

如图4所示,监测主从数据库同步时延的方法至少可以包括以下几个步骤:

s401:创建主库监控表。

具体地,主库监控表包括n个id字段,及每个id字段对应的当前系统时间字段,n为非负数。

具体地,创建主库监控表后,填写主库监控表中的每个id字段,及该id字段对应的check_time字段。其中,check_time字段即为时间服务器400提供的系统时间。系统时间的秒值即为id值。

s402:按照预设时间间隔将主库监控表中的时间字段更新为当前系统时间。

具体地,n的值可以但不限于为60。n为60时,主控监控表可以如图3所示。从图3可以看出,id的值可以依次从0取到59。check_time字段为时间服务器400提供的系统时间。系统时间的秒值即为id值。

具体地,上述预设时间间隔可以但不限于是1秒。2秒、5秒等。

s403:确定主库监控表中id值为i时对应的当前系统时间为s1。

其中,所述i为0至n-1中的任意一个整数。

例如,若i=6,则s1=2019-04-1717:29:06。

s404:查询从库监控时间表id值为i时对应字段的字段值s2。

具体地,从库200可以读取主库100的数据。从库200可以读取主库监控表中的id值,并将读取该id值的时刻作为从库监控时间表中check_time字段的值。例如,读取id值为6的时刻为2019-04-1717:29:35,则从库监控时间表中id=6时,对应字段的字段值s2=2019-04-1717:29:35。

s405:根据s1和s2的值,计算主数据库和从数据库的之间的延时时长。

具体地,若id=6时,s1=2019-04-1717:29:06,s2=2019-04-1717:29:35。则主数据库和从数据库之间的延时时长δs=s2-s1=29秒。

s406:若延时时长超过预设阈值,则发出所述告警信息。

具体地,上述预设阈值可以但不限于是30秒、45秒、60秒、90秒等。

假设,上述预设阈值为60秒,则当上述δs的值大于60秒时,监控终端30可以发出告警信息。

具体地,上述告警信息的发送方式可以由监控人员在监控终端30上设置。具体的发送方式可以但不限于是短信、邮件、电话等。

例如,监控人员可以在监控终端30上设置告警信息的发送方式为短信,并填写可接收短信的号码。则在监控终端30根据延时时长判断出需要生产告警信息后,生成告警信息,并将该告警信息发送至监控人员预先填写的号码。以便监控人员及时发现主数据库与从数据库之间的数据同步延时时长。

实施本申请实施例可以精准的判断mysql主从数据库之间的数据同步延时。通过使mysql主从数据库服务器都采用统一的时间服务器同步,可以保证系统时间是统一的,根据系统时间的判断更直观的表现出mysql主从数据库之间的延时问题。此外,通过更新主库监控表中的时间字段成功与否可以判断主库是否可用,起到实时监测主库可用状态的作用,便于监控终端分析mysql数据库的可用性情况。

为了更好地理解本申请实施例提供的监测主从数据库同步时延的方法,本申请实施例还提供了一种监控终端。

如图5所示,监控终端50可以包括:更新单元510、确定单元520、查询单元530、计算单元540及判断单元550。其中:

更新单元510,用于按照预设时间间隔将主库监控表中的时间字段更新为当前系统时间。

其中,主库监控表包括n个id字段,及每个id字段对应的当前系统时间字段,n为非负数。

具体地,n的值可以但不限于为60。n为60时,主控监控表可以如图3所示。从图3可以看出,id的值可以依次从0取到59。check_time字段为时间服务器400提供的系统时间。系统时间的秒值即为id值。

具体地,上述预设时间间隔可以但不限于是1秒。2秒、5秒等。

确定单元520,用于确定所述主库监控表中id值为i时对应的当前系统时间为s1。

其中,所述i为0至n-1中的任意一个整数。

例如,若i=6,则s1=2019-04-1717:29:06。

查询单元530,用于查询从库监控时间表id值为i时对应字段的字段值s2。

具体地,从库200可以读取主库100的数据。从库200可以读取主库监控表中的id值,并将读取该id值的时刻作为从库监控时间表中check_time字段的值。例如,读取id值为6的时刻为2019-04-1717:29:35,则从库监控时间表中id=6时,对应字段的字段值s2=2019-04-1717:29:35。

具体地,可以将s2的值转为时间戳,暂存在监控终端30的存储器中。

计算单元540,用于根据s1和s2的值,计算所述主数据库和所述从数据库的之间的延时时长。

具体地,若id=6时,s1=2019-04-1717:29:06,s2=2019-04-1717:29:35。则主数据库和从数据库之间的延时时长δs=s2-s1=29秒。

判断单元550,用于根据所述延时时长判断是否需要生成告警信息。

具体地,上述告警信息的发送方式可以由监控人员在监控终端30上设置。具体的发送方式可以但不限于是短信、邮件、电话等。

例如,监控人员可以在监控终端30上设置告警信息的发送方式为短信,并填写可接收短信的号码。则在监控终端30根据延时时长判断出需要生产告警信息后,生成告警信息,并将该告警信息发送至监控人员预先填写的号码。以便监控人员及时发现主数据库与从数据库之间的数据同步延时时长。

在一些实施例中,监控终端50还可以包括创建单元,用于在所述更新单元510按照预设时间间隔将主库监控表中的时间字段更新为当前系统时间之前,创建所述主库监控表。

在一些实施例中,判断单元30具体用于:若所述延时时长超过预设阈值,则发出所述告警信息。

具体地,上述预设阈值可以但不限于是30秒、45秒、60秒、90秒等。

假设,上述预设阈值为60秒,则当上述δs的值大于60秒时,监控终端30可以发出告警信息。

实施本申请实施例可以精准的判断mysql主从数据库之间的数据同步延时。通过使mysql主从数据库服务器都采用统一的时间服务器同步,可以保证系统时间是统一的,根据系统时间的判断更直观的表现出mysql主从数据库之间的延时问题。此外,通过更新主库监控表中的时间字段成功与否可以判断主库是否可用,起到实时监测主库可用状态的作用,便于监控终端分析mysql数据库的可用性情况。

本申请实施例还提供了另外一种监控终端。如图6所示,监控终端60可以包括:至少一个处理器601,例如cpu,至少一个网络接口604,用户接口603,存储器605,至少一个通信总线602,可选地,还可以包括显示屏606。其中,通信总线602用于实现这些组件之间的连接通信。其中,用户接口603可以包括触摸屏、键盘或鼠标等等。网络接口604可选的可以包括标准的有线接口、无线接口(如wi-fi接口),通过网络接口604可以与服务器建立通信连接。存储器605可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器,存储器605包括本发明实施例中的flash。存储器605可选的还可以是至少一个位于远离前述处理器601的存储系统。如图6所示,作为一种计算机存储介质的存储器605中可以包括操作系统、网络通信模块、用户接口模块以及程序指令。

需要说明的是,网络接口604可以连接接收器、发射器或其他通信模块,其他通信模块可以包括但不限于wifi模块、蓝牙模块等,可以理解,本发明实施例中图像处理装置也可以包括接收器、发射器和其他通信模块等。

处理器601可以用于调用存储器605中存储的程序指令,并使监控终端60执行以下操作:

按照预设时间间隔将主库监控表中的时间字段更新为当前系统时间;其中,所述主库监控表包括n个id字段,及每个所述id字段对应的当前系统时间字段,n为非负数;

确定所述主库监控表中id值为i时对应的当前系统时间为s1;其中,所述i为0至n-1中的任意一个整数;

查询从库监控时间表id值为i时对应字段的字段值s2;

根据s1和s2的值,计算所述主数据库和所述从数据库的之间的延时时长;

根据所述延时时长判断是否需要生成告警信息。

在一些实施例中,监控终端60按照预设时间间隔将主库监控表中的时间字段更新为当前系统时间s1之前,还执行:创建所述主库监控表。

在一些实施例中,监控终端60根据所述延时时长判断是否需要发出告警信息包括:若所述延时时长超过预设阈值,则发出所述告警信息。

在一些实施例中,所述延时时长为60秒。

在一些实施例中,所述预设时间间隔为1秒。

实施本申请实施例可以精准的判断mysql主从数据库之间的数据同步延时。通过使mysql主从数据库服务器都采用统一的时间服务器同步,可以保证系统时间是统一的,根据系统时间的判断更直观的表现出mysql主从数据库之间的延时问题。此外,通过更新主库监控表中的时间字段成功与否可以判断主库是否可用,起到实时监测主库可用状态的作用,便于监控终端分析mysql数据库的可用性情况。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本发明实施例装置中的模块可以根据实际需要进行合并、划分和删减。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1