CN108319617A - 确定数据库主从差异的方法、装置及切换控制方法、装置 - Google Patents

确定数据库主从差异的方法、装置及切换控制方法、装置 Download PDF

Info

Publication number
CN108319617A
CN108319617A CN201710036330.XA CN201710036330A CN108319617A CN 108319617 A CN108319617 A CN 108319617A CN 201710036330 A CN201710036330 A CN 201710036330A CN 108319617 A CN108319617 A CN 108319617A
Authority
CN
China
Prior art keywords
library
master
journal file
master library
time
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
CN201710036330.XA
Other languages
English (en)
Other versions
CN108319617B (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 Cloud Computing 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 CN201710036330.XA priority Critical patent/CN108319617B/zh
Publication of CN108319617A publication Critical patent/CN108319617A/zh
Application granted granted Critical
Publication of CN108319617B publication Critical patent/CN108319617B/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

Abstract

一种确定数据库主从差异的方法、装置及切换控制方法、装置,在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟;判断所述时间延迟是否大于设定的时间延迟阈值,如果是,不进行主从切换,如果否,进行主从切换。本申请既能确定主从切换时主从数据库的差异并用于切换判定,又无需连接数据库执行更新操作,也无需数据库执行额外操作,具有更好的性能。

Description

确定数据库主从差异的方法、装置及切换控制方法、装置
技术领域
本发明涉及计算机技术,更具体地,涉及一种确定数据库主从差异的方法、装置及切换控制方法、装置。
背景技术
如图1所示,数据库一般采用一主一从的主从架构来提供高可用性的服务。正常情况下,由主数据库实例(简称为主库)对外服务。如果对外服务的进程执行了对数据的更改(一般是通过一个“事务”来进行),则会在把更改写入数据库存储前,由日志写入与发送模块先写入到事务日志中,一般是以日志文件的形式保存,在一个日志文件写满后再写下一个日志文件。所述日志写入与发送模块不断通过网络连接,将主库产生的日志发送给从数据库实例(简称为从库,也可称为备库)。从库接收到日志后,将其进行回放,以使其数据与主库同步。在主库发生宕机等异常,无法对外服务时,需要切换到从库,由从库继续提供服务,从而实现高可用性。
主从如果采用同步的事务提交机制,则在一个数据库事务完成时,主库要等到事务日志到达从库后,才回复用户连接事务提交完成。但这种模式因事务完成时间较长导致性能较低。所以主从一般采用异步的事务提交机制,即在完成一个事务时,主库不等待日志发送到从库,即回复用户提交已完成。异步模式在出现主库宕机时,可能产生有些日志未从主库发到从库,导致主从数据差异的情况。因此,在主库宕机,准备切换到从库时,要判断主从之间的数据差异情况,如果数据差异过大,可以放弃切换。
相关的判断数据差异的办法是主库将当前时间对应的时间戳不断写入一个心跳表,此心跳表的内容也会不断同步给从库。当主从切换时,查看从库现有心跳表里的时间戳数据,与最后更新到主库的时间戳的差异,即可算出主从之间的数据差异对应多长时间的延迟,即可以用该时间延迟来表征主从之间的数据差异。
上述心跳表方案有如下缺点:
一,在主库更新心跳表时,需要连接数据库并执行更新操作,因此占用了用户可用的连接数(一般数据库都有最大连接数限制),当用户连接数达到上限时,将无法连接到主库更新心跳表,此时,如果有主从切换,无法准确判定主从数据差异;
二,此方案要求从库在切换前允许连接和查询心跳表。但某些数据库,例如Greenplum的Standby节点,在切换前是不允许连接的,因此无法实现查询心跳表。
三,对于长期以读操作为主的数据库,更新心跳表,本身会造成额外的日志写入、IO操作等。
发明内容
本发明实施例提供了一种确定数据库主从差异的方法,包括:
在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟。
本发明实施例还提供了一种确定数据库主从差异的确定装置,包括:
时间获取模块,设置为:在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
差异确定模块,设置为:将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟。
本发明实施例还提供了一种确定数据库主从差异的确定装置,包括存储器和处理器,其中:
所述存储器设置为:保存程序代码;
所述处理器设置为:读取所述程序代码以执行以下处理:
在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟。
上述方案既能较准确地确定主从切换时主从数据库的差异,又无需连接数据库执行更新操作,也无需数据库执行额外操作,具有更好的性能。
本发明实施例还提供了一种数据库主从切换的控制方法,包括:
按照如上所述述的确定数据库主从差异的方法确定数据库主从差异,得到数据库主从差异对应的时间延迟;
判断所述时间延迟是否大于设定的时间延迟阈值,如果是,不进行主从切换,如果否,进行主从切换。
本发明实施例还提供了一种数据库主从切换的控制装置,包括如上所述的数据库主从差异的确定装置以及切换判定模块,其中:所述切换判定模块设置为:判断所述确定装置确定的时间延迟是否大于设定的时间延迟阈值,如果是,不进行主从切换,如果否,进行主从切换。
本发明实施例还提供了一种数据库主从切换的控制装置,包括存储器和处理器,其中:
所述存储器设置为:保存程序代码;
所述处理器设置为:读取所述程序代码以执行以下处理:
在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟;
判断所述时间延迟是否大于设定的时间延迟阈值,如果是,不进行主从切换,如果否,进行主从切换。
上述方案既能确定主从切换时主从数据库的差异并用于切换判定,又无需连接数据库执行更新操作,也无需数据库执行额外操作,具有更好的性能。
附图说明
图1是数据库主从架构的示意图;
图2是本发明实施例一确定数据库主从差异的方法的流程图;
图3是本发明实施例一数据库主从差异确定装置的模块图;
图4是本发明实施例二数据库主从切换的控制方法的流程图;
图5是本发明实施例二数据库主从切换的控制装置的模块图;
图6是本发明实施例三数据库主从切换的控制方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
实施例一
本实施例提供一种确定数据库主从库差异的方法,应用于数据库主从库差异的确定装置,如图2所示,所述方法包括:
步骤110,在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
本申请是针对主从采用异步的事务提交机制的情况。如前所述,主库是在机器上运行的主数据库实例,主库正常运行时,在一个数据库事务完成时会将该事件的信息写入主库最新日志文件,该日志文件的修改时间戳即主库最后一次更新日志的时间。此外,主库正常运行时,会向从库同步日志,而从库最新日志文件的修改时间戳也是从库最后一次更新日志的时间。
主库故障可能是因为主库所在机器硬件或操作系统故障导致的,此时主库和主库所在操作系统均无法使用。主库故障也可能是被主库所在机器的操作系统挂起而无法继续运行或者主库本身出现错误而无响应即主库宕机(非操作系统宕机),此时主库无法使用但主库所在机器的操作系统仍可工作。
本实施例中,在所述主库工作时,按照设定的时间间隔从主库所在机器的操作系统获取主库最新日志文件的修改时间戳并记录。在所述主库故障时,将最后记录的主库最新日志文件的修改时间戳作为T0。因为主库故障时主库所在机器的操作系统也可能同时故障,无法再获取主库最新日志文件的修改时间戳。因此本实施例在本库工作时即按照设定的时间间隔从主库所在机器的操作系统获取主库最新日志文件的修改时间戳并记录,这里设定的时间间隔如可以是秒数一级,这可以根据对主从差异精度、可用性等要求而自行设定。另外设定的时间间隔可以总是相等的,也可以不相等如在不同时段采用不同的间隔。
在另一实施例中,在所述主库工作时,也按照设定的时间间隔从所述主库所在机器的操作系统获取主库最新日志文件的修改时间戳并记录;但在主库故障时,如果从所述主库所在机器的操作系统获取到主库最新日志文件的修改时间戳,将获取的修改时间戳作为T0,否则将最后记录的主库最新日志文件的修改时间戳作为T0。该实施例在主库故障时仍尝试从主库所在机器的操作系统获取主库最新日志文件的修改时间戳,如果操作系统仍可工作,则能获取到,而且获取到的该时间戳可能比最后记录的主库最新日志文件的修改时间戳更晚(说明主库又写入了新的日志),将其作为T0计算的时间延迟也就更为准确。
本实施例中,在主库故障时,获取从库最新日志文件的修改时间戳T1,包括:在所述主库故障时,从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1。在某些情况下,主库故障时,从库所在机器的操作系统可能暂时性地连接不上,因此在另一实施例中,在所述主库工作时,按照设定的时间间隔从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳并记录;在所述主库故障时,如果从所述从库所在机器的操作系统获取到从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1,否则将最后记录的从库最新日志文件的修改时间戳作为T1。
按照设定的时间间隔从主库所在机器的操作系统获取主库最新日志文件的修改时间戳,可以采用但不局限于以下几种方式中的一种:
按照设定的时间间隔不断登陆主库所在机器的操作系统,查询主库最新日志文件的修改时间戳;
与主库所在机器的操作系统建立长连接,按照设定的时间间隔不断向主库所在机器的操作系统查询主库最新日志文件的修改时间戳;
在主库所在机器增加一个代理程序,按照设定的时间间隔不断向主库所在机器的操作系统查询主库最新日志文件的修改时间戳并传递出来。
按照设定的时间间隔从从库所在机器的操作系统获取从库最新日志文件的修改时间戳的方法类似,不再赘述。
步骤120,将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟。
主从最新日志文件的修改时间戳的差异可以从时间跨度上体现主从之间的日志差异情况,因此可以作为衡量主从数据差异的参数。主库和从库所在机器的操作系统可以读取到其最新日志文件的修改时间戳。
本实施例还提供了一种确定数据库主从差异的确定装置,包括:
时间获取模块10,设置为:在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
差异确定模块20,设置为:将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟。
本实施例中,
所述确定装置还包括:主库记录模块,设置为:在所述主库工作时,按照设定的时间间隔从主库所在机器的操作系统获取主库最新日志文件的修改时间戳并记录;
所述时间获取模块在主库故障时,获取主库最新日志文件的修改时间戳T0,包括:在所述主库故障时,将所述主库记录模块最后记录的主库最新日志文件的修改时间戳作为T0。
本实施例中,
所述确定装置还包括:时间记录模块,设置为:在所述主库工作时,按照设定的时间间隔从主库所在机器的操作系统获取主库最新日志文件的修改时间戳并记录;
所述时间获取模块在主库故障时,获取主库最新日志文件的修改时间戳T0,包括:在所述主库故障时,如果从所述主库所在机器的操作系统获取到主库最新日志文件的修改时间戳,将获取的修改时间戳作为T0,否则将最后记录的主库最新日志文件的修改时间戳作为T0。
本实施例中,
所述时间获取模块在主库故障时,获取从库最新日志文件的修改时间戳T1,包括:在所述主库故障时,从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1。
本实施例中,
所述确定装置还包括:从库记录模块,设置为:在所述主库工作时,按照设定的时间间隔从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳并记录;
所述时间获取模块在主库故障时,获取从库最新日志文件的修改时间戳T1,包括:在所述主库故障时,如果从所述从库所在机器的操作系统获取到从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1,否则将所述从库记录模块最后记录的从库最新日志文件的修改时间戳作为T1。
上述模块执行的功能可参见本实施例方法中的处理。
本实施例还提供了一种数据库主从差异的确定装置,包括存储器和处理器,其中:
所述存储器设置为:保存程序代码;
所述处理器设置为:读取所述程序代码以执行以下处理:
在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟。
上述处理器执行的获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1的处理,可以采用本实施例方法中描述的各种方式来实现,这里不再赘述。
本实施例方案既能较准确地确定主从切换时主从数据库的差异,又无需连接数据库执行更新操作,也无需数据库执行额外操作,具有更好的性能。
以下的两个实施例提供一种数据库主从切换的控制方法,所述控制方法可以采用实施例一中的方法确定数据库主从差异对应的时间延迟,再根据该时间延迟与相应阈值的比较结果判定是否进行主从切换。
实施例二
本实施例数据库主从切换的控制方法如图4所示,包括:
步骤210,在所述主库工作时,按照设定的时间间隔从主库所在机器的操作系统获取主库最新日志文件的修改时间戳并记录;
本步骤可参见实施例一的相应说明。
按照设定的时间间隔从主库所在机器的操作系统获取主库最新日志文件的修改时间戳,可以采用但不局限于以下几种方式中的一种:
按照设定的时间间隔不断登陆主库所在机器的操作系统,查询主库最新日志文件的修改时间戳;
与主库所在机器的操作系统建立长连接,按照设定的时间间隔不断向主库所在机器的操作系统查询主库最新日志文件的修改时间戳;
在主库所在机器增加一个代理程序,按照设定的时间间隔不断向主库所在机器的操作系统查询主库最新日志文件的修改时间戳并传递出来。
步骤220,在所述主库故障时,将最后记录的主库最新日志文件的修改时间戳作为T0,并从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1;
本步骤可参见实施例一的相应说明。
步骤230,判断T0和T1的时间差是否大于设定的时间延迟阈值,如果是,执行步骤240,否则,执行步骤250;
步骤240,不进行主从切换,结束;
步骤250,进行主从切换,结束。
对于上述阈值的取值本发明不做局限,可以根据系统的实际情况来选择并可以根据运行情况进行调整。在T0和T1的时间差大于时间延迟阈值时不进行切换,可以避免较大量的数据丢失量,且保持一定的高可用性。
本实施例还提供了一种数据库主从切换的控制装置,如图5所示,包括:
时间获取模块50,设置为:在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
差异确定模块60,设置为:将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟;
切换判定模块70,设置为:判断所述确定装置确定的时间延迟是否大于设定的时间延迟阈值,如果是,不进行主从切换,如果否,进行主从切换。
本实施例中,
所述确定装置还包括:主库记录模块,设置为:在所述主库工作时,按照设定的时间间隔从主库所在机器的操作系统获取主库最新日志文件的修改时间戳并记录;
所述时间获取模块在主库故障时,获取主库最新日志文件的修改时间戳T0,包括:在所述主库故障时,将最后记录的主库最新日志文件的修改时间戳作为T0。
本实施例中,
所述时间获取模块在主库故障时,获取从库最新日志文件的修改时间戳T1,包括:在所述主库故障时,从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1。
本实施例方法获取从库最新日志文件的修改时间戳T1的方式也可以采用实施例一中的方式,即:在所述主库工作时,按照设定的时间间隔从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳并记录;在所述主库故障时,如果从所述从库所在机器的操作系统获取到从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1,否则将最后记录的从库最新日志文件的修改时间戳作为T1。
本实施例方案既能确定主从切换时主从数据库的差异并用于切换判定,又无需连接数据库执行更新操作,也无需数据库执行额外操作,具有更好的性能。
实施例三
本实施例数据库主从切换的控制方法在获取主库最新日志文件的修改时间戳T0时与实施例二不同,如图6所示,本实施例方法包括:
步骤310,在所述主库工作时,按照设定的时间间隔从主库所在机器的操作系统获取主库最新日志文件的修改时间戳并记录;
本步骤可参见实施例一的相应说明。
按照设定的时间间隔从主库所在机器的操作系统获取主库最新日志文件的修改时间戳,可以采用但不局限于以下几种方式中的一种:
按照设定的时间间隔不断登陆主库所在机器的操作系统,查询主库最新日志文件的修改时间戳;
与主库所在机器的操作系统建立长连接,按照设定的时间间隔不断向主库所在机器的操作系统查询主库最新日志文件的修改时间戳;
在主库所在机器增加一个代理程序,按照设定的时间间隔不断向主库所在机器的操作系统查询主库最新日志文件的修改时间戳并传递出来。
步骤320,在所述主库故障时,如果从所述主库所在机器的操作系统获取到主库最新日志文件的修改时间戳,将获取的修改时间戳作为T0,否则将最后记录的主库最新日志文件的修改时间戳作为T0;及,从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1;
步骤330,判断T0和T1的时间差是否大于设定的时间延迟阈值,如果是,执行步骤240,否则,执行步骤250;
步骤340,不进行主从切换,结束;
步骤350,进行主从切换,结束。
对于上述阈值的取值本发明不做局限,可以根据系统的实际情况来选择并可以根据运行情况进行调整。在T0和T1的时间差大于时间延迟阈值时不进行切换,可以避免较大量的数据丢失量,且保持一定的高可用性。
本实施例还提供了一种数据库主从切换的控制装置与实施例二基本相同,区别在于:所述时间获取模块在主库故障时,获取主库最新日志文件的修改时间戳T0的方式是:在所述主库故障时,如果从所述主库所在机器的操作系统获取到主库最新日志文件的修改时间戳,将获取的修改时间戳作为T0,否则将最后记录的主库最新日志文件的修改时间戳作为T0。
本实施例方法获取从库最新日志文件的修改时间戳T1的方式也可以采用实施例一中的方式,即:在所述主库工作时,按照设定的时间间隔从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳并记录;在所述主库故障时,如果从所述从库所在机器的操作系统获取到从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1,否则将最后记录的从库最新日志文件的修改时间戳作为T1。
本实施例方案既能确定主从切换时主从数据库的差异并用于切换判定,又无需连接数据库执行更新操作,也无需数据库执行额外操作,具有更好的性能。
实施例四
本实施例提供了一种数据库主从切换的控制装置,包括存储器和处理器,其中:
所述存储器设置为:保存程序代码;
所述处理器设置为:读取所述程序代码以执行以下处理:
在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟;
判断所述时间延迟是否大于设定的时间延迟阈值,如果是,不进行主从切换,如果否,进行主从切换。
上述处理器执行的获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1的处理,可以采用本实施例方法中描述的各种方式来实现,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种确定数据库主从差异的方法,包括:
在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟。
2.如权利要求1所述的方法,其特征在于:
所述方法还包括:在所述主库工作时,按照设定的时间间隔从主库所在机器的操作系统获取主库最新日志文件的修改时间戳并记录;
在主库故障时,获取主库最新日志文件的修改时间戳T0,包括:在所述主库故障时,将最后记录的主库最新日志文件的修改时间戳作为T0。
3.如权利要求1所述的方法,其特征在于:
所述方法还包括:在所述主库工作时,按照设定的时间间隔从所述主库所在机器的操作系统获取主库最新日志文件的修改时间戳并记录;
在主库故障时,获取主库最新日志文件的修改时间戳T0,包括:在所述主库故障时,如果从所述主库所在机器的操作系统获取到主库最新日志文件的修改时间戳,将获取的修改时间戳作为T0,否则将最后记录的主库最新日志文件的修改时间戳作为T0。
4.如权利要求1或2或3所述的方法,其特征在于:
在主库故障时,获取从库最新日志文件的修改时间戳T1,包括:
在所述主库故障时,从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1。
5.如权利要求1或2或3所述的方法,其特征在于:
所述方法还包括:在所述主库工作时,按照设定的时间间隔从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳并记录;
在主库故障时,获取从库最新日志文件的修改时间戳T1,包括:
在所述主库故障时,如果从所述从库所在机器的操作系统获取到从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1,否则将最后记录的从库最新日志文件的修改时间戳作为T1。
6.一种确定数据库主从差异的确定装置,其特征在于,包括:
时间获取模块,设置为:在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
差异确定模块,设置为:将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟。
7.如权利要求6所述的确定装置,其特征在于:
所述确定装置还包括:主库记录模块,设置为:在所述主库工作时,按照设定的时间间隔从主库所在机器的操作系统获取主库最新日志文件的修改时间戳并记录;
所述时间获取模块在主库故障时,获取主库最新日志文件的修改时间戳T0,包括:在所述主库故障时,将所述主库记录模块最后记录的主库最新日志文件的修改时间戳作为T0。
8.如权利要求6所述的确定装置,其特征在于:
所述确定装置还包括:时间记录模块,设置为:在所述主库工作时,按照设定的时间间隔从主库所在机器的操作系统获取主库最新日志文件的修改时间戳并记录;
所述时间获取模块在主库故障时,获取主库最新日志文件的修改时间戳T0,包括:在所述主库故障时,如果从所述主库所在机器的操作系统获取到主库最新日志文件的修改时间戳,将获取的修改时间戳作为T0,否则将最后记录的主库最新日志文件的修改时间戳作为T0。
9.如权利要求6或7或8所述的确定装置,其特征在于:
所述时间获取模块在主库故障时,获取从库最新日志文件的修改时间戳T1,包括:在所述主库故障时,从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1。
10.如权利要求6或7或8所述的确定装置,其特征在于:
所述确定装置还包括:从库记录模块,设置为:在所述主库工作时,按照设定的时间间隔从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳并记录;
所述时间获取模块在主库故障时,获取从库最新日志文件的修改时间戳T1,包括:在所述主库故障时,如果从所述从库所在机器的操作系统获取到从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1,否则将所述从库记录模块最后记录的从库最新日志文件的修改时间戳作为T1。
11.一种数据库主从差异的确定装置,包括存储器和处理器,其特征在于:
所述存储器设置为:保存程序代码;
所述处理器设置为:读取所述程序代码以执行以下处理:
在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟。
12.一种数据库主从切换的控制方法,包括:
在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟;
判断所述时间延迟是否大于设定的时间延迟阈值,如果是,不进行主从切换,如果否,进行主从切换。
13.如权利要求12所述的方法,其特征在于:
所述方法还包括:在所述主库工作时,按照设定的时间间隔从主库所在机器的操作系统获取主库最新日志文件的修改时间戳并记录;
在主库故障时,获取主库最新日志文件的修改时间戳T0,包括:
在所述主库故障时,将最后记录的主库最新日志文件的修改时间戳作为T0;或者
在所述主库故障时,如果从所述主库所在机器的操作系统获取到主库最新日志文件的修改时间戳,将获取的修改时间戳作为T0,否则将最后记录的主库最新日志文件的修改时间戳作为T0。
14.如权利要求12或13所述的方法,其特征在于:
在主库故障时,获取从库最新日志文件的修改时间戳T1,包括:在所述主库故障时,从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1;或者
所述方法还包括:在所述主库工作时,按照设定的时间间隔从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳并记录;且在主库故障时,获取从库最新日志文件的修改时间戳T1,包括:在所述主库故障时,如果从所述从库所在机器的操作系统获取到从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1,否则将最后记录的从库最新日志文件的修改时间戳作为T1。
15.一种数据库主从切换的控制装置,其特征在于,包括:
时间获取模块,设置为:在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
差异确定模块,设置为:将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟;
切换判定模块,设置为:判断所述确定装置确定的时间延迟是否大于设定的时间延迟阈值,如果是,不进行主从切换,如果否,进行主从切换。
16.如权利要求15所述的控制装置,其特征在于:
所述确定装置还包括:主库记录模块,设置为:在所述主库工作时,按照设定的时间间隔从主库所在机器的操作系统获取主库最新日志文件的修改时间戳并记录;
所述时间获取模块在主库故障时,获取主库最新日志文件的修改时间戳T0,包括:在所述主库故障时,将最后记录的主库最新日志文件的修改时间戳作为T0;或者,在所述主库故障时,如果从所述主库所在机器的操作系统获取到主库最新日志文件的修改时间戳,将获取的修改时间戳作为T0,否则将最后记录的主库最新日志文件的修改时间戳作为T0。
17.如权利要求15或16所述的控制装置,其特征在于:
所述时间获取模块在主库故障时,获取从库最新日志文件的修改时间戳T1,包括:在所述主库故障时,从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1;或者
所述确定装置还包括:从库记录模块,设置为:在所述主库工作时,按照设定的时间间隔从所述从库所在机器的操作系统获取从库最新日志文件的修改时间戳并记录;且所述时间获取模块在主库故障时,获取从库最新日志文件的修改时间戳T1,包括:在所述主库故障时,如果从所述从库所在机器的操作系统获取到从库最新日志文件的修改时间戳,将获取的修改时间戳作为T1,否则将所述从库记录模块最后记录的从库最新日志文件的修改时间戳作为T1。
18.一种数据库主从切换的控制装置,包括存储器和处理器,其特征在于:
所述存储器设置为:保存程序代码;
所述处理器设置为:读取所述程序代码以执行以下处理:
在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟;
判断所述时间延迟是否大于设定的时间延迟阈值,如果是,不进行主从切换,如果否,进行主从切换。
CN201710036330.XA 2017-01-17 2017-01-17 确定数据库主从差异的方法、装置及切换控制方法、装置 Active CN108319617B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710036330.XA CN108319617B (zh) 2017-01-17 2017-01-17 确定数据库主从差异的方法、装置及切换控制方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710036330.XA CN108319617B (zh) 2017-01-17 2017-01-17 确定数据库主从差异的方法、装置及切换控制方法、装置

Publications (2)

Publication Number Publication Date
CN108319617A true CN108319617A (zh) 2018-07-24
CN108319617B CN108319617B (zh) 2022-05-24

Family

ID=62891180

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710036330.XA Active CN108319617B (zh) 2017-01-17 2017-01-17 确定数据库主从差异的方法、装置及切换控制方法、装置

Country Status (1)

Country Link
CN (1) CN108319617B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109308239A (zh) * 2018-09-26 2019-02-05 北京百度网讯科技有限公司 用于输出信息的方法和装置
CN109684410A (zh) * 2018-12-24 2019-04-26 浙江大华技术股份有限公司 一种确定主从数据库同步时延的系统、方法及储存介质
CN110471909A (zh) * 2019-08-26 2019-11-19 上海达梦数据库有限公司 一种数据库管理方法、装置、服务器及存储介质
CN110825763A (zh) * 2020-01-08 2020-02-21 上海爱可生信息技术股份有限公司 基于共享存储的MySQL数据库高可用系统及其高可用方法
CN111008123A (zh) * 2019-10-23 2020-04-14 贝壳技术有限公司 数据库测试方法、装置、存储介质及电子设备
CN111506560A (zh) * 2020-04-22 2020-08-07 北京次元引擎科技有限公司 数据库主从切换的方法、终端及存储介质
CN112069018A (zh) * 2020-07-21 2020-12-11 上海瀚银信息技术有限公司 一种数据库高可用方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255360B1 (en) * 2009-01-30 2012-08-28 Apple Inc. Synchronization of database changes among multiple devices
CN103226502A (zh) * 2013-05-21 2013-07-31 中国工商银行股份有限公司 一种数据灾备控制系统及数据恢复方法
CN105468727A (zh) * 2015-11-20 2016-04-06 国家电网公司 基于zookeeper实现MySQL强一致性复制方法
CN105589797A (zh) * 2015-09-17 2016-05-18 中国银联股份有限公司 主从数据库间数据同步延时检测的方法
CN105989139A (zh) * 2015-02-27 2016-10-05 阿里巴巴集团控股有限公司 一种事务同步方法及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255360B1 (en) * 2009-01-30 2012-08-28 Apple Inc. Synchronization of database changes among multiple devices
CN103226502A (zh) * 2013-05-21 2013-07-31 中国工商银行股份有限公司 一种数据灾备控制系统及数据恢复方法
CN105989139A (zh) * 2015-02-27 2016-10-05 阿里巴巴集团控股有限公司 一种事务同步方法及设备
CN105589797A (zh) * 2015-09-17 2016-05-18 中国银联股份有限公司 主从数据库间数据同步延时检测的方法
CN105468727A (zh) * 2015-11-20 2016-04-06 国家电网公司 基于zookeeper实现MySQL强一致性复制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIAQING DU: "Clock-SI: Snapshot Isolation for Partitioned Data Stores Using Loosely Synchronized Clocks", 《IEEE》 *
李俊炜: "基于Oracle数据库低效语句监控方法的研究与应用", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109308239A (zh) * 2018-09-26 2019-02-05 北京百度网讯科技有限公司 用于输出信息的方法和装置
CN109308239B (zh) * 2018-09-26 2022-02-18 北京百度网讯科技有限公司 用于输出信息的方法和装置
US11269705B2 (en) 2018-09-26 2022-03-08 Beijing Baidu Netcom Science And Technologv Co., Ltd. Method and apparatus for outputting information
CN109684410A (zh) * 2018-12-24 2019-04-26 浙江大华技术股份有限公司 一种确定主从数据库同步时延的系统、方法及储存介质
CN110471909A (zh) * 2019-08-26 2019-11-19 上海达梦数据库有限公司 一种数据库管理方法、装置、服务器及存储介质
CN110471909B (zh) * 2019-08-26 2022-03-08 上海达梦数据库有限公司 一种数据库管理方法、装置、服务器及存储介质
CN111008123A (zh) * 2019-10-23 2020-04-14 贝壳技术有限公司 数据库测试方法、装置、存储介质及电子设备
CN111008123B (zh) * 2019-10-23 2023-10-24 贝壳技术有限公司 数据库测试方法、装置、存储介质及电子设备
CN110825763A (zh) * 2020-01-08 2020-02-21 上海爱可生信息技术股份有限公司 基于共享存储的MySQL数据库高可用系统及其高可用方法
CN110825763B (zh) * 2020-01-08 2020-05-19 上海爱可生信息技术股份有限公司 基于共享存储的MySQL数据库高可用系统及其高可用方法
CN111506560A (zh) * 2020-04-22 2020-08-07 北京次元引擎科技有限公司 数据库主从切换的方法、终端及存储介质
CN112069018A (zh) * 2020-07-21 2020-12-11 上海瀚银信息技术有限公司 一种数据库高可用方法及系统

Also Published As

Publication number Publication date
CN108319617B (zh) 2022-05-24

Similar Documents

Publication Publication Date Title
CN108319617A (zh) 确定数据库主从差异的方法、装置及切换控制方法、装置
CN102984194B (zh) 虚拟应用程序分布机架的配置文件的同步方法及系统
CN107766575B (zh) 读写分离的数据库访问方法及装置
CN110209726A (zh) 分布式数据库集群系统、数据同步方法及存储介质
CN106302596B (zh) 一种服务发现的方法和装置
CN104778102A (zh) 一种主备切换方法及系统
US10467192B2 (en) Method and apparatus for updating data table in keyvalue database
CN101216832A (zh) 数据同步方法及装置
US11068499B2 (en) Method, device, and system for peer-to-peer data replication and method, device, and system for master node switching
CN106802892A (zh) 用于主备数据一致性校验的方法和设备
CN111177165A (zh) 数据一致性检测的方法、装置及设备
CN108694218A (zh) 一种数据写入及读取的方法和装置
CN104980307A (zh) 数据访问请求的处理方法、装置及数据库服务器
WO2021008400A1 (zh) 基于区块链的数据批量处理方法、装置、设备及存储介质
CN104793981B (zh) 一种虚拟机集群的在线快照管理方法及装置
CN104317957A (zh) 一种报表处理的开放平台、系统及报表处理方法
EP3786802A1 (en) Method and device for failover in hbase system
CN106331081A (zh) 一种信息同步方法及装置
CN108984334A (zh) 用于管理会话的方法和设备
WO2021082925A1 (zh) 一种交易处理的方法及装置
CN105634635B (zh) 一种共享rtc的方法、装置和系统
CN111404737B (zh) 一种容灾处理方法以及相关装置
CN104618474B (zh) 设备信息保存方法以及装置
CN111382024B (zh) 一种数据库主备复制延迟监控方法、装置和系统
CN110489483A (zh) 数据同步方法、装置、计算机设备以及存储介质

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
TA01 Transfer of patent application right

Effective date of registration: 20210926

Address after: Room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: ALIBABA GROUP HOLDING Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211206

Address after: No.12 Zhuantang science and technology economic block, Xihu District, Hangzhou City, Zhejiang Province

Applicant after: Aliyun Computing Co.,Ltd.

Address before: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: Alibaba (China) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant