数据同步方法、装置、设备及存储介质制造方法及图纸

技术编号:38884449 阅读:10 留言:0更新日期:2023-09-22 14:13
本申请公开了一种数据同步方法、装置、设备及存储介质,所述数据同步方法包括:响应于数据写入请求,获取待同步数据和待同步数据的初始同步状态信息;将待同步数据发送至第一应用,并基于第一应用,将待同步数据同步至第二应用,得到同步结果;基于同步结果,对主库和从库中的初始同步状态信息进行更新,得到更新后的目标同步状态信息;响应于数据读取请求,判断从库中待同步数据的目标同步状态信息是否满足预设的读取条件,只有当从库中待同步数据的目标同步状态信息满足预设的读取条件时,从从库中读取待读取数据,否则从主库中读取待读取数据。当待同步数据的目标同步状态信息满足读取条件时,才读取待读取数据,以避免对待同步数据的脏读。步数据的脏读。步数据的脏读。

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


[0001]本申请涉及数据库
,尤其涉及一种数据同步方法、装置、设备及存储介质。

技术介绍

[0002]随着信息技术的发展,数据量日益庞大,不少应用场景需要提供涉及大量数据的数据读写服务。
[0003]相关技术中,在数据源层面上,通过从主数据库的基础上扩展多个从库,并采用补偿事务TCC(Try

Confirm

Cancel)的方式控制多库之间的数据一致性,以实现对大量数据的读写需求。由于TCC是服务化的两阶段提交协议,第一阶段服务由业务代码编排来调用Try接口进行资源预留,只有第一阶段的Try接口都成功了,才会进入提交业务的第二阶段服务,使得多库之间的数据同步的响应速度慢,导致用户在读取数据库的数据时存在脏读(当数据进行修改后但未提交至数据库时,外部读取未修改的数据)的情况。

技术实现思路

[0004]本申请的主要目的在于提供一种数据同步方法、装置、设备及存储介质,旨在解决现有技术中用户在读取数据库的数据时存在脏读的情况的技术问题。
[0005]为实现以上目的,本申请提供一种数据同步方法,所述数据同步方法包括:
[0006]响应于外部的数据写入请求,获取待同步数据和所述待同步数据的初始同步状态信息,并将所述初始同步状态信息保存至主库和从库;
[0007]将所述待同步数据发送至第一应用,并基于所述第一应用,将所述待同步数据同步至第二应用,得到同步结果,其中,所述第一应用是用于将待同步数据写入至主库,所述第二应用是用于将待同步数据写入至从库;
[0008]基于所述同步结果,对主库和从库中的所述初始同步状态信息进行更新,得到更新后的目标同步状态信息;
[0009]响应于外部对所述待同步数据的数据读取请求,基于预设的第三应用,判断从库中所述待同步数据的目标同步状态信息是否满足预设的读取条件,只有当从库中所述待同步数据的目标同步状态信息满足预设的读取条件时,从所述从库中读取所述待读取数据,否则从所述主库中读取所述待读取数据,以避免对所述待同步数据的脏读。
[0010]可选地,所述获取所述待同步数据的初始同步状态信息的步骤,包括:
[0011]获取当前从库的从库状态,其中,所述从库状态包括从库正常状态和从库异常状态;
[0012]若当前从库的从库状态为从库正常状态,确定初始同步状态信息为同步通知下发但未同步的状态;
[0013]若当前从库的从库状态为从库异常状态,确定初始同步状态信息为同步通知未下发且未同步的状态。
[0014]可选地,所述基于所述同步结果,对主库和从库中的所述初始同步状态信息进行更新,得到更新后的目标同步状态信息的步骤,包括:
[0015]基于所述同步结果和所述从库状态,对主库和从库中的所述初始同步状态信息进行更新;
[0016]若所述同步结果为同步成功,并且所述从库状态为从库正常状态,则对主库和从库中的所述初始同步状态信息更新为同步通知下发且已同步的状态;
[0017]若所述同步结果为同步成功,并且所述从库状态为从库异常状态,则对主库和从库中的所述初始同步状态信息不进行更新;
[0018]若所述同步结果为同步失败,并且所述从库状态为从库正常状态,则对主库中的所述初始同步状态信息更新为数据回滚清除的状态,并对从库中的所述初始同步状态信息更新为同步通知下发且已回滚的状态;
[0019]若所述同步结果为同步失败,并且所述从库状态为从库异常状态,则对主库中的所述初始同步状态信息更新为数据回滚清除的状态,并对从库中的所述初始同步状态信息不进行更新。
[0020]可选地,所述判断从库中所述待同步数据的目标同步状态信息是否满足预设的读取条件的步骤,包括:
[0021]若从库中所述待同步数据的目标同步状态信息为同步通知下发且已同步的状态,则确定从库中所述待同步数据的目标同步状态信息满足预设的读取条件;
[0022]若从库中所述待同步数据的目标同步状态信息为同步通知未下发且未同步的状态,则确定从库中所述待同步数据的目标同步状态信息不满足预设的读取条件;
[0023]若从库中所述待同步数据的目标同步状态信息为同步通知下发且已回滚的状态,则确定从库中所述待同步数据的目标同步状态信息不满足预设的读取条件。
[0024]可选地,所述主库和所述从库之间为异构数据库。
[0025]可选地,所述将所述待同步数据发送至第一应用,并基于所述第一应用,将所述待同步数据同步至第二应用,得到同步结果的步骤之后,所述方法包括:
[0026]若所述同步结果为同步失败,则卸载同步失败的从库,并对所述从库中的待同步数据和目标同步状态信息进行同步异常处理。
[0027]可选地,所述从库可平行扩展,所述从库至少包括一个。
[0028]本申请还提供一种数据同步装置,所述数据同步装置包括:
[0029]获取模块,用于响应于外部的数据写入请求,获取待同步数据和所述待同步数据的初始同步状态信息,并将所述初始同步状态信息保存至主库和从库;
[0030]同步模块,用于将所述待同步数据发送至第一应用,并基于所述第一应用,将所述待同步数据同步至第二应用,得到同步结果,其中,所述第一应用是用于将待同步数据写入至主库,所述第二应用是用于将待同步数据写入至从库;
[0031]更新模块,用于基于所述同步结果,对主库和从库中的所述初始同步状态信息进行更新,得到更新后的目标同步状态信息;
[0032]读取模块,用于响应于外部对所述待同步数据的数据读取请求,基于预设的第三应用,判断从库中所述待同步数据的目标同步状态信息是否满足预设的读取条件,只有当从库中所述待同步数据的目标同步状态信息满足预设的读取条件时,从所述从库中读取所
述待读取数据,否则从所述主库中读取所述待读取数据,以避免对所述待同步数据的脏读。
[0033]本申请还提供一种数据同步设备,所述数据同步设备包括:存储器、处理器以及存储在存储器上的用于实现所述数据同步方法的程序,
[0034]所述存储器用于存储实现数据同步方法的程序;
[0035]所述处理器用于执行实现所述数据同步方法的程序,以实现所述数据同步方法的步骤。
[0036]本申请还提供一种存储介质,所述存储介质上存储有实现数据同步方法的程序,所述实现数据同步方法的程序被处理器执行以实现所述数据同步方法的步骤。
[0037]本申请提供的一种数据同步方法、装置、设备及存储介质,与相关技术中多库之间的数据同步的响应速度慢,导致用户在读取数据库的数据时存在脏读的情况相比,在本申请中,响应于外部的数据写入请求,获取待同步数据和所述待同步数据的初始同步状态信息,并将所述初始同步状态信息保存至主库和从库;将所述待同步数据发送至第一应用,并基于所述第一应用,将所述待同步数据同步至第二应用,得到同步结果,其中,所述第一应用是用于将待同步数据写入至主库,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步方法,其特征在于,所述数据同步方法包括:响应于外部的数据写入请求,获取待同步数据和所述待同步数据的初始同步状态信息,并将所述初始同步状态信息保存至主库和从库;将所述待同步数据发送至第一应用,并基于所述第一应用,将所述待同步数据同步至第二应用,得到同步结果,其中,所述第一应用是用于将待同步数据写入至主库,所述第二应用是用于将待同步数据写入至从库;基于所述同步结果,对主库和从库中的所述初始同步状态信息进行更新,得到更新后的目标同步状态信息;响应于外部对所述待同步数据的数据读取请求,基于预设的第三应用,判断从库中所述待同步数据的目标同步状态信息是否满足预设的读取条件,只有当从库中所述待同步数据的目标同步状态信息满足预设的读取条件时,从所述从库中读取所述待读取数据,否则从所述主库中读取所述待读取数据,以避免对所述待同步数据的脏读。2.如权利要求1所述的数据同步方法,其特征在于,所述获取所述待同步数据的初始同步状态信息的步骤,包括:获取当前从库的从库状态,其中,所述从库状态包括从库正常状态和从库异常状态;若当前从库的从库状态为从库正常状态,确定初始同步状态信息为同步通知下发但未同步的状态;若当前从库的从库状态为从库异常状态,确定初始同步状态信息为同步通知未下发且未同步的状态。3.如权利要求2所述的数据同步方法,其特征在于,所述基于所述同步结果,对主库和从库中的所述初始同步状态信息进行更新,得到更新后的目标同步状态信息的步骤,包括:基于所述同步结果和所述从库状态,对主库和从库中的所述初始同步状态信息进行更新;若所述同步结果为同步成功,并且所述从库状态为从库正常状态,则对主库和从库中的所述初始同步状态信息更新为同步通知下发且已同步的状态;若所述同步结果为同步成功,并且所述从库状态为从库异常状态,则对主库和从库中的所述初始同步状态信息不进行更新;若所述同步结果为同步失败,并且所述从库状态为从库正常状态,则对主库中的所述初始同步状态信息更新为数据回滚清除的状态,并对从库中的所述初始同步状态信息更新为同步通知下发且已回滚的状态;若所述同步结果为同步失败,并且所述从库状态为从库异常状态,则对主库中的所述初始同步状态信息更新为数据回滚清除的状态,并对从库中的所述初始同步状态信息不进行更新。4.如权利要求3所述的数据同步方法,其特征在于,所述判断从库中所述待同步数据的目标同步状态信息是否满足预设的读取条件的步骤,包括:若从库中所述待同步数据的目标同步状态信息为...

【专利技术属性】
技术研发人员:谢华勇张翔高鸿程俞晨琛马得宝
申请(专利权)人:招商银行股份有限公司
类型:发明
国别省市:

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

1