一种数据同步方法技术

技术编号:39679208 阅读:11 留言:0更新日期:2023-12-11 18:56
本申请公开了一种数据同步方法

【技术实现步骤摘要】
一种数据同步方法、装置、设备和存储介质


[0001]本申请涉及但不限于数据库
,尤其涉及一种数据同步方法

装置

设备和存储介质


技术介绍

[0002]数据同步系统通常采用异步复制的方式进行数据同步,但是在异步复制的方式下,一旦系统发生灾备切换,极易发生数据丢失的风险,无法保证业务系统的持续运行

[0003]目前,针对已提交的数据,数据同步系统可以通过日志信息中的唯一位点,进行数据恢复

但是,针对未提交的数据,现有的数据同步系统却无法确定出一个安全的恢复位点进行数据恢复,造成数据大量丢失,甚至出现数据的重复读取,进而影响业务系统的持续运行


技术实现思路

[0004]本申请提供一种数据同步方法

装置

设备和存储介质,解决了相关技术中数据同步系统却无法确定出一个安全的恢复位点进行数据恢复,造成数据大量丢失,甚至出现数据的重复读取,进而影响业务系统的持续运行的问题

[0005]本申请的技术方案是这样实现的:
[0006]一种数据同步方法,该方法包括:
[0007]获取数据同步任务的当前事务状态;
[0008]根据当前事务状态,从第一位点和第二位点中确定目标位点;
[0009]以目标位点为数据同步任务的读取起点,执行数据同步操作

[0010]一种数据同步装置,该装置包括:
[0011]获取模块,用于获取数据同步任务的当前事务状态;
[0012]处理模块,用于根据当前事务状态,从第一位点和第二位点中确定目标位点;
[0013]控制模块,用于以目标位点为数据同步任务的读取起点,执行数据同步操作

[0014]一种数据同步设备,该设备包括:
[0015]一个或多个处理器;
[0016]存储器,用于存储一个或多个程序;
[0017]当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述的数据同步方法的步骤

[0018]一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述的数据同步方法的步骤

[0019]本申请实施例提供的一种数据同步方法

装置

设备和存储介质,该方法包括:获取数据同步任务的当前事务状态;根据所述当前事务状态,从第一位点和第二位点中确定目标位点;以所述目标位点为所述数据同步任务的读取起点,执行数据同步操作;解决了相关技术中数据同步系统无法确定出一个安全的恢复位点进行数据恢复,造成数据大量丢
失,甚至出现数据的重复读取,进而影响业务系统的持续运行的问题

附图说明
[0020]图1为本申请的实施例提供的数据同步方法的流程示意图;
[0021]图2为本申请的实施例提供的数据同步装置的示意图;
[0022]图3为本申请的实施例提供的数据同步设备的示意图;
[0023]图4为本申请的实施例提供的灾备场景下的数据同步方法的流程示意图;
[0024]图5为本申请的实施例提供的确定安全恢复位点的流程示意图;
[0025]图6为本申请的实施例提供的基于日志解析的数据同步方法的流程示意图;
[0026]图7为本申请的实施例提供的灾备场景下的持久化存储同步方法的示意图;
[0027]图8为本申请的实施例提供的另一种数据同步装置的示意图;
[0028]图9为本申请的实施例提供的基于远程方式实现数据同步的部署架构图;
[0029]图
10
为本申请的实施例提供的基于本地方式实现数据同步的部署架构图

具体实施方式
[0030]为了使本申请的目的

技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围

[0031]在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合

[0032]在以下的描述中,所涉及的术语“第一
\
第二
\
第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一
\
第二
\
第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施

[0033]除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
的技术人员通常理解的含义相同

本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请

[0034]本申请的实施例提供一种数据同步方法,参照图1所示,该方法包括以下步骤:
[0035]S101、
获取数据同步任务的当前事务状态

[0036]其中,当前事务状态用于表征当前事务的处理程度,包括事务已提交的状态和事务未提交的状态

[0037]其中,数据同步任务是指将源数据库中的数据先提交到数据缓存中,再将已提交到缓存中的数据发送至目标数据库中,完成数据备份

[0038]本申请实施例中,当采用日志解析的方式获取源数据库全量或增量数据时,可能会存在两种情况:一种情况下,日志中只包含已提交的事务,此时进行数据同步操作时,获取到的数据同步任务的当前事务状态就为提交状态;另一种情况下,日志中包含未提交的事务,此时进行数据同步操作时,获取到的数据同步任务的当前事务状态就为未提交状态

[0039]示例性地,还可以采用查询的方式获取源数据库全量或增量数据

[0040]S102、
根据当前事务状态,从第一位点和第二位点中确定目标位点

[0041]其中,第一位点用于表征数据的缓存数据偏移量,第二位点用于表征数据的事务提交进度

可以理解地,第一位点为日志中的数据偏移量对应的位点,即缓存数据偏移位点,可以是当前数据的最大偏移量所在的位置;第二位点为日志中事务唯一标识符
(Identity Document

ID)
对应的位点,即事务提交位点,可以是事务开始的位置

一般地,缓存数据偏移位点所在的位置相比于事务提交位点所在的位置更靠后

[0042]本申请实施例中,为了保证数据完整性,需要结合当前事务状态,从第一位点和第二位点中选择较为可靠的位点作为数据同本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种数据同步方法,其特征在于,包括:获取数据同步任务的当前事务状态;根据所述当前事务状态,从第一位点和第二位点中确定目标位点;以所述目标位点为所述数据同步任务的读取起点,执行数据同步操作
。2.
根据权利要求1所述的方法,其特征在于,所述根据所述当前事务状态,从第一位点和第二位点中确定目标位点,包括:若所述当前事务状态为提交状态,确定所述第一位点为所述目标位点
。3.
根据权利要求1所述的方法,其特征在于,所述根据所述当前事务状态,从第一位点和第二位点中确定目标位点,包括:若所述当前事务状态为未提交状态,且所述第一位点对应的数据满足数据读取条件,确定所述第一位点为所述目标位点
。4.
根据权利要求1所述的方法,其特征在于,所述根据所述当前事务状态,从第一位点和第二位点中确定目标位点,包括:若所述当前事务状态为未提交状态,且所述第一位点对应的数据不满足数据读取条件,确定所述第二位点为所述目标位点
。5.
根据权利要求2所述的方法,其特征在于,所述第一位点包括第一子位点,所述若所述当前事务状态为提交状态,确定所述第一位点为所述目标位点,包括:若所述当前事务状态为提交状态,且所述第一子位点对应的数据存在,确定所述第一子位点为所述目标位点
。6.
根据权利要求5所述的方法,其特征在于,所述以所述目标位点为所述数据同步任务的读取起点,执行数据同步操作,包括:以所述第一子位点为所述数据同步任务的读取起点,从第一缓存读取数据,并将读取的数据发送至目标数据库
。7.
根据权利要求3所述的方法,其特征在于,所述第一位点包括第一子位点和第二子位点;所述若所述当前事务状态为未提交状态,且所述第一位点对应的数据满足数据读取条件,确定所述第一位点为所述目标位点,包括:若所述当前事务状态为未提交状态,所述第一子位点对应的数据不存在,且所述第二子位点对应的数据存在,确定所述第二子位点为所述目标位点
。8.
根据权利要求7所述的方法,其特征在于,所述以所述目标位点为所述数据同步任务的读取起点,执行数据同步操作,包括:以所述第二子位点为所述数据同步任务的读取起点,从源数据库读取数据,并将读取的数据发送至第二缓存
。9.
根据权利要求8所述的方法,其特征在于,所述以所述第二子位点为所述数据同步任务的读取起点,从源数据库读取数据,并将读取的数据发送至第二缓存,包括:接收...

【专利技术属性】
技术研发人员:陈肃徐志超刘瀚林陈节勋陈诚陈雷
申请(专利权)人:北京逐风科技有限公司
类型:发明
国别省市:

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

1