[发明专利]一种事务恢复方法、装置、数据库节点及介质有效
申请号: | 202211278881.4 | 申请日: | 2022-10-19 |
公开(公告)号: | CN115629910B | 公开(公告)日: | 2023-08-15 |
发明(设计)人: | 丛阳 | 申请(专利权)人: | 星环信息科技(上海)股份有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F16/27 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 王瑞云 |
地址: | 200233 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 事务 恢复 方法 装置 数据库 节点 介质 | ||
1.一种事务恢复方法,其特征在于,所述方法包括:
在数据库节点发生故障并重启之后,从所构建的目标事务列表中删除符合预设条件的事务,以得到新的目标事务列表,其中,所述目标事务列表为用于指示事务的事务标识ID与事务状态之间映射关系的列表,所述预设条件为事务状态为已启动未提交状态且事务ID为空;
获取和解析二进制日志文件,以得到所述二进制日志文件中所有事务对应的二进制日志事件,并基于各所述二进制日志事件和所对应的事务ID构建至少两个事件列表;
遍历所述新的目标事务列表中的每个事务,在各所述事件列表中匹配与所述事务的事务ID一致的事务ID,并将匹配到与所述事务的事务ID一致的事务ID所在的事件列表确定为所述事务所在的事件列表;
遍历所述新的目标事务列表中的每个事务,基于所述事务的事务状态和所述事务所在的事件列表,执行对应的用于恢复所述事务的操作。
2.根据权利要求1所述的方法,其特征在于,所述目标事务列表的构建操作,包括:
从磁盘读取并回放重做日志文件;
从磁盘读取回滚日志文件并解析所述回滚日志文件中的各回滚日志,以得到每个回滚日志中事务的事务信息,其中所述事务信息包括所对应事务的事务ID和事务状态;
基于每个回滚日志中事务的事务信息,筛选出事务状态为已启动未提交状态的事务和事务状态为预提交状态的事务;
基于所筛选事务的事务ID和事务状态之间的映射关系,构建对应的目标事务列表。
3.根据权利要求1所述的方法,其特征在于,所述二进制日志事件包括预提交事件、提交事件、一阶段提交事件和回滚事件;所述至少两个事件列表包括第一事件列表、第二事件列表和第三事件列表;
所述第一事件列表为用于指示所述预提交事件与所对应事务ID之间映射关系的列表;所述第二事件列表为用于指示所述提交事件与所对应事务ID之间映射关系、以及所述一阶段提交事件与所对应事务ID之间映射关系的列表;所述第三事件列表为用于指示所述回滚事件与所对应事务ID之间映射关系的列表。
4.根据权利要求3所述的方法,其特征在于,所述事务的事务状态为预提交状态;
基于所述事务的事务状态和所述事务所在的事件列表,执行对应的用于恢复所述事务的操作,包括:
若所述事务在所述第一事件列表中,则保持所述事务不变;
若所述事务在所述第二事件列表中,则执行所述事务的两阶段提交操作;
若所述事务在所述第三事件列表中,则执行所述事务的回滚操作。
5.根据权利要求3所述的方法,其特征在于,所述事务的事务状态为已启动未提交状态;
基于所述事务的事务状态和所述事务所在的事件列表,执行对应的用于恢复所述事务的操作,包括:
若所述事务在所述第一事件列表中,则执行所述事务的两阶段预提交操作;
若所述事务在所述第二事件列表中,则执行所述事务的一阶段提交操作;
若所述事务不在所述事件列表中,则执行所述事务的回滚操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于星环信息科技(上海)股份有限公司,未经星环信息科技(上海)股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211278881.4/1.html,转载请声明来源钻瓜专利网。