跨数据库的事务管理方法、装置、设备及存储介质制造方法及图纸

技术编号:24330824 阅读:37 留言:0更新日期:2020-05-29 19:32
本发明专利技术涉及计算机技术领域,公开了一种跨数据库的事务管理方法、装置、设备及存储介质,用于根据事务机制和备份数据对分布式事务进行回滚和提交,确保回滚数据的正确性和跨数据库的分布式事务的一致性。跨数据库的事务管理方法包括:从预置映射对象文件中确定多个数据库的数据操作语句,并为数据操作语句配置第一映射标签和第二映射标签,得到多个待执行的事务;执行多个待执行的事务,得到备份数据;当检测到多个待执行的事务全部执行成功时,提交全部事务;当检测到多个待执行的事务中任意一个事务执行失败时,按照备份数据回滚已执行失败的事务,得到已回滚数据,并根据备份数据对所述已回滚数据进行验证,并根据验证结果进行数据处理。

Cross database transaction management methods, devices, devices and storage media

【技术实现步骤摘要】
跨数据库的事务管理方法、装置、设备及存储介质
本专利技术涉及计算机
,尤其涉及跨数据库的事务管理方法、装置、设备及存储介质。
技术介绍
数据库事务通常包含了一个序列的对数据库的读/写操作,将数据库操作序列从失败中恢复到正常状态,同时确保数据库异常状态下仍能保持一致性。并且当多个应用程序在并发访问数据库时,为应用程序之间提供一个隔离,以防止彼此的操作互相干扰。在多个跨数据库业务请求并发的情况下,采用非同步操作的方式,容易导致整个目标数据库系统数据的不一致,若采用分布式事务处理接口XA事务管理方式,其性能低下,并且只能应用在同源的数据库上,异构数据库配置不了XA事务,而通过二进制日志文件binlog或者relaylog去做数据还原,降低了业务请求的处理效率。
技术实现思路
本专利技术的主要目的在于解决了异构数据库配置不了XA事务,并且解决了由于通过二进制日志文件进行数据还原,降低了业务请求的处理效率的技术问题。为实现上述目的,本专利技术第一方面提供了一种跨数据库的事务管理方法,包括:从预置映射对象文件中确定多个数据库的数据操作语句,并为所述多个数据库的数据操作语句配置第一映射标签和第二映射标签,得到多个待执行的事务,所述第一映射标签用于指示触发数据备份,所述第二映射标签用于指示触发数据回滚;通过预置事务机制中的初步操作执行所述多个待执行的事务,得到备份数据,所述预置事务机制包括初步操作、取消操作和确认操作;当检测到所述多个待执行的事务全部执行成功时,通过所述确认操作提交全部执行成功的事务;当检测到所述多个待执行的事务中任意一个事务执行失败时,通过所述取消操作按照所述备份数据回滚已执行的事务,得到已回滚数据,并根据所述备份数据对所述已回滚数据进行验证,得到验证结果;判断所述验证结果与目标值是否相等;若所述验证结果与所述目标值相等,则确定剩余已执行的事务,并根据所述备份数据对所述剩余已执行的事务进行数据回滚;若所述验证结果与所述目标值不相等,则确定差异数据,并根据所述备份数据对所述差异数据进行数据恢复。可选的,在本专利技术第一方面的第一种实现方式中,所述从预置映射对象文件中确定多个数据库的数据操作语句,并为所述多个数据库的数据操作语句配置第一映射标签和第二映射标签,得到多个待执行的事务,所述第一映射标签用于指示触发数据备份,所述第二映射标签用于指示触发数据回滚包括:部署预置项目框架,得到预置映射对象文件;在所述预置映射对象文件中配置多个数据库的连接信息和所述多个数据库的数据操作语句,所述多个数据库的数据操作语句用于指示根据第一预置属性与预置接口类的不同函数名称进行关联;将第一映射标签添加到所述多个数据库的数据操作语句中,并对所述第一映射标签和预置查询语句按照第二预置属性进行关联,所述第一映射标签用于指示触发数据备份;将所述第二映射标签添加到所述多个数据库的数据操作语句中,所述第二映射标签用于指示触发数据回滚;重新加载所述预置映射对象文件,得到多个待执行的事务。可选的,在本专利技术第一方面的第二种实现方式中,所述通过预置事务机制中的初步操作执行所述多个待执行的事务,得到备份数据,所述预置事务机制包括初步操作、取消操作和确认操作包括:从所述预置映射对象文件中读取所述多个数据库的连接信息和所述多个待执行的事务;根据预置连接类和所述多个数据库的连接信息连接到所述多个数据库;通过预置事务机制中的初步操作执行所述多个待执行的事务,得到备份数据,并对所述多个待执行的事务添加分布式事务锁,所述预置事务机制包括所述初步操作、确认操作和取消操作。可选的,在本专利技术第一方面的第三种实现方式中,所述通过预置事务机制中的初步操作执行所述多个待执行的事务,得到备份数据,并对所述多个待执行的事务添加分布式事务锁,所述预置事务机制包括所述初步操作、确认操作和取消操作包括:通过预置事务机制中的初步操作按照所述预置接口类的不同函数名称逐个执行所述多个待执行的事务,得到所述事务的唯一标识,所述预置事务机制包括所述初步操作、确认操作和取消操作;执行所述第一映射标签对应的预置查询语句,得到备份数据;将所述事务的唯一标识和所述备份数据设置成目标键值对,并将所述目标键值对存储到缓存中;对所述多个待执行的事务添加分布式事务锁,并执行所述多个数据库的数据操作语句。可选的,在本专利技术第一方面的第四种实现方式中,所述当检测到所述多个待执行的事务中任意一个事务执行失败时,通过所述取消操作按照所述备份数据回滚已执行的事务,得到已回滚数据,并根据所述备份数据对所述已回滚数据进行验证,得到验证结果包括:当检测到所述多个待执行的事务中任意一个事务执行失败时,通过所述取消操作根据所述事务的唯一标识获取所述备份数据;根据所述备份数据回滚已执行的事务,并释放所述分布式事务锁,得到已回滚数据;对所述已回滚数据和所述备份数据进行数据一致性验证,得到验证结果。可选的,在本专利技术第一方面的第五种实现方式中,所述当检测到所述多个待执行的事务全部执行成功时,通过所述确认操作提交全部执行成功的事务包括:当检测到所述多个待执行的事务全部执行成功时,通过所述确认操作获取全部执行成功事务的唯一标识;根据所述全部执行成功事务的唯一标识提交事务,得到提交状态;判断所述提交状态是否为成功状态;若所述提交状态为成功状态,则触发所述分布式事务锁的释放操作;若所述提交状态为失败状态,则对失败状态的事务进行重新提交,并统计提交次数,直到所述提交次数不小于预置次数或者所述提交状态为成功状态时为止。可选的,在本专利技术第一方面的第六种实现方式中,所述当检测到所述多个待执行的事务全部执行成功时,通过所述确认操作提交全部执行成功的事务之后,所述跨数据库的事务管理方法还包括:获取所述待执行的事务的不同执行状态,所述不同执行状态包括所述事务的执行成功状态和所述事务的执行失败状态;按照所述事务的唯一标识将所述事务的执行成功状态和所述事务的执行失败状态记录到预置事务日志中;对所述事务的执行失败状态发送预置告警信息。本专利技术第二方面提供了一种跨数据库的事务管理装置,包括:配置单元,用于从预置映射对象文件中确定多个数据库的数据操作语句,并为所述多个数据库的数据操作语句配置第一映射标签和第二映射标签,得到多个待执行的事务,所述第一映射标签用于指示触发数据备份,所述第二映射标签用于指示触发数据回滚;执行单元,用于通过预置事务机制中的初步操作执行所述多个待执行的事务,得到备份数据,所述预置事务机制包括初步操作、取消操作和确认操作;提交单元,当检测到所述多个待执行的事务全部执行成功时,用于通过所述确认操作提交全部执行成功的事务;回滚验证单元,当检测到所述多个待执行的事务中任意一个事务执行失败时,用于通过所述取消操作按照所述备份数据回滚已执行的事务,得到已回滚数据,并根据所述备份数据对所述已回滚数据进行验证,得到验证结果;判断单元,用于判断所述验证结果与目标值是否相等;处理单元,若所述验证结果与所述目标值相等,则用于确定剩余已执行的事务,并根据所述备份数据对所述剩余已执行的事务进行数据回滚;恢复单元,若所述验证结果与所述目本文档来自技高网...

【技术保护点】
1.一种跨数据库的事务管理方法,其特征在于,包括:/n从预置映射对象文件中确定多个数据库的数据操作语句,并为所述多个数据库的数据操作语句配置第一映射标签和第二映射标签,得到多个待执行的事务,所述第一映射标签用于指示触发数据备份,所述第二映射标签用于指示触发数据回滚;/n通过预置事务机制中的初步操作执行所述多个待执行的事务,得到备份数据,所述预置事务机制包括初步操作、取消操作和确认操作;/n当检测到所述多个待执行的事务全部执行成功时,通过所述确认操作提交全部执行成功的事务;/n当检测到所述多个待执行的事务中任意一个事务执行失败时,通过所述取消操作按照所述备份数据回滚已执行的事务,得到已回滚数据,并根据所述备份数据对所述已回滚数据进行验证,得到验证结果;/n判断所述验证结果与目标值是否相等;/n若所述验证结果与所述目标值相等,则确定剩余已执行的事务,并根据所述备份数据对所述剩余已执行的事务进行数据回滚;/n若所述验证结果与所述目标值不相等,则确定差异数据,并根据所述备份数据对所述差异数据进行数据恢复。/n

【技术特征摘要】
1.一种跨数据库的事务管理方法,其特征在于,包括:
从预置映射对象文件中确定多个数据库的数据操作语句,并为所述多个数据库的数据操作语句配置第一映射标签和第二映射标签,得到多个待执行的事务,所述第一映射标签用于指示触发数据备份,所述第二映射标签用于指示触发数据回滚;
通过预置事务机制中的初步操作执行所述多个待执行的事务,得到备份数据,所述预置事务机制包括初步操作、取消操作和确认操作;
当检测到所述多个待执行的事务全部执行成功时,通过所述确认操作提交全部执行成功的事务;
当检测到所述多个待执行的事务中任意一个事务执行失败时,通过所述取消操作按照所述备份数据回滚已执行的事务,得到已回滚数据,并根据所述备份数据对所述已回滚数据进行验证,得到验证结果;
判断所述验证结果与目标值是否相等;
若所述验证结果与所述目标值相等,则确定剩余已执行的事务,并根据所述备份数据对所述剩余已执行的事务进行数据回滚;
若所述验证结果与所述目标值不相等,则确定差异数据,并根据所述备份数据对所述差异数据进行数据恢复。


2.根据权利要求1所述的跨数据库的事务管理方法,其特征在于,所述从预置映射对象文件中确定多个数据库的数据操作语句,并为所述多个数据库的数据操作语句配置第一映射标签和第二映射标签,得到多个待执行的事务,所述第一映射标签用于指示触发数据备份,所述第二映射标签用于指示触发数据回滚,包括:
部署预置项目框架,得到预置映射对象文件;
在所述预置映射对象文件中配置多个数据库的连接信息和所述多个数据库的数据操作语句,所述多个数据库的数据操作语句用于指示根据第一预置属性与预置接口类的不同函数名称进行关联;
将第一映射标签添加到所述多个数据库的数据操作语句中,并对所述第一映射标签和预置查询语句按照第二预置属性进行关联,所述第一映射标签用于指示触发数据备份;
将所述第二映射标签添加到所述多个数据库的数据操作语句中,所述第二映射标签用于指示触发数据回滚;
重新加载所述预置映射对象文件,得到多个待执行的事务。


3.根据权利要求2所述的跨数据库的事务管理方法,其特征在于,所述通过预置事务机制中的初步操作执行所述多个待执行的事务,得到备份数据,所述预置事务机制包括初步操作、取消操作和确认操作,包括:
从所述预置映射对象文件中读取所述多个数据库的连接信息和所述多个待执行的事务;
根据预置连接类和所述多个数据库的连接信息连接到所述多个数据库;
通过预置事务机制中的初步操作执行所述多个待执行的事务,得到备份数据,并对所述多个待执行的事务添加分布式事务锁,所述预置事务机制包括所述初步操作、确认操作和取消操作。


4.根据权利要求3所述的跨数据库的事务管理方法,其特征在于,所述通过预置事务机制中的初步操作执行所述多个待执行的事务,得到备份数据,并对所述多个待执行的事务添加分布式事务锁,所述预置事务机制包括所述初步操作、确认操作和取消操作包括:
通过预置事务机制中的初步操作按照所述预置接口类的不同函数名称逐个执行所述多个待执行的事务,得到所述事务的唯一标识,所述预置事务机制包括所述初步操作、确认操作和取消操作;
执行所述第一映射标签对应的预置查询语句,得到备份数据;
将所述事务的唯一标识和所述备份数据设置成目标键值对,并将所述目标键值对存储到缓存中;
对所述多个待执行的事务添加分布式事务锁,并执行所述多个数据库的数据操作语句。


5.根据权利要求4所述的跨数据库的事务管理方法,其特征在于,所述当检测到所...

【专利技术属性】
技术研发人员:钟泽峰
申请(专利权)人:中国平安财产保险股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1