一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种适用于不同数据库的数据同步系统的运作方法与流程

2022-02-24 16:40:43 来源:中国专利 TAG:


1.本发明属于计算机技术领域,涉及一种数据库运作,特别是一种适用于不同数据库的数据同步系统的运作方法。


背景技术:

2.随着国家对信息化建设的重视,对信息安全建设的加强,各重要系统要求使用安全可靠的国产系统,其中涉及软件、硬件使用国产化替换;在替换后,为了保证系统迁移后不影响系统使用人员的工作,一般要求迁移前、后的系统同时双轨运行一段时间;由于系统运行在不同的数据库系统之上,系统使用人员即使用非国产化环境下的系统,又要使用国产化环境下的系统,这就要求在运行过程中保证两个系统中的数据一致;在系统双轨运行结束后,系统可以在原系统停用后,无需任何操作且无数据丢失的情况下,直接切换到国产化环境下,整个切换过程需要达到快速且不影响原业务正常进行的目的。
3.现有解决方案是在数据库层面进行数据同步,需要对原数据库以及迁移后的数据库进行数据同步操作,现有方案的缺点是对原有系统的数据库有侵入操作,在数据量较大,更新较频繁的系统中,会影响原数据库的性能,进而导致系统运行异常,且同步有可能出现不及时的情况,以及同步失败后未有保证再次执行的措施。这种办法存在数据丢失、不能时时同步的情况,且不能真正实现双系统的双轨运行。


技术实现要素:

4.本发明的目的是针对现有的技术存在上述问题,提出了一种在应用系统和数据库中间添加一个数据库中间件系统,仅解决双轨运行时新数据同步的适用于不同数据库的数据同步系统的运作方法。
5.本发明的目的可通过下列技术方案来实现:一种适用于不同数据库的数据同步系统的运作方法,该系统包括配置模块、连接模块、解析模块、分发模块、反馈模块和日志模块,其运作方法包括以下步骤:
6.s1、在配置文件中,配置原数据库和目标数据库的相关连接信息,并根据实际情况,配置系统的运行参数以及原库和目标库差异化对应;
7.s2、启动系统,系统自动读取配置信息,初始化系统运行环境以及各模块的启动运行;
8.s3、修改原系统的数据库连接部分,使原系统连接的目标数据库的地址和端口为所在服务器的地址以及配置中的端口;
9.s4、原系统执行数据库的增删改查操作时,通过解析模块对要执行的操作进行解析,形成目标数据库对应的待执行脚本;
10.s5、将原脚本发送的原数据库执行,并将改造后的目标数据库的待执行脚本加入到目标库待执行队列中,等待队列的自动执行,队列保证脚本发送到目标库并执行;
11.s6、获取原数据库的执行结果,并将结果由反馈模块发送给原应用系统;
12.s7、根据配置决定是否记录系统运行日志。
13.在上述的适用于不同数据库的数据同步系统的运作方法中,所述配置模块用于完成:配置原、目标数据库的连接;配置原、目标数据库中函数的差异性;配置原、目标数据库中连接池的相关参数;配置系统相关的其它运行参数。
14.在上述的适用于不同数据库的数据同步系统的运作方法中,所述其它运行参数包括系统缓存参数、系统垃圾整理机制参数、系统心跳参数。
15.在上述的适用于不同数据库的数据同步系统的运作方法中,所述连接模块用于接受原系统的数据库连接,并将本系统连接到目标数据库;系统支持连接池的配置,保持多个对数据库的连接,各个连接各自控制自身的空闲与繁忙状态的转化;系统周期性检测配置参数和目前正常连接,同时根据系统运行现状以及配置信息将不可用连接进行剔除并补充新连接,并根据目前连接数和配置信息来决定是否增加连接数。
16.在上述的适用于不同数据库的数据同步系统的运作方法中,所述解析模块用于对要执行的sql脚本进行解析,区分出原、目标库之间的差异性,并对目标库脚本进行改造;解析模块主要用于对接收到的sql脚本分析出其中的命令、字段以及使用的函数,并根据配置信息进行相关不兼容sql命令的替换,在解析模块中将原本的一条sql语句拆分为两条sql语句。
17.在上述的适用于不同数据库的数据同步系统的运作方法中,所述分发模块用于对原sql脚本进行目标库的分发,并将改造后的sql脚本分发到目标库执行队列中;将解析后的sql脚本进行主库和目标库的分发,原sql脚本分发到主库,解析后的sql脚本分发到内部消息队列,该队列执行解析后脚本后,不对执行结果进行反馈。
18.在上述的适用于不同数据库的数据同步系统的运作方法中,所述反馈模块用于sql脚本的执行需要反馈信息给应用系统,反馈信息包含简单信息或者结构化的数据,根据执行的结果将反馈信息进行解析封装,反馈给原系统所需要的数据结构;对于目标库的sql脚本的执行,该部分仅作日志记录,用于记录sql脚本执行是否完成以及是否正确。
19.在上述的适用于不同数据库的数据同步系统的运作方法中,所述日志模块用于记录系统的运行日志以及系统的sql脚本的运行情况。系统日志分为两部分,系统运行状况日志和sql脚本日志,用于对系统的运行稳定性进行跟踪以及运维中进行纠错处理。
20.在上述的适用于不同数据库的数据同步系统的运作方法中,在双轨运行时,迁移后系统采用步骤s1进行配置,此时的原数据库对应迁移后的国产化数据库,目标数据库对应迁移前的非国产化数据库,迁移后系统执行步骤s2至步骤s7。
21.与现有技术相比,本适用于不同数据库的数据同步系统的运作方法具有以下有益效果:
22.可以保证原系统数据库中的数据和目标库中数据的一致性,同时不影响原库和目标库的性能,对原数据库和目标数据库的操作,不占用原系统数据库和目标系统数据库的运行资源,不影响二者性能。
附图说明
23.图1是本适用于不同数据库的数据同步系统的运行原理图。
具体实施方式
24.下面结合附图和具体实施例对本发明的具体实施方式做进一步说明:
25.本发明主要用于解决系统双轨运行时的异构数据库的数据时时同步问题,提供了一种在国产化可信环境中的系统迁移后双轨运行时的数据时时同步的方法和系统。
26.由于不同数据库在数据类型、数据库函数等方面的不同,异种数据库的同步不能在数据库层面直接进行,需要借助应用系统的能力进行时时同步,本发明相当于一个数据库中间件,用于对数据库执行脚本的拦截、解析、改造以及执行,对于应用系统而言,相当于一个数据检索引擎。在迁移前、后系统对数据库操作时,本发明接收对数据库的操作脚本,并对脚本进行针对目标库的改造,将改造前、后的脚本,由分发模块分发到系统原、目标数据库执行,对数据库侵入较少,没有性能损耗。
27.如图1所示,本适用于不同数据库的数据同步系统的运作方法,该系统包括配置模块、连接模块、解析模块、分发模块、反馈模块和日志模块,其运作方法包括以下步骤:
28.s1、在配置文件中,配置原数据库和目标数据库的相关连接信息,并根据实际情况,配置系统的运行参数以及原库和目标库差异化对应;
29.s2、启动系统,系统自动读取配置信息,初始化系统运行环境以及各模块的启动运行;
30.s3、修改原系统的数据库连接部分,使原系统连接的目标数据库的地址和端口为所在服务器的地址以及配置中的端口;
31.s4、原系统执行数据库的增删改查操作时,通过解析模块对要执行的操作进行解析,形成目标数据库对应的待执行脚本;
32.s5、将原脚本发送的原数据库执行,并将改造后的目标数据库的待执行脚本加入到目标库待执行队列中,等待队列的自动执行,队列保证脚本发送到目标库并执行;
33.s6、获取原数据库的执行结果,并将结果由反馈模块发送给原应用系统;
34.s7、根据配置决定是否记录系统运行日志。
35.配置模块用于完成:配置原、目标数据库的连接;配置原、目标数据库中函数的差异性;配置原、目标数据库中连接池的相关参数;配置系统相关的其它运行参数。
36.其它运行参数包括系统缓存参数、系统垃圾整理机制参数、系统心跳参数。
37.连接模块用于接受原系统的数据库连接,并将本系统连接到目标数据库;系统支持连接池的配置,保持多个对数据库的连接,各个连接各自控制自身的空闲与繁忙状态的转化;系统周期性检测配置参数和目前正常连接,同时根据系统运行现状以及配置信息将不可用连接进行剔除并补充新连接,并根据目前连接数和配置信息来决定是否增加连接数。
38.解析模块用于对要执行的sql脚本进行解析,区分出原、目标库之间的差异性,并对目标库脚本进行改造;解析模块主要用于对接收到的sql脚本分析出其中的命令、字段以及使用的函数,并根据配置信息进行相关不兼容sql命令的替换,在解析模块中将原本的一条sql语句拆分为两条sql语句。
39.分发模块用于对原sql脚本进行目标库的分发,并将改造后的sql脚本分发到目标库执行队列中;将解析后的sql脚本进行主库和目标库的分发,原sql脚本分发到主库,解析后的sql脚本分发到内部消息队列,该队列执行解析后脚本后,不对执行结果进行反馈。
40.反馈模块用于sql脚本的执行需要反馈信息给应用系统,反馈信息包含简单信息或者结构化的数据,根据执行的结果将反馈信息进行解析封装,反馈给原系统所需要的数据结构;对于目标库的sql脚本的执行,该部分仅作日志记录,用于记录sql脚本执行是否完成以及是否正确。
41.日志模块用于记录系统的运行日志以及系统的sql脚本的运行情况。系统日志分为两部分,系统运行状况日志和sql脚本日志,用于对系统的运行稳定性进行跟踪以及运维中进行纠错处理。
42.使用本系统的前提是迁移前后,两个数据库中的原有数据已经过步一致,本系统仅解决双轨运行时新数据的同步。本系统在应用系统和数据库中间添加一个数据库中间件系统,应用系统直接连接到该中间件,由中间件对要执行的sql脚本进行分流,即将要执行的sql脚本分析改造后,根据系统配置信息,将脚本改造为适应于目标数据库,然后将原脚本和改造后的脚本分别发送到两个数据库中;其中原数据库执行后,接收返回的数据,反馈给应用,改造后的脚本在备份库仅执行,不接收返回的数据。
43.在双轨运行时,迁移后系统采用步骤s1进行配置,此时的原数据库对应迁移后的国产化数据库,目标数据库对应迁移前的非国产化数据库,迁移后系统执行步骤s2至步骤s7。
44.在系统进行国产化迁移改造后,由于系统所牵涉的外设、第三方软件国产化进度不一致,导致系统在国产化和非国产化下同时运行两套系统,并由此导致数据不一致问题可以得到解决,且本解决方案不会对原系统和迁移后的系统带来明显的性能降低和资源占用,且在结束双轨运行时,不用担心数据不一致问题。
45.与现有技术相比,本适用于不同数据库的数据同步系统的运作方法具有以下有益效果:
46.可以保证原系统数据库中的数据和目标库中数据的一致性,同时不影响原库和目标库的性能,对原数据库和目标数据库的操作,不占用原系统数据库和目标系统数据库的运行资源,不影响二者性能。
47.当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献