本文作者:kaifamei

一种数据同步方法、系统、电子设备及可存储介质与流程

更新时间:2025-12-26 14:44:14 0条评论

一种数据同步方法、系统、电子设备及可存储介质与流程



1.本发明涉及数据处理技术领域,具体为一种数据同步方法、系统、电子设备及可存储介质。


背景技术:



2.在当前的信息化时代,数据库是储存资讯时必不可少的系统,并且,在很多业务场景下,都涉及到数据库之间的数据同步,但是随着业务量的增多,数据库服务器也会越来越多,这样各个数据库服务器之间的数据同步就变得很麻烦而且容易出错,而现有的数据库同步方法都是基于日志分析器和写入器都不会出现问题的场景之上进行的,但是,如当电脑突然断电等外部因素,会导致写入器发生异常退出,而当把写入器重新启动后是无法判断上次读取的位置的,如果要重新写入还需实时记录文件读取的位置,但是这样的方式始终会出现一些问题。为此需要有一种当日志分析器和写入器发生异常也会从中断的位置开始读取的数据库同步方法。


技术实现要素:



3.本发明的目的在于克服现有数据库同步方式不能解决写入器发生异常的问题,提供了一种数据同步方法、系统、电子设备及可存储介质。
4.为了实现上述目的,本发明提供一种数据同步方法,包括以下步骤:
5.读取不同源数据库的redo日志并进行解析,对解析出来的日志文件进行处理得到json文件,将json文件按照不同源数据库以及获取顺序依次存入第一缓冲池的不同队列中,再将所述json文件按顺序存储到rocketmq中间件中;
6.按顺序获取所述rocketmq中间件中的json文件,将json文件按照不同源数据库以及获取顺序依次存入到第二缓冲池的不同队列中,依次对所述json文件进行解析,得到对应不同数据表名的sql语句,写入到与源数据库对应的目标数据库的相应数据表中。
7.作为一种可实施方式,在所述json文件按顺序存储到rocketmq中间件的过程当中,所述rocketmq中间件中每存入一个json文件,都会自动匹配一个唯一编码,记录排列顺序并根据排列顺序依次获取所述rocketmq中间件中的json文件。
8.作为一种可实施方式,在按顺序获取所述rocketmq中间件中的json文件的过程中还包括:当发生异常导致中断获取,接收到重新获取指令后根据排列顺序从中断的地方开始依次获取所述rocketmq中间件中的json文件。
9.作为一种可实施方式,将json文件按照不同源数据库以及获取顺序依次存入第一缓冲池的不同队列中的过程中,当与源数据库连接异常,第一缓冲池开启监听模式,监听是否恢复正常连接,如果正常,继续存入,如果不正常,继续与其他源数据库的存入。
10.作为一种可实施方式,将json文件按照不同源数据库以及获取顺序依次存入到第二缓冲池的不同队列中的过程中,当与目标数据库连接异常,第二缓冲池开启监听模式,监听是否恢复正常连接,如果正常,继续写入,如果不正常,继续与其他目标数据库的写入。
11.相应的,本发明还提供一种数据同步系统,包括:
12.日志分析器,读取不同源数据库的redo日志并进行解析,对解析出来的日志文件进行处理得到json文件,将json文件按照不同源数据库以及获取顺序依次存入第一缓冲池的不同队列中,再将所述json文件按顺序存储到rocketmq中间件中;
13.写入器,按顺序获取所述rocketmq中间件中的json文件,将json文件按照不同源数据库以及获取顺序依次存入到第二缓冲池的不同队列中,依次对所述json文件进行解析,得到对应不同数据表名的sql语句,写入到与源数据库对应的目标数据库的相应数据表中。
14.作为一种可实施方式,将json文件按照不同源数据库以及获取顺序依次存入第一缓冲池的不同队列中的过程中,当与源数据库连接异常,第一缓冲池开启监听模式,监听是否恢复正常连接,如果正常,继续存入,如果不正常,继续与其他源数据库的存入。
15.作为一种可实施方式,将json文件按照不同源数据库以及获取顺序依次存入到第二缓冲池的不同队列中的过程中,当与目标数据库连接异常,第二缓冲池开启监听模式,监听是否恢复正常连接,如果正常,继续写入,如果不正常,继续与其他目标数据库的写入。
16.相应的,本发明还提供了一种电子设备,包括:至少一个处理器,与至少一个所述处理器通信连接的存储器;至少一个所述处理器用于读取所述存储器中的程序,用于执行任一项所述方法。
17.相应的,本发明还提供了一种计算机可读存储介质,所述介质上存储有指令,当所述指令在计算机上运行时,使得计算机执行任一项所述的方法。
18.本发明的有益效果:本发明公开了一种数据同步方法、系统、电子设备及可存储介质,通过日志分析器读取不同源数据库的redo日志并进行解析,对解析出来的日志文件进行处理得到json文件,将json文件按照不同源数据库以及获取顺序依次存入第一缓冲池的不同队列中,再将所述json文件按顺序存储到rocketmq中间件中;再通过写入器按顺序获取所述rocketmq中间件中的json文件,将json文件按照不同源数据库以及获取顺序依次存入到第二缓冲池的不同队列中,依次对所述json文件进行解析,得到对应不同数据表名的sql语句,写入到与源数据库对应的目标数据库的相应数据表中。解决了现有技术中当写入器发生异常时需要再重新从头开始同步的问题,而是使得能够从中断的地方开始写入,提高同步效率,并且通过增加缓冲池,使得能够按顺序记录不同数据库的变动,并按照顺序写入,防止写入错误;而且,当有源数据和目标数据库发生连接异常时,可以通过缓冲池开启监听模式,判断是否连接正常,若不正常,可以继续其他数据库的写入,提高效率。
附图说明
19.图1为本发明实施例数据同步方法步骤示意图。
具体实施方式
20.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.参见图1,本实施例提供一种技术方案数据同步方法,包括以下步骤:
22.步骤s100,读取不同源数据库的redo日志并进行解析,对解析出来的日志文件进行处理得到json文件,将json文件按照不同源数据库以及获取顺序依次存入第一缓冲池的不同队列中,再将所述json文件按顺序存储到rocketmq中间件中;
23.步骤s200,按顺序获取所述rocketmq中间件中的json文件,将json文件按照不同源数据库以及获取顺序依次存入到第二缓冲池的不同队列中,依次对所述json文件进行解析,得到对应不同数据表名的sql语句,写入到与源数据库对应的目标数据库的相应数据表中。
24.执行步骤s100,将json文件按照不同源数据库以及获取顺序依次存入第一缓冲池的不同队列中的过程中,当与源数据库连接异常,第一缓冲池开启监听模式,监听是否恢复正常连接,如果正常,继续存入,如果不正常,继续与其他源数据库的存入。
25.在本实施例中,执行步骤s100的主体是日志分析器,所述日志分析器中设有第一缓冲池。具体的,首先,启动日志分析器,将所述日志分析器连接源数据库,其中,所述源数据库包括oracle数据库和mysql数据库;如果连接成功:所述日志分析器开始监控在线日志;如果连接失败:程序退出。所述日志分析器读取源数据库的redo日志并进行解析,将解析出来的日志进行序列化成json文件,将json文件按照不同源数据库以及获取顺序依次存入第一缓冲池的不同队列中,使得能够让写入器按不同数据库和获取顺序记录json文件,再将json文件存储到rocketmq中间件之中,再通过读取rocketmq中间件的方式进行同步,保证了数据记录的准确性;此时,rocketmq中间件也有数据缓冲的作用,另外当json文件存入到rocketmq中间件之中,会自动对应一个编码,按照文件存入的数据,文件一一对应编码,记录排列顺序。
26.执行步骤s200,在本实施例中,在所述json文件存储到rocketmq中间件的过程当中,所述rocketmq中间件中每存入一个json文件,都会自动匹配一个唯一编码,记录排列顺序并根据排列顺序依次获取所述rocketmq中间件中的json文件。
27.在根据排列顺序依次获取所述rocketmq中间件中的json文件的过程中还包括:当发生异常导致中断获取,接收到重新获取指令后根据排列顺序从中断的地方开始依次获取所述rocketmq中间件中的json文件。
28.在得到对应不同数据表名的sql语句的步骤之后,写入到与源数据库对应的目标数据库的相应数据表中的步骤具体包括根据数据表名将sql语句推送到不同消息队列当中,不同消息队列将接收到的对应不同表名的sql语句写入到与源数据对应的目标数据库中的相应数据表中。
29.按顺序获取所述rocketmq中间件中的json文件的方式包括通过pushconsumer方式按顺序获取所述rocketmq中间件中的json文件。
30.将json文件按照不同源数据库以及获取顺序依次存入到第二缓冲池的不同队列中的过程中,当与目标数据库连接异常,第二缓冲池开启监听模式,监听是否恢复正常连接,如果正常,继续写入,如果不正常,继续与其他目标数据库的写入。
31.在本实施例中,执行步骤s200的主体为写入器,写入器设有第二缓冲池,在写入器获取json文件的过程中,如果发生写入器异常,例如外部电脑突然断电等外部因素导致的写入器发生异常,此时因为有rocketmq中间件的存在,写入器会按照rocketmq中间件中
json文件的排列顺序,直接从中断的地方重新开始写入,即从中断的位置获取所述rocketmq中间件中的json文件,对所述json文件进行解析,得到对应不同表名的sql语句,写入到目标数据库中。
32.另外,若与写入器连接的目标数据库发生异常断开连接,第二缓冲池就会开启监听模式,监听是否与目标数据库恢复正常连接,如果正常,继续写入,如果还是不正常,继续与其他目标数据库的写入,使得写入器不会因为一个数据库的连接异常而直接停止运行,而是继续开始其他目标数据库的写入。
33.基于同一发明构思,本发明实施例还提供一种数据同步系统,包括:
34.日志分析器,读取不同源数据库的redo日志并进行解析,对解析出来的日志文件进行处理得到json文件,将json文件按照不同源数据库以及获取顺序依次存入第一缓冲池的不同队列中,再将所述json文件按顺序存储到rocketmq中间件中;
35.写入器,按顺序获取所述rocketmq中间件中的json文件,将json文件按照不同源数据库以及获取顺序依次存入到第二缓冲池的不同队列中,依次对所述json文件进行解析,得到对应不同数据表名的sql语句,写入到与源数据库对应的目标数据库的相应数据表中。基于同一发明构思,本发明实施例还提供一种电子设备,关于组成部分,可参见前述相关说明,重复之处不再冗述,包括:至少一个处理器,与所述至少一个处理器通信连接的存储器;所述至少一个处理器用于读取所述存储器中的程序,用于执行上面所述方法。
36.将json文件按照不同源数据库以及获取顺序依次存入第一缓冲池的不同队列中的过程中,当与源数据库连接异常,第一缓冲池开启监听模式,监听是否恢复正常连接,如果正常,继续存入,如果不正常,继续与其他源数据库的存入。
37.将json文件按照不同源数据库以及获取顺序依次存入到第二缓冲池的不同队列中的过程中,当与目标数据库连接异常,第二缓冲池开启监听模式,监听是否恢复正常连接,如果正常,继续写入,如果不正常,继续与其他目标数据库的写入。
38.基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,关于组成部分,可参见前述相关说明,重复之处不再冗述,所述介质上存储有指令,当所述指令在计算机上运行时,使得计算机执行上面所述方法。
39.本发明虽然己以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。

技术特征:


1.一种数据同步方法,其特征在于,包括以下步骤:读取不同源数据库的redo日志并进行解析,对解析出来的日志文件进行处理得到json文件,将json文件按照不同源数据库以及获取顺序依次存入第一缓冲池的不同队列中,再将所述json文件按顺序存储到rocketmq中间件中;按顺序获取所述rocketmq中间件中的json文件,将json文件按照不同源数据库以及获取顺序依次存入到第二缓冲池的不同队列中,依次对所述json文件进行解析,得到对应不同数据表名的sql语句,写入到与源数据库对应的目标数据库的相应数据表中。2.根据权利要求1所述的数据同步方法,其特征在于,在所述json文件按顺序存储到rocketmq中间件的过程当中,所述rocketmq中间件中每存入一个json文件,都会自动匹配一个唯一编码,记录排列顺序并根据排列顺序依次获取所述rocketmq中间件中的json文件。3.根据权利要求2所述的数据同步方法,其特征在于,在按顺序获取所述rocketmq中间件中的json文件的过程中还包括:当发生异常导致中断获取,接收到重新获取指令后根据排列顺序从中断的地方开始依次获取所述rocketmq中间件中的json文件。4.根据权利要求1所述的数据同步方法,其特征在于,将json文件按照不同源数据库以及获取顺序依次存入第一缓冲池的不同队列中的过程中,当与源数据库连接异常,第一缓冲池开启监听模式,监听是否恢复正常连接,如果正常,继续存入,如果不正常,继续与其他源数据库的存入。5.根据权利要求1所述的数据同步方法,其特征在于,将json文件按照不同源数据库以及获取顺序依次存入到第二缓冲池的不同队列中的过程中,当与目标数据库连接异常,第二缓冲池开启监听模式,监听是否恢复正常连接,如果正常,继续写入,如果不正常,继续与其他目标数据库的写入。6.一种数据同步系统,其特征在于,包括:日志分析器,读取不同源数据库的redo日志并进行解析,对解析出来的日志文件进行处理得到json文件,将json文件按照不同源数据库以及获取顺序依次存入第一缓冲池的不同队列中,再将所述json文件按顺序存储到rocketmq中间件中;写入器,按顺序获取所述rocketmq中间件中的json文件,将json文件按照不同源数据库以及获取顺序依次存入到第二缓冲池的不同队列中,依次对所述json文件进行解析,得到对应不同数据表名的sql语句,写入到与源数据库对应的目标数据库的相应数据表中。7.根据权利要求6所述的数据同步系统,其特征在于,将json文件按照不同源数据库以及获取顺序依次存入第一缓冲池的不同队列中的过程中,当与源数据库连接异常,第一缓冲池开启监听模式,监听是否恢复正常连接,如果正常,继续存入,如果不正常,继续与其他源数据库的存入。8.根据权利要求6所述的数据同步系统,其特征在于,将json文件按照不同源数据库以及获取顺序依次存入到第二缓冲池的不同队列中的过程中,当与目标数据库连接异常,第二缓冲池开启监听模式,监听是否恢复正常连接,如果正常,继续写入,如果不正常,继续与其他目标数据库的写入。9.一种电子设备,其特征在于,包括:至少一个处理器,与至少一个所述处理器通信连接的存储器;至少一个所述处理器用于读取所述存储器中的程序,用于执行如权利要求1-5
中任一项所述方法。10.一种计算机可读存储介质,其特征在于,所述介质上存储有指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-5任一项所述的方法。

技术总结


本发明涉及数据处理技术领域,公开了一种数据同步方法、系统、电子设备及可存储介质,通过日志分析器读取不同源数据库的redo日志并得到json文件,按照不同源数据库以及获取顺序依次存入第一缓冲池的不同队列中,再将按顺序存储到rocketmq中间件中;再通过写入器按顺序获取json文件,将json文件同样依次存入到第二缓冲池的不同队列中,根据json文件得到对应不同数据表名的SQL语句,写入到相应数据表中。解决了当写入器发生异常时需要再重新从头开始同步的问题,而是使得能够从中断的地方开始写入,提高同步效率,并且通过增加缓冲池,使得能够按顺序记录不同数据库的变动,并按照顺序写入,防止写入错误。防止写入错误。防止写入错误。


技术研发人员:

杨国蓉 黄益民 朱国耀 邵震洲 姚迪 邓林

受保护的技术使用者:

浙江浙大网新软件产业集团有限公司

技术研发日:

2022.09.21

技术公布日:

2022/12/19


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-55610-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2022-12-22 03:11:48

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论