一种数据库事务的处理方法及相关设备技术

技术编号:38720102 阅读:15 留言:0更新日期:2023-09-08 23:15
本说明书提供了一种数据库事务的处理方法和相关设备。该方法包括:获取源数据库中未提交的目标事务的事务信息,并将所述目标事务的事务信息存储至与目标进程对应的存储空间中;其中,所述目标进程用于采集与各个事务对应的事务日志;响应于所述目标进程在所述目标事务提交前发生重启,获取所述存储空间中存储的所述目标事务的事务信息;将所述目标事务的事务信息加载至重启后的所述目标进程中,以使重启后的所述目标进程基于所述目标事务的事务信息重新采集与所述目标事务对应的事务日志。志。志。

【技术实现步骤摘要】
一种数据库事务的处理方法及相关设备


[0001]本说明书一个或多个实施例涉及数据库
,尤其涉及一种数据库事务的处理方法及相关设备。

技术介绍

[0002]事务是对数据库进行访问并更新的一个执行单元,通常包含了针对数据库的一个或多个操作,每执行事务中的一个操作,就可能产生若干条事务日志,每条事务日志可以用于记录相应操作对数据库进行的更改。在多数据库之间的数据传输服务中,可以启用相应的进程来采集数据库执行事务过程中产生的一系列事务日志,并将这些采集到的事务日志按照其所属的事务进行分类整合,待事务成功提交后,可以将该事务对应的多个事务日志作为整体投递到另一数据库中,以实现数据库之间的数据同步。
[0003]然而,如果上述进程发生重启,且在重启前数据库中存在未提交的事务,则为了保证重启后的数据一致性,进程的位点会直接回退到未提交的事务开始前,以从未提交的事务开始前重新开始采集事务日志。如此一来,虽然可以避免事务日志的遗漏,保证重启后的数据一致性,但却极易造成大量事务日志的重复采集,降低效率。

技术实现思路

[0004]有鉴于此,本说明书一个或多个实施例提供一种数据库事务的处理方法及相关设备。
[0005]第一方面,本说明书提供了一种数据库事务的处理方法,所述方法包括:
[0006]获取源数据库中未提交的目标事务的事务信息,并将所述目标事务的事务信息存储至与目标进程对应的存储空间中;其中,所述目标进程用于采集与各个事务对应的事务日志;
[0007]响应于所述目标进程在所述目标事务提交前发生重启,获取所述存储空间中存储的所述目标事务的事务信息;
[0008]将所述目标事务的事务信息加载至重启后的所述目标进程中,以使重启后的所述目标进程基于所述目标事务的事务信息重新采集与所述目标事务对应的事务日志。
[0009]第二方面,本说明书提供了一种数据库事务的处理装置,所述装置包括:
[0010]存储单元,用于获取源数据库中未提交的目标事务的事务信息,并将所述目标事务的事务信息存储至与目标进程对应的存储空间中;其中,所述目标进程用于采集与各个事务对应的事务日志;
[0011]获取单元,用于响应于所述目标进程在所述目标事务提交前发生重启,获取所述存储空间中存储的所述目标事务的事务信息;
[0012]加载单元,用于将所述目标事务的事务信息加载至重启后的所述目标进程中,以使重启后的所述目标进程基于所述目标事务的事务信息重新采集与所述目标事务对应的事务日志。
[0013]相应地,本说明书还提供了一种计算设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如上述各实施方式所述的数据库事务的处理方法。
[0014]相应地,本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如上述各实施方式所述的数据库事务的处理方法。
[0015]综上所述,本申请中的目标进程在采集事务对应的事务日志的过程中,可以先将当前数据库中未提交事务的事务信息存储至目标进程对应的存储空间中。基于此,若目标进程在该未提交事务提交之前发生重启,则本申请可以从上述存储空间中获取事先存储的该未提交事务的事务信息,并将该未提交事务的事务信息加载至重启后的目标进程中,使得重启后的目标进程可以基于该未提交事务的事务信息,直接从当前位点开始,重新采集该未提交事务对应的事务日志。如此,本申请通过事先将未提交事务的事务信息进行存储,使得进程即使发生重启,也可以基于事先存储的未提交事务的事务信息直接从当前位点开始重新采集该未提交事务对应的事务日志,避免了进程回退,进而避免了对重启前已提交事务对应的大量事务日志的重复采集,实现在保证进程重启前后数据一致性的前提下,极大程度上提升了事务日志的采集效率。
附图说明
[0016]图1是一示例性实施例提供的一种事务日志采集的整体流程示意图;
[0017]图2是一示例性实施例提供的一种数据传输服务的系统架构示意图;
[0018]图3是一示例性实施例提供的一种SLR的流程示意图;
[0019]图4是一示例性实施例提供的一种数据库事务的处理方法的流程示意图;
[0020]图5是一示例性实施例提供的另一种事务日志采集的整体流程示意图;
[0021]图6是一示例性实施例提供的一种事务引擎的功能结构示意图;
[0022]图7是一示例性实施例提供的一种数据库事务的处理装置的结构示意图;
[0023]图8是一示例性实施例提供的一种服务器的结构示意图。
具体实施方式
[0024]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
[0025]需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
[0026]本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各
方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
[0027]首先,对本说明书中的部分用语进行解释说明,以便于本邻域技术人员理解。
[0028](1)事务(transaction),可以理解为对数据库中数据进行访问并更新的一个执行单元,通常包含了针对数据库的一个或多个操作,例如数据插入操作、数据删除操作和数据更新操作等各类操作。
[0029]事务具有以下四个标准属性(ACID):
[0030]a.原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的一组操作要么全部被执行,要么都不执行;如果事务中的部分操作没有成功执行,则事务中的所有操作都需要回滚,回到事务执行前的状态。
[0031]b.一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。
[0032]c.隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
[0033]d.持久性(Durability):已提交的事务对数据库中的数据的改变是永久性的,后本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库事务的处理方法,所述方法包括:获取源数据库中未提交的目标事务的事务信息,并将所述目标事务的事务信息存储至与目标进程对应的存储空间中;其中,所述目标进程用于采集与源数据库中的各个事务对应的事务日志;响应于所述目标进程在所述目标事务提交前发生重启,获取所述存储空间中存储的所述目标事务的事务信息;将所述目标事务的事务信息加载至重启后的所述目标进程中,以使重启后的所述目标进程基于所述目标事务的事务信息重新采集与所述目标事务对应的事务日志。2.根据权利要求1所述的方法,所述目标事务的事务信息包括:所述目标事务的事务标识和所述目标事务的开始时间。3.根据权利要求1所述的方法,所述获取未提交的目标事务的事务信息,并将所述目标事务的事务信息存储至与目标进程对应的存储空间中,包括:按照预设的时长周期,周期性地获取未提交的目标事务的事务信息,并将所述目标事务的事务信息存储至与所述目标进程对应的存储空间中。4.根据权利要求1所述的方法,所述方法还包括:响应于所述目标事务提交成功,将所述存储空间中存储的所述目标事务的事务信息删除。5.根据权利要求1所述的方法,所述方法还包括:响应于所述目标事务提交成功,对所述目标进程采集到的与所述目标事务对应的事务日志进行解析,以得到所述目标事务针对所述源数据库的数据变更记录;将所述数据变更记录传输至与所述源数据库关联的目标数据库,以使所述目标数据库基于所述数据变更记录进行数据变更。6.根据权利要求5所述的方法,所述目标数据库为与所述源数据库对应的备份数据库。7.根据权利要求5所述的方法,所述目标进程为与所述源数据库对应的数据传输服务程序中运行的进程;与所述目标进程对应的存储空间为与所述目标进程对应的消息队列;所述将所述目标事务的事务信息存储至与目标进程对...

【专利技术属性】
技术研发人员:洪鹏飞付大超王旭霍国铖
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

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

1