System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于虚谷数据库的数据同步方法、系统、介质及设备技术方案_技高网

一种基于虚谷数据库的数据同步方法、系统、介质及设备技术方案

技术编号:44494061 阅读:0 留言:0更新日期:2025-03-04 18:00
本发明专利技术公开了一种基于虚谷数据库的数据同步方法、系统、介质及设备,属于数据库同步领域,解决同步的入库效率低的问题,该方法主要包括:采用多路读线程实时检测捕获服务端生产的事务操作binlog日志;将捕获的binlog日志结合对应表的元数据信息进行解析;基于断点续传机制,将解析后的数据通过对应多路写线程批量同步写入同构或异构目标端。本发明专利技术将同步工具包装成任务流的形式,同时优化写线程的并发逻辑,提高同步的入库效率。

【技术实现步骤摘要】

本专利技术涉及数据库同步领域,尤其涉及一种基于虚谷数据库的数据同步方法、系统、介质及设备


技术介绍

1、虚谷数据库是一款原创的原生分布式数据库,从2002开始自主迭代至今的数据库软件产品。在使用上,完全兼容传统关系型数据库的方式,提供了标准的对象及过程管理模型,配套各类数据库接口及管理工具。数据库核心引擎采用全链路(集中式与分布式合一)架构,数据以物理切片的方式存放到数据节点中,计算则由各个计算节点同时响应。

2、虚谷数据库数据同步软件以虚谷分布式数据库作为数据源进行数据的全量和增量同步及分发,提供界面化配置和启动。面对日益增长的数据量,虚谷数据库数据同步软件将虚谷分布式数据库中存储的海量数据灵活地按需进行同步分发,满足用户基于海量数据的各类精细化数据服务需求,比如专题库建立、重要数据归档备份、全量数据归档备份等。虚谷数据库数据同步软件增量同步基于虚谷分布式数据库日志架构,完全不依赖于存储过程、函数、物化视图和触发器等,无需任何代理,对源库零侵入性,完全不影响源库应用系统。

3、但目前虚谷数据库在数据同步中存在问题:一是出现网络闪断或丢包的情况下ddl变更无法让所有写线程都收到消息,导致部分写入线程一直处于等待状态无法唤醒;同时在软件重启后同步数据会出现丢失或重复。二是当前单个同步工具是针对整个库级的同步,资源使用上较小,对于需大量数据同步的场景,目前需要开启多个同步工具绑定多个订阅进行操作,步骤较为繁琐。


技术实现思路

1、本专利技术的目的在于克服现有技术中存在的技术问题,提供了一种基于虚谷数据库的数据同步方法、系统、介质及设备,保证同步的入库效率。

2、本专利技术的目的是通过以下技术方案来实现的:

3、第一方面,提供一种基于虚谷数据库的数据同步方法,包括:

4、采用多路读线程实时检测捕获服务端生产的事务操作binlog日志;

5、将捕获的binlog日志结合对应表的元数据信息进行解析;

6、基于断点续传机制,将解析后的数据通过对应多路写线程批量同步写入同构或异构目标端。

7、在本申请的一些可能实施例中,所述将捕获的binlog日志结合对应表的元数据信息进行解析,包括:

8、反向生成标准sql语句或以字段为单位的键值数据集。

9、在本申请的一些可能实施例中,所述binlog日志在服务端以库为单位进行管理记载,其中将binlog日志以表为单位切分。

10、在本申请的一些可能实施例中,所述将解析后的数据通过对应多路写线程批量同步写入同构或异构目标端,包括:

11、在binlog日志的所有分区同时记载一条相同的ddl命令;

12、定义一个原子类型参数,每有一个分区binlog日志发送到写线程时,所述原子类型参数的数值减一,并将当前写线程设置为等待状态,直到最后一个写线程接收到ddl命令后只由最后一个线程执行ddl命令,并唤醒前面等待的写线程。

13、在本申请的一些可能实施例中,所述断点续传机制包括:

14、当异构目标端为开源流处理平台,重启时从开源流处理平台拉取最后一条发送成功的消息,从消息中取出其在服务端binlog日志中对应的偏移量,同步程序结合保存点和该偏移量,忽略已发送到开源流处理平台的binlog项;

15、当异构目标端为关系型数据库,采用同步软件自身保存点和关系型数据库唯一性约束结合的方式。

16、在本申请的一些可能实施例中,所述将解析后的数据通过对应多路写线程批量同步写入同构或异构目标端,还包括:

17、增加守护线程,在指定时间内判断是否还有处于等待状态的写线程,若有则全部唤醒,并让唤醒的最后一个写线程执行ddl命令。

18、优选地,写线程执行ddl命令,包括:

19、异构目标端为开源流处理平台,直接将二进制信息发送至开源流处理平台对应的topic表;若目标端是关系型数据库,则解析binlog信息组装成sql进行批量入库操作。

20、第二方面,提供一种基于虚谷数据库的数据同步系统,包括:

21、服务端;

22、同构或异构目标端;

23、同步工具,包括同步写入器和binlog日志读取解析器,所述binlog日志读取解析器采用多路读线程实时检测捕获服务端生产的事务操作binlog日志,并将捕获的binlog日志结合对应表的元数据信息进行解析;所述同步写入器基于断点续传机制,将解析后的数据通过对应多路写线程批量同步写入同构或异构目标端。

24、第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现任意一项所述的数据同步方法。

25、第四方面,提供一种电子设备,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机指令,处理器运行计算机指令时执行任意一项所述的数据同步方法。

26、需要进一步说明的是,上述各选项对应的技术特征在不冲突的情况下可以相互组合或替换构成新的技术方案。

27、与现有技术相比,本专利技术有益效果是:

28、(1)本专利技术采用多路读线程实时检测捕获服务端生产的事务操作binlog日志;将捕获的binlog日志结合对应表的元数据信息进行解析;基于断点续传机制,将解析后的数据通过对应多路写线程批量同步写入同构或异构目标端。将同步工具包装成线程任务流的形式,同时优化写线程的并发逻辑,提高同步的入库效率。

29、(2)考虑到同步工具本身和运行环境可能出现的断电或断网故障,本专利技术通过断点续传机制,保证软件重启后同步数据的零丢失零重复。

30、(3)本专利技术增加守护线程,在指定时间内判断是否还有处于等待状态的写线程,若有则全部唤醒,并让唤醒的最后一个写线程执行ddl命令,解决在出现网络闪断或丢包的情况下ddl变更无法让所有写线程都收到消息,导致部分写线程一直处于等待状态无法唤醒,导致数据堵塞的问题。

31、(4)本专利技术在同步工具上层再包一层管理层,将当前版本的同步工具包装成任务流,后续对于大量数据需同步场景,进行创建多个任务,后台自动实现多个同步工具的部署或以其他形式实现。

本文档来自技高网...

【技术保护点】

1.一种基于虚谷数据库的数据同步方法,其特征在于,包括:

2.根据权利要求1所述的基于虚谷数据库的数据同步方法,其特征在于,所述将捕获的binlog日志结合对应表的元数据信息进行解析,包括:

3.根据权利要求1所述的基于虚谷数据库的数据同步方法,其特征在于,所述binlog日志在服务端以库为单位进行管理记载,其中将binlog日志以表为单位切分。

4.根据权利要求3所述的基于虚谷数据库的数据同步方法,其特征在于,所述将解析后的数据通过对应多路写线程批量同步写入同构或异构目标端,包括:

5.根据权利要求1所述的基于虚谷数据库的数据同步方法,其特征在于,所述断点续传机制包括:

6.根据权利要求4所述的基于虚谷数据库的数据同步方法,其特征在于,所述将解析后的数据通过对应多路写线程批量同步写入同构或异构目标端,还包括:

7.根据权利要求6所述的基于虚谷数据库的数据同步方法,其特征在于,写线程执行DDL命令,包括:

8.一种基于虚谷数据库的数据同步系统,其特征在于,包括:

9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1-7中任意一项所述的数据同步方法。

10.一种电子设备,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机指令,其特征在于,处理器运行计算机指令时执行权利要求1-7中任意一项所述的数据同步方法。

...

【技术特征摘要】

1.一种基于虚谷数据库的数据同步方法,其特征在于,包括:

2.根据权利要求1所述的基于虚谷数据库的数据同步方法,其特征在于,所述将捕获的binlog日志结合对应表的元数据信息进行解析,包括:

3.根据权利要求1所述的基于虚谷数据库的数据同步方法,其特征在于,所述binlog日志在服务端以库为单位进行管理记载,其中将binlog日志以表为单位切分。

4.根据权利要求3所述的基于虚谷数据库的数据同步方法,其特征在于,所述将解析后的数据通过对应多路写线程批量同步写入同构或异构目标端,包括:

5.根据权利要求1所述的基于虚谷数据库的数据同步方法,其特征在于,所述断点续传机制包括:

6.根据权利要求...

【专利技术属性】
技术研发人员:张苏华吴生勇苏德财李文彬梅杰曾彬
申请(专利权)人:成都虚谷伟业科技有限公司
类型:发明
国别省市:

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

1