[发明专利]确定数据库主从差异的方法、装置及切换控制方法、装置有效
申请号: | 201710036330.X | 申请日: | 2017-01-17 |
公开(公告)号: | CN108319617B | 公开(公告)日: | 2022-05-24 |
发明(设计)人: | 林江彬;王勇 | 申请(专利权)人: | 阿里云计算有限公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 龙洪;栗若木 |
地址: | 310024 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 确定 数据库 主从 差异 方法 装置 切换 控制 | ||
一种确定数据库主从差异的方法、装置及切换控制方法、装置,在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟;判断所述时间延迟是否大于设定的时间延迟阈值,如果是,不进行主从切换,如果否,进行主从切换。本申请既能确定主从切换时主从数据库的差异并用于切换判定,又无需连接数据库执行更新操作,也无需数据库执行额外操作,具有更好的性能。
技术领域
本发明涉及计算机技术,更具体地,涉及一种确定数据库主从差异的方法、装置及切换控制方法、装置。
背景技术
如图1所示,数据库一般采用一主一从的主从架构来提供高可用性的服务。正常情况下,由主数据库实例(简称为主库)对外服务。如果对外服务的进程执行了对数据的更改(一般是通过一个“事务”来进行),则会在把更改写入数据库存储前,由日志写入与发送模块先写入到事务日志中,一般是以日志文件的形式保存,在一个日志文件写满后再写下一个日志文件。所述日志写入与发送模块不断通过网络连接,将主库产生的日志发送给从数据库实例(简称为从库,也可称为备库)。从库接收到日志后,将其进行回放,以使其数据与主库同步。在主库发生宕机等异常,无法对外服务时,需要切换到从库,由从库继续提供服务,从而实现高可用性。
主从如果采用同步的事务提交机制,则在一个数据库事务完成时,主库要等到事务日志到达从库后,才回复用户连接事务提交完成。但这种模式因事务完成时间较长导致性能较低。所以主从一般采用异步的事务提交机制,即在完成一个事务时,主库不等待日志发送到从库,即回复用户提交已完成。异步模式在出现主库宕机时,可能产生有些日志未从主库发到从库,导致主从数据差异的情况。因此,在主库宕机,准备切换到从库时,要判断主从之间的数据差异情况,如果数据差异过大,可以放弃切换。
相关的判断数据差异的办法是主库将当前时间对应的时间戳不断写入一个心跳表,此心跳表的内容也会不断同步给从库。当主从切换时,查看从库现有心跳表里的时间戳数据,与最后更新到主库的时间戳的差异,即可算出主从之间的数据差异对应多长时间的延迟,即可以用该时间延迟来表征主从之间的数据差异。
上述心跳表方案有如下缺点:
一,在主库更新心跳表时,需要连接数据库并执行更新操作,因此占用了用户可用的连接数(一般数据库都有最大连接数限制),当用户连接数达到上限时,将无法连接到主库更新心跳表,此时,如果有主从切换,无法准确判定主从数据差异;
二,此方案要求从库在切换前允许连接和查询心跳表。但某些数据库,例如Greenplum的Standby节点,在切换前是不允许连接的,因此无法实现查询心跳表。
三,对于长期以读操作为主的数据库,更新心跳表,本身会造成额外的日志写入、IO操作等。
发明内容
本发明实施例提供了一种确定数据库主从差异的方法,包括:
在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟。
本发明实施例还提供了一种确定数据库主从差异的确定装置,包括:
时间获取模块,设置为:在主库故障时,获取主库最新日志文件的修改时间戳T0,及获取从库最新日志文件的修改时间戳T1;
差异确定模块,设置为:将所述T0和T1的时间差确定为数据库主从差异对应的时间延迟。
本发明实施例还提供了一种确定数据库主从差异的确定装置,包括存储器和处理器,其中:
所述存储器设置为:保存程序代码;
所述处理器设置为:读取所述程序代码以执行以下处理:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里云计算有限公司,未经阿里云计算有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710036330.X/2.html,转载请声明来源钻瓜专利网。