【技术实现步骤摘要】
基于分库分表的分布式事务回滚方法、装置、终端和存储介质
[0001]本文涉及但不限于分库分表领域,尤其涉及一种分布式事务回滚方法、装置、终端和存储介质。
技术介绍
[0002]数据库的分库分表是将原有的存储大量数据的表,按照某种规则,拆分成多个小数据量的表,并存储在多个数据库中。传统数据库的维护变更是针对单一数据源进行的。而针对分库分表场景,需要对多数据源的所有篮子进行相同的变更操作,工作量是成倍增长的。
[0003]目前,在分库分表中实现分布式事务却面临着很多难题,其中关键的一个难题是如何有效地回滚分布式事务。分布式事务有别于单机事务,最大的不同是要在多个数据库节点同时进行提交,如果都能够成功,那么不需要进行其他后续操作;但一旦某个数据库节点因某种异常造成提交失败,那么其他数据库节点也要保证提交给它们的事务能停止执行或者及时回滚。由于数据库节点发生错误的随机性和发生异常的类型众多,因此如何能有效的回滚分布式事务成为保证事务一致性的一个关键问题。
[0004]在分库分表中如果要修复数据,往往需要进行批量全局的 ...
【技术保护点】
【技术特征摘要】
1.一种基于分库分表的分布式事务回滚方法,其特征在于,包括:在每个分库中建立反向执行语句记录表;解析分布式事务的执行语句,获取执行语句的内容、表名、主键和索引,如果执行语句的内容中包含删除或更新的语句,则根据执行语句进行反向查询,查出原始数据;根据解析出的执行语句、表名、主键、索引以及原始数据拼装反向执行语句;将拼装的反向执行语句存入到所述每个分库中的反向执行语句记录表中;响应于分布式事务的执行语句执行失败,根据当前分布式事务的ID和状态依次在每个分库中查出执行失败的执行语句对应的反向执行语句,并执行该执行失败的反向执行语句。2.根据权利要求1所述的基于分库分表的分布式事务回滚方法,其特征在于,所述方法还包括:记录所述反向执行语句的执行状态,所述执行状态包括成功和失败。3.根据权利要求2所述的基于分库分表的分布式事务回滚方法,其特征在于,所述方法还包括:定期扫描反向执行语句的执行状态,如果执行状态为失败,则继续执行该执行状态为失败的反向执行语句。4.根据权利要求1所述的基于分库分表的分布式事务回滚方法,其特征在于,所述方法还包括:对每个分库中执行失败的分布式事务执行语句的执行时间从后到前进行排序,根据该排序对在每个分库中查出执行失败的执行语句对应的反向执行语句,并执行该反向执行语句。5.根据权利要求1所述基于分库分表的分布式事务回滚方法,其特征在于,所述执行语句是SQL语句。6.根据权利要求1所述基于分库分表的分布式事务回滚方法,其特征在于,将以下至少之一存入反向执行语句记录表:自增主键、当前分布式事务ID、正向执行语句、数据库架构、执行语句执行状态、插入时间、更新时间,数据的加密值。7.根据权利要求1所述基于分库分表的分布式事务回滚方法,其特征在于,在分布式事务的执行语句执行完后,记录执行完后的数据,当响应于分布式事务的执行语句执行失败,需要执行失败的反向执行语句时,查看当前数据与之前记录的执行完后的数据是否一致,如果一致,则执行失败的反向执行语句,如果不一致,则不执行反向执行语句。8.根据权利要求1所述基于分库分表的分布式事务回滚方法,其特征在于,在分布式事务的执行语句执行完后,对执行完的数据进行MD5加密得到第一加密值,当响应于分布式事务的执行语句执行失败,需要执行失败的反向执行语句时,对当前数据进行MD5加密得到第二加密值,将第二加密值与之前的第一加密值比较,...
【专利技术属性】
技术研发人员:李嘉杰,
申请(专利权)人:上海虎瑾信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。