CN106933843A - 数据库心跳检测方法以及装置 - Google Patents

数据库心跳检测方法以及装置 Download PDF

Info

Publication number
CN106933843A
CN106933843A CN201511019216.3A CN201511019216A CN106933843A CN 106933843 A CN106933843 A CN 106933843A CN 201511019216 A CN201511019216 A CN 201511019216A CN 106933843 A CN106933843 A CN 106933843A
Authority
CN
China
Prior art keywords
time
information
master library
log
storehouse
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201511019216.3A
Other languages
English (en)
Other versions
CN106933843B (zh
Inventor
周正中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201511019216.3A priority Critical patent/CN106933843B/zh
Publication of CN106933843A publication Critical patent/CN106933843A/zh
Application granted granted Critical
Publication of CN106933843B publication Critical patent/CN106933843B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种数据库心跳检测方法,包括:创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息;比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:读取所述备库的重做日志文件中写入时间最晚的日志记录的第二时间信息;判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值;若是,则执行所述主库和所述备库的切换。该方法降低了主库出现异常的概率,减少了主备库切换次数,提升了数据库的处理效率。

Description

数据库心跳检测方法以及装置
技术领域
本申请涉及数据库领域,具体涉及一种数据库心跳检测方法。本申请同时提供一种数据库心跳检测装置,此外,本申请还提供另外两种数据库心跳检测方法以及装置。
背景技术
随着企业信息系统的广泛应用和深入发展,对于一些关键的信息系统,比如应用系统、数据库和存储网络等,维持高可用性是非常重要的,对于这些信息系统的需求,主要体现在确保关键数据的高可用性,为了保护关键数据免受计划内以及计划外停机的影响,基于高可用架构的集群日益被接受并广泛使用,作为高可用集群的基础组件,心跳(Heartbeat)监测确保了高可用集群的数据的可靠性。Heartbeat是Linux-HA工程的一个组成部分,它实现了一个高可用集群系统,心跳监测技术和集群通信是高可用集群的两个关键组件,在Heartbeat项目里,由heartbeat模块实现了这两个功能,heartbeat包括两个核心部分:心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,相互之间通过发送报文通知对方自身当前的状态,如果在指定的时间内未收到对方发送的报文,认为对方失效,启动资源接管模块来接管运行在对方主机上的资源或者服务。
现有的数据库心跳检测方法,在主库创建一个数据表,该数据表汇总包含一个用于存储时间戳的心跳字段;心跳检测时,首先连接到主库,将当前时间戳更新到创建的数据表的心跳字段,若更新成功,则表示心跳成功;若更新失败,或者在一定时间段内数据库没有返回响应,则表示心跳失败,多次心跳尝试失败后,进入Failover(失效转移)流程;进入Failover(失效转移)流程后,根据主库中最后一次更新失败的时间,以及备库中创建的数据表的心跳字段记录的时间,比较得出主库和备库之间延迟的时间,如果延迟的时间在允许范围内,则执行主库和备库的切换,否则不切换。
上述现有技术所述的数据库心跳检测方法存在明显的缺陷。
所述数据库心跳检测方法,首先将当前时间戳更新到主库中预先创建的数据表中记录心跳时间的字段,这一更新操作需要加锁,在更新过程中,会执行写重做日志(Redo Log)、审计日志、统计信息等操作,主库的处理繁忙,响应时间容易抖动,可能导致更新超时,从而引发主库和备库的切换;同时,由于每一次更新会占用一个连接,如果出现更新超时,会重复发起更新请求,占用多个连接,甚至可能将主库所有允许的连接全部占用,从而导致数据库故障;
此外,在进行心跳检测时,需要连接到主库,通过网络连接并进行认证,主库通过创建进程来处理连接,由于连接的过程较长,因此,一旦任意节点出现抖动或堵塞,都可能造成数据库心跳异常,从而引发主库和备库的切换。
发明内容
本申请提供一种数据库心跳检测方法,以解决现有技术存在的响应时间抖动和容易引发主备切换的问题。本申请同时提供一种数据库心跳检测装置,此外,本申请还提供另外两种数据库心跳检测方法以及装置。
本申请提供一种数据库心跳检测方法,包括:
创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;
读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息;
比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:
读取所述备库的重做日志文件中写入时间最晚的日志记录的第二时间信息;
判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值;
若是,则执行所述主库和所述备库的切换。
可选的,所述日志记录中包含该日志记录写入所述重做日志文件时的时间信息。
可选的,所述读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息步骤执行前,执行下述步骤:
实时获取当前的时间信息。
可选的,所述比较所述第一时间信息和预先获取的时间信息步骤,若二者的时间差小于或者等于所述时间阈值,执行下述步骤:
按照预先设置的心跳检测时间间隔执行延时,延时执行完成后,执行所述实时获取当前的时间信息步骤。
可选的,所述判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值步骤中,若判断结果为否,执行下述步骤:
发出所述主库心跳异常的告警消息,并执行所述实时获取当前的时间信息步骤。
可选的,所述工作进程,是基于fork()函数创建的。
可选的,所述创建数据库进程步骤执行后,所述读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息步骤执行前,执行下述步骤:
读取所述时间间隔的配置参数;
按照所述时间间隔,分别向所述主库和所述备库的重做日志文件中写入各自对应的日志记录。
本申请提供一种数据库心跳检测装置,包括:
工作进程创建单元,用于创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;
第一时间信息读取单元,用于读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息;
第一时间信息比较单元,用于比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:
第二时间信息读取单元,用于读取所述备库的重做日志文件中写入时间最晚的日志记录的第二时间信息;
时间信息判断单元,用于判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值;
若是,则进入主备切换执行单元;
所述主备切换执行单元,用于执行所述主库和所述备库的切换。
可选的,所述数据库心跳检测装置,包括:
当前时间获取单元,用于实时获取当前的时间信息。
可选的,所述数据库心跳检测装置,包括:
延时单元,用于按照预先设置的心跳检测时间间隔执行延时。
可选的,所述数据库心跳检测装置,包括:
告警消息发出单元,用于发出所述主库心跳异常的告警消息。
可选的,所述数据库心跳检测装置,包括:
配置参数读取单元,用于读取所述时间间隔的配置参数;
日志记录写入单元,用于按照所述时间间隔,分别向所述主库和所述备库的重做日志文件中写入各自对应的日志记录。
本申请另外提供一种数据库心跳检测方法,包括:
创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;
读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息;
比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:
读取所述备库的重做日志文件中写入时间最晚的日志记录、在所述备库的重做日志文件中的第二位置信息;
判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值;
若是,则执行所述主库和所述备库的切换。
可选的,所述读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息步骤执行前,执行下述步骤:
实时获取当前的时间信息。
可选的,所述判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值步骤中,若判断结果为否,执行下述步骤:
发出所述主库心跳异常的告警消息,并执行所述实时获取当前的时间信息步骤。
本申请另外提供一种数据库心跳检测装置,包括:
工作进程创建单元,用于创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;
第一时间位置信息读取单元,用于读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息;
第一时间信息比较单元,用于比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:
第二位置信息读取单元,用于读取所述备库的重做日志文件中写入时间最晚的日志记录、在所述备库的重做日志文件中的第二位置信息;
位置信息判断单元,用于判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值;
若是,则进入主备切换执行单元;
所述主备切换执行单元,用于执行所述主库和所述备库的切换。
可选的,所述数据库心跳检测装置,包括:
当前时间获取单元,用于实时获取当前的时间信息。
可选的,所述数据库心跳检测装置,包括:
告警消息发出单元,用于发出所述主库心跳异常的告警消息。
本申请提供第三种数据库心跳检测方法,包括:
创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;
读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息;
比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:
读取所述备库的重做日志文件中写入时间最晚的日志记录的第二时间信息,以及该日志记录在所述备库的重做日志文件中的第二位置信息;
判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值,以及所述第一位置信息与所述第二位置信息之间的位置差是否小于预设的位置差阈值;
若是,则执行所述主库和所述备库的切换。
可选的,所述读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息步骤执行前,执行下述步骤:
实时获取当前的时间信息。
可选的,所述判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值,以及所述第一位置信息与所述第二位置信息之间的位置差是否小于预设的位置差阈值步骤,包括:
判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值;
若小于所述时间差阈值,则进一步判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值;
若小于所述位置差阈值,执行所述主库和所述备库的切换;
若大于或者等于所述位置差阈值,发出所述主库心跳异常的告警消息,并执行所述实时获取当前的时间信息步骤;
若大于或者等于所述时间差阈值,发出所述主库心跳异常的告警消息,并执行所述实时获取当前的时间信息步骤。
本申请提供第三种数据库心跳检测装置,包括:
工作进程创建单元,用于创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;
第一时间位置信息读取单元,用于读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息;
第一时间信息比较单元,用于比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:
第二时间位置信息读取单元,用于读取所述备库的重做日志文件中写入时间最晚的日志记录的第二时间信息,以及该日志记录在所述备库的重做日志文件中的第二位置信息;
时间位置信息判断单元,用于判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值,以及所述第一位置信息与所述第二位置信息之间的位置差是否小于预设的位置差阈值;
若是,则进入主备切换执行单元;
所述主备切换执行单元,用于执行所述主库和所述备库的切换。
可选的,所述数据库心跳检测装置,包括:
当前时间获取单元,用于实时获取当前的时间信息。
可选的,所述时间位置信息判断单元,包括:
时间信息判断子单元,用于判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值;
若小于所述时间差阈值,则进入位置信息判断子单元;
若大于或者等于所述时间差阈值,则进入告警消息发出单元;
所述告警消息发出单元,用于发出所述主库心跳异常的告警消息;
所述位置信息判断子单元,用于判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值;
若小于所述位置差阈值,则进入所述主备切换执行单元;
若大于或者等于所述时间差阈值,则进入所述告警消息发出单元。
与现有技术相比,本申请具有以下优点:
本申请所述的数据库心跳检测方法,创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息;比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:读取所述备库的重做日志文件中写入时间最晚的日志记录的第二时间信息;判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值;若是,则执行所述主库和所述备库的切换。
所述数据库心跳检测方法,通过创建的所述待检测数据库的工作进程,分别向主库和备库的重做日志文件中写入日志记录,读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,与预先获取的所述时间信息进行比较,来判断所述主库是否出现异常,实现简单,不需要连接到所述主库判断所述主库是否出现异常,避免了占用所述主库的连接,降低了所述主库由于连接过多导致的抖动、处理超时,甚至是系统故障,从而降低了所述主库出现异常的概率;
此外,所述数据库心跳检测方法,在所述主库出现异常时,根据所述第一时间信息与所述第二时间信息的时间差,进一步判断是否进行所述主库和所述备库的切换,若所述时间差小于预设的时间差阈值时,则进行所述主库和所述备库的切换,由所述备库替代所述主库提供相应数据库服务,减少了所述主库和所述备库的切换次数,提升了所述待检测数据库的处理效率。
附图说明
图1是本申请实施例提供的一种数据库心跳检测方法处理流程图;
图2是本申请实施例提供的一种数据库心跳检测装置示意图;
图3是本申请实施例提供的另一种数据库心跳检测方法处理流程图;
图4是本申请实施例提供的另一种数据库心跳检测装置示意图;
图5是本申请实施例提供的第三种数据库心跳检测方法处理流程图;
图6是本申请实施例提供的第三种数据库心跳检测装置示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请提供一种数据库心跳检测方法,同时,本申请还提供一种数据库心跳检测装置,此外,本申请还提供了另外两种数据库心跳检测方法以及装置,以下分别结合本申请提供的实施例的附图逐一进行详细说明,并且对方法的各个步骤进行说明。
本申请提供的数据库心跳检测方法实施例如下:
参照图1,其示出了本实施例提供的一种数据库心跳检测方法处理流程图,以下结合图1对本实施例提供的一种数据库心跳检测方法进行说明,并且对该方法的各个步骤进行说明;此外,本实施例提供的一种数据库心跳检测方法的具体步骤之间的顺序关系请根据图1确定。
步骤S101,创建待检测数据库的工作进程。
在对数据安全要求比较高的数据库系统中,数据库通常由主库和备库组成,并且主库和备库对应的数据库服务器同时运行,主库中的数据发生变化之后,立刻将该数据变化同步到备库中,确保主库和备库数据的一致性;在主库发生故障时,将对外提供数据服务的数据库服务器,从主库切换到备库,保证对外提供的数据服务正常进行。本申请提供的数据库心跳检测方法,通过查询主库产生的重做日志(Redo Log)进行心跳检测,即检测所述主库的运行是否正常,如果主库出现异常,则进行主备库切换。
所述待检测数据库包括:MySQL、ORACLE、DB2、SQL Server、Sybase、Access等数据库。
本实施例中,在所述待检测数据库启动时,基于fork()函数创建工作进程(worker process)。所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录。所述日志记录是指,向所述主库的重做日志文件中写入的重做日志(Redo Log),以及向所述备库的重做日志文件中写入的重做日志(Redo Log)。
在具体实施时,在所述待检测数据库的工作进程创建之后,执行下述步骤:
步骤1、读取所述时间间隔的配置参数;
所述时间间隔是可配置的,根据具体实施场景的不同,或者数据流量的大小,针对不同时间段,设置相应的时间间隔;
所述时间间隔的配置参数,是用于表征所述时间间隔在在不同时间段对应的时间间隔的参数。比如电子交易平台的数据库系统,在深夜02:00至05:00这一时间段,用户活动较少,可以设置较长的时间间隔,再比如电子交易平台的线上促销活动期间,数据流量较大,此时,时间间隔的设置较小。
步骤2、按照所述时间间隔,分别向所述主库和所述备库的重做日志文件中写入各自对应的日志记录。
优选的,所述日志记录中包含该日志记录写入所述重做日志文件时的时间信息。比如,将所述日志记录写入所述重做日志文件时的时间戳,作为所述日志记录的一部分,写入所述重做日志文件中。
步骤S102,读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息。
具体实施时,在本步骤执行之前,执行下述步骤:
实时获取当前的时间信息。
比如实时获取所述待检测数据库所在操作系统当前的系统时间,或者实时通过网络获取当前时间点的时间戳。
本步骤在读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息时,首先要确定所述主库的重做日志文件中写入时间最晚的日志记录,本实施例中,根据所述日志记录的时间信息,相互比较写入所述主库的重做日志文件的各个日志记录的时间信息,确定写入时间最晚的日志记录,并读取该日志记录的第一时间信息。
所述第一时间信息,是指该日志记录写入所述主库的重做日志文件时的时间信息,比如在将该日志记录写入所述主库的重做日志文件时,实时获取的所述主库所在操作系统当前的系统时间,或者通过网络实时获取的当前时间点的时间戳。
需要说明的是,在确定所述主库的重做日志文件中写入时间最晚的日志记录时,还可以采用其他方式实现,比如将所述主库的重做日志文件中写入的日志记录的时间信息,分别与当前实时获取的时间戳进行比较,从而确定写入时间最晚的日志记录,在此不做限定。
步骤S103,比较所述第一时间信息和预先获取的时间信息。
本实施例中,根据上述步骤S102获取的所述第一时间信息,以及预先获取的所述时间信息,比较所述第一时间信息和预先获取的所述时间信息;
若所述二者的时间差大于预设的时间阈值,表示所述主库出现异常,则进入Failover(失效转移)流程,执行下述步骤S104和步骤S105;
若所述二者的时间差小于或者等于所述时间阈值,则按照预先设置的心跳检测时间间隔执行延时,延时执行完成后,执行所述实时获取当前的时间信息步骤。比如通过sleep()函数让线程停留一段时间之后,执行所述实时获取当前的时间信息步骤。
所述心跳检测时间间隔,与上述步骤S101中所述的时间间隔类似,也是可配置的,根据具体实施场景的不同,或者数据流量的大小,配置相应的心跳检测时间间隔。
步骤S104,读取所述备库的重做日志文件中写入时间最晚的日志记录的第二时间信息。
本步骤和下述步骤S105得以实施的前提是,上述步骤S103中所述第一时间信息和预先获取的所述时间信息的时间差大于所述时间阈值,即所述主库出现异常,需要进行失效转移,执行本步骤和下述步骤S105,将出现异常的所述主库与所述备库进行切换。
所述第二时间信息,是指该日志记录写入所述备库的重做日志文件时的时间信息,比如在将该日志记录写入所述备库的重做日志文件时,实时获取的所述备库所在操作系统当前的系统时间,或者通过网络实时获取的当前时间点的时间戳。
本步骤读取所述备库的重做日志文件中写入时间最晚的日志记录的第二时间信息,与上述步骤S102读取所述主库的重做日志文件中的所述第一时间信息的读取过程类似,参见上述步骤S102中的详细说明即可,此处不再赘述。
步骤S105,判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值。
根据上述步骤S102读取的所述第一时间信息,以及上述步骤S104读取的所述第二时间信息,判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值;
所述时间差,是指所述主库和所述备库的时间延迟;
若所述时间差小于所述时间差阈值,即所述主库和所述备库的时间延迟小于所述时间差阈值,表明所述主库和所述备库的时间延迟在允许的范围内,执行下述步骤S106,进行所述主库和所述备库的切换;
若所述时间差大于或者等于所述时间差阈值,表明所述主库和所述备库的时间延迟超出允许的范围,则不进行所述主库和所述备库的切换,发出所述主库心跳异常的告警消息,并执行上述步骤S102所述实时获取当前的时间信息步骤。
步骤S106,执行所述主库和所述备库的切换。
本步骤得以实施的前提是,上述步骤S105所述时间差小于所述时间差阈值,即所述主库和所述备库的时间延迟在允许的范围内,执行本步骤,进行所述主库和所述备库的切换,由所述备库替代所述主库提供相应数据库服务,确保所述待检测数据库正常运行。
所述数据库心跳检测方法,基于所述主库产生的重做日志文件,对所述主库进行心跳检测,通过比较所述主库的第一时间信息和当前时间点的时间信息,来判断所述主库是否出现异常,实现简单,不需要连接到所述主库判断所述主库是否出现异常,避免了占用所述主库的连接,降低了所述主库由于连接过多导致的抖动、处理超时,甚至是系统故障,从而降低了所述主库出现异常的概率;
此外,所述数据库心跳检测方法,在所述主库出现异常时,进一步判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值,即判断所述主库和所述备库的时间延迟是否处于允许的范围内,只有所述主库和所述备库的时间延迟处于允许的范围内,才进行所述主库和所述备库的切换,由所述备库替代所述主库提供相应数据库服务,否则不进行切换,减少了所述主库和所述备库的切换次数,提升了所述待检测数据库的处理效率。
本申请提供的数据库心跳检测装置实施例如下:
在上述的实施例中,提供了一种数据库心跳检测方法,与之相对应的,本申请提供了一种数据库心跳检测装置,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述方法实施例对应说明即可。下述描述的装置实施例仅仅是示意性的。
参照图2,其示出了根据本实施例提供的一种数据库心跳检测装置示意图。
本申请提供的一种数据库心跳检测装置,包括:
工作进程创建单元201,用于创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;
第一时间信息读取单元202,用于读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息;
第一时间信息比较单元203,用于比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:
第二时间信息读取204,用于读取所述备库的重做日志文件中写入时间最晚的日志记录的第二时间信息;
时间信息判断单元205,用于判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值;
若是,则进入主备切换执行单元206;
所述主备切换执行单元206,用于执行所述主库和所述备库的切换。
可选的,所述日志记录中包含该日志记录写入所述重做日志文件时的时间信息。
可选的,所述数据库心跳检测装置,包括:
当前时间获取单元,用于实时获取当前的时间信息。
可选的,所述数据库心跳检测装置,包括:
延时单元,用于按照预先设置的心跳检测时间间隔执行延时;
在所述第一时间信息比较单元203中,若所述时间差小于或者等于所述时间阈值,则进入所述延时单元。
可选的,所述数据库心跳检测装置,包括:
告警消息发出单元,用于发出所述主库心跳异常的告警消息;
在所述时间信息判断单元205中,若所述时间差大于或者等于所述时间差阈值,则进入所述告警消息发出单元。
可选的,所述工作进程,是基于fork()函数创建的。
可选的,所述数据库心跳检测装置,包括:
配置参数读取单元,用于读取所述时间间隔的配置参数;
日志记录写入单元,用于按照所述时间间隔,分别向所述主库和所述备库的重做日志文件中写入各自对应的日志记录。
本申请提供的另一种数据库心跳检测方法实施例如下:
在上述的实施例中,提供了一种数据库心跳检测方法,此外,本申请另外提供了一种数据库心跳检测方法,由于该方法实施例与上述方法实施例相类似,所以描述得比较简单,相关的部分请参见上述方法实施例对应说明即可。下述描述的方法实施例仅仅是示意性的。
参照图3,其示出了根据本实施例提供的一种数据库心跳检测方法处理流程图。
本申请提供的另一种数据库心跳检测方法,包括:
步骤S301,创建待检测数据库的工作进程。
所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录。
步骤S302,读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息。
具体实施时,在本步骤执行之前,执行下述步骤:
实时获取当前的时间信息。
比如实时获取所述待检测数据库所在操作系统当前的系统时间,或者实时通过网络获取当前时间点的时间戳。
本步骤中,读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息时,首先要确定所述主库的重做日志文件中写入时间最晚的日志记录,参见上述实施例步骤S102确定所述主库的重做日志文件中写入时间最晚的日志记录的方法,确定该日志记录之后,读取该日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息。
所述第一位置信息,是指用于标识该日志记录在所述主库的重做日志文件中、区别于其他日志记录的参数信息,比如:该日志记录在所述主库的重做日志文件中所处的行数、段数和/或页数,或者所述主库的重做日志文件中、该日志记录与该日志记录写入时间的关联关系,或者所述主库的重做日志文件中、该日志记录和/或该日志记录前后若干行日志记录对应的内容。
步骤S303,比较所述第一时间信息和预先获取的时间信息。
本实施例中,根据上述步骤S302获取的所述第一时间信息,以及预先获取的所述时间信息,比较所述第一时间信息和预先获取的所述时间信息;
若所述二者的时间差大于预设的时间阈值,表示所述主库出现异常,则进入Failover(失效转移)流程,执行下述步骤S304和步骤S305;
若所述二者的时间差小于或者等于所述时间阈值,则按照预先设置的心跳检测时间间隔执行延时,延时执行完成后,执行上述步骤S302所述实时获取当前的时间信息步骤。
步骤S304,读取所述备库的重做日志文件中写入时间最晚的日志记录、在所述备库的重做日志文件中的第二位置信息。
本步骤中,读取所述备库的重做日志文件中写入时间最晚的日志记录、在所述备库的重做日志文件中的第二位置信息,与上述步骤S302所述第一位置信息的读取过程相类似,参见上述步骤S302中的详细说明即可,此处不再赘述。
步骤S305,判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值。
根据上述步骤S302读取的所述第一位置信息,以及上述步骤S304读取的所述第二位置信息,判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值;
所述位置差,是指所述主库和所述备库中存储的数据存在的差异,即:所述主库和所述备库存在的数据差异;
若所述位置差小于所述位置差阈值,即所述主库和所述备库存在的数据差异小于所述位置差阈值,表明所述主库和所述备库存在的数据差异在允许的范围内,执行下述步骤S306,进行所述主库和所述备库的切换;
若所述位置差大于或者等于所述位置差阈值,表明所述主库和所述备库存在的数据差异超出允许的范围,则不进行所述主库和所述备库的切换,发出所述主库心跳异常的告警消息,并执行上述步骤S202所述实时获取当前的时间信息步骤。
步骤S306,执行所述主库和所述备库的切换。
所述数据库心跳检测方法,在所述主库出现异常时,判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值,即:判断所述主库和所述备库存在的数据差异是否在允许范围内,只有所述主库和所述备库存在的数据差异在允许范围内,才进行所述主库和所述备库的切换,否则不进行切换,减少了所述主库和所述备库的切换次数,提升了所述待检测数据库的处理效率;
此外,所述数据库心跳检测方法,所述主库出现异常,通过判断所述主库和所述备库存在的数据差异在允许范围内,来判断是否进行所述主库和所述备库的切换,避免了所述主库在一个时间间隔内产生的大量事物,在所述主库和所述备库切换之后,该时间间隔产生的事物的丢失,增强了所述待检测数据库数据的安全性。
本申请提供的另一种数据库心跳检测装置实施例如下:
在上述的实施例中,本申请另外提供了一种数据库心跳检测方法,与之相对应的,本申请另外提供了一种数据库心跳检测装置,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述方法实施例对应说明即可。下述描述的装置实施例仅仅是示意性的。
参照图4,其示出了根据本实施例提供的一种数据库心跳检测装置示意图。
本申请提供的另一种数据库心跳检测装置,包括:
工作进程创建单元401,用于创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;
第一时间位置信息读取单元402,用于读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息;
第一时间信息比较单元403,用于比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:
第二位置信息读取单元404,用于读取所述备库的重做日志文件中写入时间最晚的日志记录、在所述备库的重做日志文件中的第二位置信息;
位置信息判断单元405,用于判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值;
若是,则进入主备切换执行单元406;
所述主备切换执行单元406,用于执行所述主库和所述备库的切换。
可选的,所述数据库心跳检测装置,包括:
当前时间获取单元,用于实时获取当前的时间信息。
可选的,所述数据库心跳检测装置,包括:
告警消息发出单元,用于发出所述主库心跳异常的告警消息;
在所述位置信息判断单元405中,若所述位置差大于或者等于所述位置差阈值,则进入所述告警消息发出单元。
本申请提供的第三种数据库心跳检测方法实施例如下:
在上述的实施例中,本申请提供了两种数据库心跳检测方法,此外,本申请还提供了第三种数据库心跳检测方法,由于该方法实施例与上述两种方法实施例相类似,所以描述得比较简单,相关的部分请参见上述方法实施例对应说明即可。下述描述的方法实施例仅仅是示意性的。
参照图5,其示出了根据本实施例提供的一种数据库心跳检测方法处理流程图。
本申请提供的第三种数据库心跳检测方法,包括:
步骤S501,创建待检测数据库的工作进程。
所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录。
步骤S502,读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息。
具体实施时,在本步骤执行之前,执行下述步骤:
实时获取当前的时间信息。
比如实时获取所述待检测数据库所在操作系统当前的系统时间,或者实时通过网络获取当前时间点的时间戳。
阅读本步骤请参见上述实施例步骤S102和上述实施例步骤S302。
步骤S503,比较所述第一时间信息和预先获取的时间信息。
本实施例中,根据上述步骤S502获取的所述第一时间信息,以及预先获取的所述时间信息,比较所述第一时间信息和预先获取的所述时间信息;
若所述二者的时间差大于预设的时间阈值,表示所述主库出现异常,则进入Failover(失效转移)流程,执行下述步骤S504和步骤S505;
若所述二者的时间差小于或者等于所述时间阈值,则按照预先设置的心跳检测时间间隔执行延时,延时执行完成后,执行上述步骤S502所述实时获取当前的时间信息步骤。
步骤S504,读取所述备库的重做日志文件中写入时间最晚的日志记录的第二时间信息,以及该日志记录在所述备库的重做日志文件中的第二位置信息。
阅读本步骤请参见上述实施例步骤S104和上述实施例步骤S304。
步骤S505,判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值,以及所述第一位置信息与所述第二位置信息之间的位置差是否小于预设的位置差阈值。
根据上述步骤S502读取的所述第一时间信息和所述第一位置信息,以及上述步骤S504读取的所述第二时间信息和所述第二位置信息,执行下述子步骤:
1)判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值;
若所述时间差小于所述时间差阈值,表明所述主库和所述备库的时间延迟在允许的范围内,执行下述子步骤2);
若所述时间差大于或者等于所述时间差阈值,表明所述主库和所述备库的时间延迟超出允许的范围,则不进行所述主库和所述备库的切换,发出所述主库心跳异常的告警消息,并执行上述步骤S502所述实时获取当前的时间信息步骤。
2)判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值;
若所述位置差小于所述位置差阈值,表明所述主库和所述备库存在的数据差异在允许的范围内,执行下述步骤S506,进行所述主库和所述备库的切换;
若所述位置差大于或者等于所述位置差阈值,表明所述主库和所述备库存在的数据差异超出允许的范围,则不进行所述主库和所述备库的切换,发出所述主库心跳异常的告警消息,并执行上述步骤S502所述实时获取当前的时间信息步骤。
在具体实施,还可以先判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值,通过该判断之后,进一步判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值,若小于,则进行所述主库和所述备库的切换,在此不做限定。
步骤S506,执行所述主库和所述备库的切换。
所述数据库心跳检测方法,在所述主库出现异常时,判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值,并且判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值,只有二者同时满足,即:所述主库和所述备库的时间延迟在允许范围内,并且主库和所述备库存在的数据差异也在允许范围内,才进行所述主库和所述备库的切换,否则不进行切换,减少了所述主库和所述备库的切换次数,进一步提升了所述待检测数据库的处理效率。
本申请提供的第三种数据库心跳检测装置实施例如下:
在上述的实施例中,本申请提供了第三种数据库心跳检测方法,与之相对应的,本申请提供了第三种数据库心跳检测装置,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述方法实施例对应说明即可。下述描述的装置实施例仅仅是示意性的。
参照图6,其示出了根据本实施例提供的一种数据库心跳检测装置示意图。
本申请提供的第三种数据库心跳检测装置,包括:
工作进程创建单元601,用于创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;
第一时间位置信息读取单元602,用于读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息;
第一时间信息比较单元603,用于比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:
第二时间位置信息读取单元604,用于读取所述备库的重做日志文件中写入时间最晚的日志记录的第二时间信息,以及该日志记录在所述备库的重做日志文件中的第二位置信息;
时间位置信息判断单元605,用于判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值,以及所述第一位置信息与所述第二位置信息之间的位置差是否小于预设的位置差阈值;
若是,则进入主备切换执行单元606;
所述主备切换执行单元606,用于执行所述主库和所述备库的切换。
可选的,所述数据库心跳检测装置,包括:
当前时间获取单元,用于实时获取当前的时间信息。
可选的,所述时间位置信息判断单元605,包括:
时间信息判断子单元,用于判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值;
若小于所述时间差阈值,则进入位置信息判断子单元;
若大于或者等于所述时间差阈值,则进入告警消息发出单元;
所述告警消息发出单元,用于发出所述主库心跳异常的告警消息;
所述位置信息判断子单元,用于判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值;
若小于所述位置差阈值,则进入所述主备切换执行单元;
若大于或者等于所述时间差阈值,则进入所述告警消息发出单元。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (24)

1.一种数据库心跳检测方法,其特征在于,包括:
创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;
读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息;
比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:
读取所述备库的重做日志文件中写入时间最晚的日志记录的第二时间信息;
判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值;
若是,则执行所述主库和所述备库的切换。
2.根据权利要求1所述的数据库心跳检测方法,其特征在于,所述日志记录中包含该日志记录写入所述重做日志文件时的时间信息。
3.根据权利要求2所述的数据库心跳检测方法,其特征在于,所述读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息步骤执行前,执行下述步骤:
实时获取当前的时间信息。
4.根据权利要求3所述的数据库心跳检测方法,其特征在于,所述比较所述第一时间信息和预先获取的时间信息步骤,若二者的时间差小于或者等于所述时间阈值,执行下述步骤:
按照预先设置的心跳检测时间间隔执行延时,延时执行完成后,执行所述实时获取当前的时间信息步骤。
5.根据权利要求3所述的数据库心跳检测方法,其特征在于,所述判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值步骤中,若判断结果为否,执行下述步骤:
发出所述主库心跳异常的告警消息,并执行所述实时获取当前的时间信息步骤。
6.根据权利要求1所述的数据库心跳检测方法,其特征在于,所述工作进程,是基于fork()函数创建的。
7.根据权利要求1所述的数据库心跳检测方法,其特征在于,所述创建数据库进程步骤执行后,所述读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息步骤执行前,执行下述步骤:
读取所述时间间隔的配置参数;
按照所述时间间隔,分别向所述主库和所述备库的重做日志文件中写入各自对应的日志记录。
8.一种数据库心跳检测装置,其特征在于,包括:
工作进程创建单元,用于创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;
第一时间信息读取单元,用于读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息;
第一时间信息比较单元,用于比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:
第二时间信息读取单元,用于读取所述备库的重做日志文件中写入时间最晚的日志记录的第二时间信息;
时间信息判断单元,用于判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值;
若是,则进入主备切换执行单元;
所述主备切换执行单元,用于执行所述主库和所述备库的切换。
9.根据权利要求8所述的数据库心跳检测装置,其特征在于,包括:
当前时间获取单元,用于实时获取当前的时间信息。
10.根据权利要求9所述的数据库心跳检测装置,其特征在于,包括:
延时单元,用于按照预先设置的心跳检测时间间隔执行延时。
11.根据权利要求9所述的数据库心跳检测装置,其特征在于,包括:
告警消息发出单元,用于发出所述主库心跳异常的告警消息。
12.根据权利要求8所述的数据库心跳检测装置,其特征在于,包括:
配置参数读取单元,用于读取所述时间间隔的配置参数;
日志记录写入单元,用于按照所述时间间隔,分别向所述主库和所述备库的重做日志文件中写入各自对应的日志记录。
13.一种数据库心跳检测方法,其特征在于,包括:
创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;
读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息;
比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:
读取所述备库的重做日志文件中写入时间最晚的日志记录、在所述备库的重做日志文件中的第二位置信息;
判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值;
若是,则执行所述主库和所述备库的切换。
14.根据权利要求13所述的数据库心跳检测方法,其特征在于,所述读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息步骤执行前,执行下述步骤:
实时获取当前的时间信息。
15.根据权利要求14所述的数据库心跳检测方法,其特征在于,所述判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值步骤中,若判断结果为否,执行下述步骤:
发出所述主库心跳异常的告警消息,并执行所述实时获取当前的时间信息步骤。
16.一种数据库心跳检测装置,其特征在于,包括:
工作进程创建单元,用于创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;
第一时间位置信息读取单元,用于读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息;
第一时间信息比较单元,用于比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:
第二位置信息读取单元,用于读取所述备库的重做日志文件中写入时间最晚的日志记录、在所述备库的重做日志文件中的第二位置信息;
位置信息判断单元,用于判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值;
若是,则进入主备切换执行单元;
所述主备切换执行单元,用于执行所述主库和所述备库的切换。
17.根据权利要求16所述的数据库心跳检测装置,其特征在于,包括:
当前时间获取单元,用于实时获取当前的时间信息。
18.根据权利要求17所述的数据库心跳检测装置,其特征在于,包括:
告警消息发出单元,用于发出所述主库心跳异常的告警消息。
19.一种数据库心跳检测方法,其特征在于,包括:
创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;
读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息;
比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:
读取所述备库的重做日志文件中写入时间最晚的日志记录的第二时间信息,以及该日志记录在所述备库的重做日志文件中的第二位置信息;
判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值,以及所述第一位置信息与所述第二位置信息之间的位置差是否小于预设的位置差阈值;
若是,则执行所述主库和所述备库的切换。
20.根据权利要求19所述的数据库心跳检测方法,其特征在于,所述读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息步骤执行前,执行下述步骤:
实时获取当前的时间信息。
21.根据权利要求20所述的数据库心跳检测方法,其特征在于,所述判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值,以及所述第一位置信息与所述第二位置信息之间的位置差是否小于预设的位置差阈值步骤,包括:
判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值;
若小于所述时间差阈值,则进一步判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值;
若小于所述位置差阈值,执行所述主库和所述备库的切换;
若大于或者等于所述位置差阈值,发出所述主库心跳异常的告警消息,并执行所述实时获取当前的时间信息步骤;
若大于或者等于所述时间差阈值,发出所述主库心跳异常的告警消息,并执行所述实时获取当前的时间信息步骤。
22.一种数据库心跳检测装置,其特征在于,包括:
工作进程创建单元,用于创建待检测数据库的工作进程;所述工作进程用于按照预设的时间间隔,分别向所述待检测数据库的主库和备库的重做日志文件中写入日志记录;
第一时间位置信息读取单元,用于读取所述主库的重做日志文件中写入时间最晚的日志记录的第一时间信息,以及该日志记录在所述主库的重做日志文件中的第一位置信息;
第一时间信息比较单元,用于比较所述第一时间信息和预先获取的时间信息,若二者的时间差大于预设的时间阈值,则执行下述步骤:
第二时间位置信息读取单元,用于读取所述备库的重做日志文件中写入时间最晚的日志记录的第二时间信息,以及该日志记录在所述备库的重做日志文件中的第二位置信息;
时间位置信息判断单元,用于判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值,以及所述第一位置信息与所述第二位置信息之间的位置差是否小于预设的位置差阈值;
若是,则进入主备切换执行单元;
所述主备切换执行单元,用于执行所述主库和所述备库的切换。
23.根据权利要求22所述的数据库心跳检测装置,其特征在于,包括:
当前时间获取单元,用于实时获取当前的时间信息。
24.根据权利要求23所述的数据库心跳检测装置,其特征在于,所述时间位置信息判断单元,包括:
时间信息判断子单元,用于判断所述第一时间信息与所述第二时间信息的时间差是否小于预设的时间差阈值;
若小于所述时间差阈值,则进入位置信息判断子单元;
若大于或者等于所述时间差阈值,则进入告警消息发出单元;
所述告警消息发出单元,用于发出所述主库心跳异常的告警消息;
所述位置信息判断子单元,用于判断所述第一位置信息与所述第二位置信息的位置差是否小于预设的位置差阈值;
若小于所述位置差阈值,则进入所述主备切换执行单元;
若大于或者等于所述时间差阈值,则进入所述告警消息发出单元。
CN201511019216.3A 2015-12-29 2015-12-29 数据库心跳检测方法以及装置 Active CN106933843B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511019216.3A CN106933843B (zh) 2015-12-29 2015-12-29 数据库心跳检测方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511019216.3A CN106933843B (zh) 2015-12-29 2015-12-29 数据库心跳检测方法以及装置

Publications (2)

Publication Number Publication Date
CN106933843A true CN106933843A (zh) 2017-07-07
CN106933843B CN106933843B (zh) 2020-09-29

Family

ID=59442337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511019216.3A Active CN106933843B (zh) 2015-12-29 2015-12-29 数据库心跳检测方法以及装置

Country Status (1)

Country Link
CN (1) CN106933843B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664359A (zh) * 2018-05-23 2018-10-16 上海达梦数据库有限公司 一种数据库恢复方法、装置、设备及存储介质
CN109597709A (zh) * 2018-11-15 2019-04-09 杭州沃趣科技股份有限公司 一种用于Oracle Dataguard创建过程断点续传的方法
CN109871369A (zh) * 2018-12-24 2019-06-11 天翼电子商务有限公司 数据库切换方法、系统、介质和装置
CN112783679A (zh) * 2019-11-11 2021-05-11 腾讯科技(深圳)有限公司 一种窗口检测方法、装置、设备及存储介质
CN113190516A (zh) * 2021-05-26 2021-07-30 中国工商银行股份有限公司 数据同步监控方法及装置
CN113297229A (zh) * 2020-06-23 2021-08-24 阿里巴巴集团控股有限公司 路由读请求、反馈报文的方法以及各自装置、数据库
CN113312239A (zh) * 2021-06-11 2021-08-27 腾讯云计算(北京)有限责任公司 一种数据检测方法、装置、电子设备及介质
CN113553382A (zh) * 2021-08-06 2021-10-26 上海达梦数据库有限公司 数据页的刷盘方法、装置、设备及存储介质
CN115190051A (zh) * 2021-04-01 2022-10-14 中国移动通信集团河南有限公司 心跳数据识别方法及电子装置
CN116303304A (zh) * 2023-03-10 2023-06-23 深圳计算科学研究院 一种优化数据库日志批量写入的方法及装置
CN117290179A (zh) * 2023-09-25 2023-12-26 北京优特捷信息技术有限公司 一种事件超时状态的确定方法、装置、设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442783A (en) * 1990-01-22 1995-08-15 Motorola, Inc. Method and apparatus for transferring data base information
CN101043309A (zh) * 2007-04-13 2007-09-26 华为技术有限公司 主备倒换的控制方法以及装置
CN102810111A (zh) * 2012-05-07 2012-12-05 互动在线(北京)科技有限公司 一种保持Oracle数据库服务高可用的实现方法和系统
CN103064860A (zh) * 2011-10-21 2013-04-24 阿里巴巴集团控股有限公司 数据库高可用实现方法及其装置
CN103684734A (zh) * 2013-11-11 2014-03-26 北京控制工程研究所 一种热备份冗余计算机时间同步系统及方法
US20140164831A1 (en) * 2010-12-23 2014-06-12 Mongodb, Inc. Method and apparatus for maintaining replica sets
CN104778102A (zh) * 2015-03-27 2015-07-15 深圳市创梦天地科技有限公司 一种主备切换方法及系统
CN105069160A (zh) * 2015-08-26 2015-11-18 国家电网公司 一种基于自主可控数据库的高可用性方法及构架

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442783A (en) * 1990-01-22 1995-08-15 Motorola, Inc. Method and apparatus for transferring data base information
CN101043309A (zh) * 2007-04-13 2007-09-26 华为技术有限公司 主备倒换的控制方法以及装置
US20140164831A1 (en) * 2010-12-23 2014-06-12 Mongodb, Inc. Method and apparatus for maintaining replica sets
CN103064860A (zh) * 2011-10-21 2013-04-24 阿里巴巴集团控股有限公司 数据库高可用实现方法及其装置
CN102810111A (zh) * 2012-05-07 2012-12-05 互动在线(北京)科技有限公司 一种保持Oracle数据库服务高可用的实现方法和系统
CN103684734A (zh) * 2013-11-11 2014-03-26 北京控制工程研究所 一种热备份冗余计算机时间同步系统及方法
CN104778102A (zh) * 2015-03-27 2015-07-15 深圳市创梦天地科技有限公司 一种主备切换方法及系统
CN105069160A (zh) * 2015-08-26 2015-11-18 国家电网公司 一种基于自主可控数据库的高可用性方法及构架

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664359A (zh) * 2018-05-23 2018-10-16 上海达梦数据库有限公司 一种数据库恢复方法、装置、设备及存储介质
CN109597709B (zh) * 2018-11-15 2023-01-10 杭州沃趣科技股份有限公司 一种用于Oracle Dataguard创建过程断点续传的方法
CN109597709A (zh) * 2018-11-15 2019-04-09 杭州沃趣科技股份有限公司 一种用于Oracle Dataguard创建过程断点续传的方法
CN109871369A (zh) * 2018-12-24 2019-06-11 天翼电子商务有限公司 数据库切换方法、系统、介质和装置
CN112783679A (zh) * 2019-11-11 2021-05-11 腾讯科技(深圳)有限公司 一种窗口检测方法、装置、设备及存储介质
CN113297229A (zh) * 2020-06-23 2021-08-24 阿里巴巴集团控股有限公司 路由读请求、反馈报文的方法以及各自装置、数据库
CN113297229B (zh) * 2020-06-23 2024-03-08 阿里巴巴集团控股有限公司 路由读请求、反馈报文的方法以及各自装置、数据库
WO2021259188A1 (zh) * 2020-06-23 2021-12-30 阿里巴巴集团控股有限公司 路由读请求、反馈报文的方法以及各自装置、数据库
CN115190051B (zh) * 2021-04-01 2023-09-05 中国移动通信集团河南有限公司 心跳数据识别方法及电子装置
CN115190051A (zh) * 2021-04-01 2022-10-14 中国移动通信集团河南有限公司 心跳数据识别方法及电子装置
CN113190516A (zh) * 2021-05-26 2021-07-30 中国工商银行股份有限公司 数据同步监控方法及装置
CN113190516B (zh) * 2021-05-26 2024-02-09 中国工商银行股份有限公司 数据同步监控方法及装置
CN113312239A (zh) * 2021-06-11 2021-08-27 腾讯云计算(北京)有限责任公司 一种数据检测方法、装置、电子设备及介质
CN113312239B (zh) * 2021-06-11 2024-03-15 腾讯云计算(北京)有限责任公司 一种数据检测方法、装置、电子设备及介质
CN113553382B (zh) * 2021-08-06 2023-06-02 上海达梦数据库有限公司 数据页的刷盘方法、装置、设备及存储介质
CN113553382A (zh) * 2021-08-06 2021-10-26 上海达梦数据库有限公司 数据页的刷盘方法、装置、设备及存储介质
CN116303304A (zh) * 2023-03-10 2023-06-23 深圳计算科学研究院 一种优化数据库日志批量写入的方法及装置
CN116303304B (zh) * 2023-03-10 2024-01-16 深圳计算科学研究院 一种优化数据库日志批量写入的方法及装置
CN117290179A (zh) * 2023-09-25 2023-12-26 北京优特捷信息技术有限公司 一种事件超时状态的确定方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN106933843B (zh) 2020-09-29

Similar Documents

Publication Publication Date Title
CN106933843A (zh) 数据库心跳检测方法以及装置
US10949447B2 (en) Blockchain-based data synchronizing and data block parsing method and device
WO2019154394A1 (zh) 分布式数据库集群系统、数据同步方法及存储介质
CN105843702B (zh) 一种用于数据备份的方法以及装置
CN104506625B (zh) 一种提升云数据库元数据节点可靠性的方法
US9189348B2 (en) High availability database management system and database management method using same
CN105824846B (zh) 数据迁移方法及装置
CN106598490A (zh) 区块链数据的访问方法和区块链管理系统
US10210055B2 (en) Method and system for data storage upon database failure
CN107515874B (zh) 一种分布式非关系型数据库中同步增量数据的方法与设备
CN103995868B (zh) 面向分布式系统的全局事务管理器及事务处理方法
CN111177165B (zh) 数据一致性检测的方法、装置及设备
US10795910B2 (en) Robust communication system for guaranteed message sequencing with the detection of duplicate senders
CN110088744B (zh) 一种数据库维护方法及其系统
US11194769B2 (en) System and method for re-synchronizing a portion of or an entire source database and a target database
US20120278429A1 (en) Cluster system, synchronization controlling method, server, and synchronization controlling program
CN109298978B (zh) 一种指定位置的数据库集群的恢复方法及系统
CN110063042B (zh) 一种数据库故障的响应方法及其终端
CN105095358A (zh) 一种数据库操作日志获取方法及系统
CN111338834B (zh) 数据存储方法和装置
US20180121531A1 (en) Data Updating Method, Device, and Related System
WO2017008658A1 (zh) 一种文本数据的存储校验方法和系统
CN107770030B (zh) 基于vpn技术的舞台设备控制系统、控制方法及控制装置
US10853892B2 (en) Social networking relationships processing method, system, and storage medium
CN115102862B (zh) 一种用于sdn设备的自动同步方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant