实现实时关系型数据库数据同步的方法技术

技术编号:30101603 阅读:34 留言:0更新日期:2021-09-18 09:06
本发明专利技术提供了一种实现实时关系型数据库数据同步的方法,该方法包括以下步骤:同步过程:对主库数据进行增删改操作时,Java应用层抓取对主库进行增删改的操作,对主库执行所述增删改操作,并异步发送所述增删改的操作到消息队列,同步进程到从库中,所述从库执行所述增删改的操作;补偿进程:设定定时检查时间,定时检查,若发现有超过预定时间还未能同步到所述从库的增删改操作,则重新将未同步到从库的数据的增删改操作同步到从库中直至从库中数据更新完成,本发明专利技术可支持所有关系型数据库、主从表结构可以不一致、从库可以不是严格的只读库、可多线程处理、可双向同步且容错性高。可双向同步且容错性高。可双向同步且容错性高。

【技术实现步骤摘要】
实现实时关系型数据库数据同步的方法


[0001]本专利技术属于数据存储
,具体涉及一种实现实时关系型数据库数据同步的方法。

技术介绍

[0002]读写分离是一种常见的解决关系型数据库性能的技术。如图1所示,需要读写的应用访问主库,只需要读数据的应用访问从库。主库、从库之间通过数据复制进行数据上的同步,保证主从库数据一致。此处数据同步是读写分离的关键技术。
[0003]目前,业界常用的方式是通过关系型数据库的日志机制,将主库的数据库日志发送到从库,在从库中回放执行实现。这个方法存在以下几个缺点:
[0004]1、日志同步需要数据库底层支持,对于商用数据库往往需要商用软件支持,需要增加成本。
[0005]2、通常要求主从库表结构一致。
[0006]3、通常要求从库严格只读。
[0007]4、通常单线程同步,同步性能受限。

技术实现思路

[0008]本专利技术是为了解决上述问题而进行的,目的在于提供一种可支持所有关系型数据库、主从表结构可以不一致、从库可以不是严格的只读库、可多线程处理、可本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种实现实时关系型数据库数据同步的方法,其特征在于,包括以下步骤:同步过程:对主库数据进行增删改操作时,Java应用层抓取对主库进行增删改的操作,对主库执行所述增删改操作,并异步发送所述增删改的操作到消息队列,同步进程到从库中,所述从库执行所述增删改的操作;补偿进程:设定定时检查时间,定时检查,若发现有超过预定时间还未能同步到所述从库的增删改操作,则重新将未同步到从库的数据的增删改操作同步到从库中直至从库中数据更新完成。2.根据权利要求1所述的实现实时关系型数据库数据同步的方法,其特征在于:抓取主库更新的数据时是Java应用程序通过ORM层插件抓取。3.根据权利要求1所述的实现实时关系型数据库数据同步的方法,其特征在于:所述消息队列为Kafka。4.根据权利要求1所述的实现实时关系型数据库数据同步的方法,其特征在于:当Java应用层抓取到对主库进行增删改的操作后,将抓取到的增删改操作的同步状态修改为“待同步”/“待删除”,所述从库执行所述增删改的操作并同步完成后返回同步结果,同步结果包括“已同步”/“同步失败”/“删除失败”,根据同步结果更新同步状态,当Java应用层抓取到对主库进行增删改的操作后,同时将系统当前时间添加到抓取的增删改的操作中作为最后修改时间。5.根据权利要求4所述的实现实时关系型数据库数据同步的方法,其特征在于:当需要同步到多个从库时,将同步状态的字段改为变长字段,其中所述变长字段中每一位代表一个...

【专利技术属性】
技术研发人员:洪俊
申请(专利权)人:上海通联金融服务有限公司
类型:发明
国别省市:

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

1