[发明专利]一种日志同步方法、装置、设备及存储介质有效
申请号: | 202110631080.0 | 申请日: | 2021-06-07 |
公开(公告)号: | CN113239120B | 公开(公告)日: | 2023-08-18 |
发明(设计)人: | 韩朱忠;王蒙蒙;钱晨亮;刘新宇 | 申请(专利权)人: | 上海达梦数据库有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/23 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 日志 同步 方法 装置 设备 存储 介质 | ||
本发明实施例公开了一种日志同步方法、装置、设备及存储介质。该方法包括:主库根据已同步日志包序号数组、已同步日志序列值数组和接收到的数据修改操作生成待同步日志包,并将待同步日志包发送至各备库;备库在根据接收到的待同步日志包进行重演,并根据待同步日志包修改备库的日志包参数后,将待同步日志包的日志包序号,以及待同步日志包中的最大日志序列值反馈至主库;主库根据接收到的日志包序号以及最大日志序列值,更新已同步日志包序号数组和已同步日志序列值数组。本发明实施例的技术方案,实现了在数据库发生故障时允许进行日志截断,提升了数据库集群的可用性和可靠性,提高了数据库集群中主库的运行速度。
技术领域
本发明实施例涉及数据库技术领域,尤其涉及一种日志同步方法、装置、设备及存储介质。
背景技术
随着信息技术的高速发展,数据库在日常工作,商业活动以及人们的生活中都起到极其重要的作用。为避免数据库使用过程中发生宕机,无法正常提供服务,现有应用中常采用搭建数据库集群的方式,也即将多个数据库分为主库和备库,使得主库宕机时备库仍可继续提供服务。
为保证数据库集群中各数据库的数据同步,在对主库进行增删改等数据修改操作后将生成重做日志,并将重做日志发送至备库,以使得备库根据重做日志进行重演进而和主库保持数据同步。传统数据库一般采用预写式日志(Write-Ahead Logging,WAL)机制来提高运行效率,其核心思想是修改数据页产生的重做日志要先于数据页写入磁盘,数据页存入磁盘的动作则延后到检查点推进或数据页缓存不足需要淘汰时再写入磁盘。
然而,在上述机制下,可以将重做日志在本地磁盘的持久化等同于数据页的持久化,因此不可随意对重做日志进行截断,如果要截断重做日志,则需要将这段重做日志所记录的数据修改从对应的数据页上回滚掉。对传统的数据库而言,在重做日志被写入磁盘后,不排除数据页也会被立即写入磁盘(比如正在推进检查点时),如果执行数据页修改的事务已经提交,则这些修改会持久的保存在数据库中(事务的持久化特性),即使数据库发生故障,在故障恢复后也无法对这些数据页执行回滚操作,因此传统的数据库无法支持日志截断。基于这个特点,传统的数据库集群在支持故障自动切换时,必须要通过第三方仲裁对故障情况进行确认,否则就有可能会发生误切换导致老主库无法重新加回(比如,主库和备库之间只是发生网络异常,主库仍然在正常运行并写入本地数据,由于网络不通,备库认为主库发生故障并自动切换为新主库,老主库当前写入的数据在新主库上不存在,老主库又无法截断日志、回滚数据,老主库和新主库数据不一致,无法再重新加入集群)。进一步地,传统的数据库集群为保证主库与备库间的数据实时同步,主库在发出重做日志后需要接收到所有备库的响应才可继续生成新的重做日志,在备库存在数据处理延迟时会较大影响到主库的运行速度。
发明内容
本发明提供一种日志同步方法、装置、设备及存储介质,以提升数据库集群中主库的运行速度,在数据库发生故障时允许进行日志截断,使得少量数据库的故障(网络异常或数据库故障)不会影响数据库集群的正常运行,并且在故障自动切换时不需要第三方仲裁,提升了数据库集群的可用性和可靠性。
第一方面,本发明实施例提供了一种日志同步方法,应用于数据库集群,数据库集群包括一个主库和至少两个备库,备库的数量为偶数;包括:
主库根据已同步日志包序号数组、已同步日志序列值数组和接收到的数据修改操作生成待同步日志包,并将待同步日志包发送至各备库;
备库在根据接收到的待同步日志包进行重演,并根据待同步日志包修改备库的日志包参数后,将待同步日志包的日志包序号,以及待同步日志包中的最大日志序列值反馈至主库;
主库根据接收到的日志包序号以及最大日志序列值,更新已同步日志包序号数组和已同步日志序列值数组。
进一步地,待同步日志包中至少包括日志包序号、日志包长度、最小日志序列值、最大日志序列值、当前任期号、主库已提交日志包序号、主库已提交日志序列值以及至少一条待同步日志;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海达梦数据库有限公司,未经上海达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110631080.0/2.html,转载请声明来源钻瓜专利网。