本技术的实施例涉及数据同步,特别涉及一种面向数据库国产化替代的异构数据库间的数据同步方法。
背景技术:
1、随着数字化转型进程的加速和信息技术的迅猛发展,各行业的数字化程度越来越高,而承载数字化业务的信息系统也迎来多样性的发展。随之而来的有信息系统的新建、升级、改造等,在这些工作中,作为提供数据计算、存储、处理等服务的数据库及数据库软件是一个不可忽视的对象。
2、在进行数据库国产化替代、微服务改造升级、架构优化等工作中,源数据库中原有的数据需要被保存下来,同步(迁移)到新的国产数据库中,从而继续提供数据服务,满足各项业务要求。
3、目前已提出的数据库间的数据同步(数据迁移)方法,大多都是面向同构数据库的,同构数据库的数据格式相同,可以直接进行数据同步。然而,技术人员在进行数据库国产化替代时发现,国外数据库与国产数据库存在着较大的异构隔阂,无法直接进行数据同步,只能依靠技术人员对源数据库(旧数据库)中的数据进行整理和重构,再存储至新的国产数据库中,耗时耗力,不够智能。
4、申请号为202210208292.2的中国发明专利公开了一种应用于国产化替代的数据迁移方法与系统,通过api接口(application programming interface,应用程序编程接口)与源数据库建立连接,调用元数据接口得到结果集,处理结果集得到源数据库中各表的信息,随后对源数据表中的数据信息进行提取,并存储到json(javascript objectnotation)文件中,根据数据类型转换方法对数据进行转换,生成建表sql(structuredquery language,结构化查询语言)语句,连接至目的数据库,创建表结构并解析json文件中的数据信息,最后在创建的新表中插入数据,完成数据迁移,从而能够快速、正确、高效地实现数据库结构、内容及其系统的平滑迁移,既提高了数据管理效率,又保证了数据安全。
5、然而,该方法的本质是将源数据库停运,再通过调用api接口、进行数据类型转换、建表、插入数据的方式,实现数据迁移,并没有考虑信息系统的业务需求。若源数据库不能停运,则无法使用该方法进行数据迁移,这也就无法满足部署了关键性业务的数据库的国产化替代需求。除此之外,在数据量非常大的情况下,该方法需要耗费大量时间进行源数据库的数据提取,成本较高。
技术实现思路
1、有鉴于此,本技术的实施例提出了一种面向数据库国产化替代的异构数据库间的数据同步方法,旨在高效、快速、准确、低成本地实现异构数据库之间的数据同步,在源数据库不能停运的情况下,也可以实现数据的追加同步,有助于全行业的数据库国产化替代。
2、为了实现上述目的,本技术的实施例提供了一种面向数据库国产化替代的异构数据库间的数据同步方法,包括:确定信息系统的源数据库,并根据信息系统的业务需求,选择新的国产数据库,源数据库与新的国产数据库之间是异构的;将源数据库中的表结构统一导出为数据库通用语言编制的建表语句,并在新的国产数据库中执行,使新的国产数据库具有与源数据库一样的表结构;根据信息系统的业务需求、业务特性和源数据库特性,判断源数据库是否可以停运;若源数据库可以停运,则停运源数据库,编写第一应用程序,利用第一应用程序将源数据库中的每个表中的数据统一导出为数据库通用语言编制的数据插入语句,依次在新的国产数据库中执行,以完成源数据库与新的国产数据库之间的数据同步;若源数据库不可以停运,则编写第二应用程序,利用第二应用程序,以设定的第一时间点为准,将源数据库中的每个表中的第一时间点及第一时间点以前的数据,统一导出为数据库通用语言编制的数据插入语句,依次在新的国产数据库中执行,并在第一时间点之后,抽取源数据库所在的服务器的日志,基于源数据库所在的服务器的日志,进行第一时间点之后的数据的追加同步。
3、为了实现上述目的,本技术的实施例还提供了一种面向数据库国产化替代的异构数据库间的数据同步系统,包括:数据库选择模块,用于确定信息系统的源数据库,并根据信息系统的业务需求,选择新的国产数据库,源数据库与新的国产数据库之间是异构的;表结构同步模块,用于将源数据库中的表结构统一导出为数据库通用语言编制的建表语句,并在新的国产数据库中执行,使新的国产数据库具有与源数据库一样的表结构;停运判别模块,用于根据信息系统的业务需求、业务特性和源数据库特性,判断源数据库是否可以停运;停运数据同步模块,用于在源数据库可以停运的情况下,停运源数据库,编写第一应用程序,利用第一应用程序将源数据库中的每个表中的数据统一导出为数据库通用语言编制的数据插入语句,依次在新的国产数据库中执行,以完成源数据库与新的国产数据库之间的数据同步;不停运数据同步模块,用于在源数据库不可以停运的情况下,编写第二应用程序,利用第二应用程序,以设定的第一时间点为准,将源数据库中的每个表中的第一时间点及第一时间点以前的数据,统一导出为数据库通用语言编制的数据插入语句,依次在新的国产数据库中执行,并在第一时间点之后,抽取源数据库所在的服务器的日志,基于源数据库所在的服务器的日志,进行第一时间点之后的数据的追加同步。
4、为了实现上述目的,本技术的实施例还提供了一种服务器,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述所述的面向数据库国产化替代的异构数据库间的数据同步方法。
5、为了实现上述目的,本技术的实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,能够实现如上述所述的面向数据库国产化替代的异构数据库间的数据同步方法。
6、本技术的实施例提出的面向数据库国产化替代的异构数据库间的数据同步方法,总体上分为两个部分进行异构数据库间的数据同步,先同步两个数据库之间的表结构,再将源数据库中的数据同步至新的国产数据库中。在进行数据同步时,根据信息系统的业务需求、业务特性和源数据库特性,对源数据库进行停运判别。对于源数据库可以停运的情况,编写第一应用程序,利用第一应用程序将源数据库中的每个表中的数据统一导出为数据库通用语言编制的数据插入语句,依次在新的国产数据库中执行,以完成源数据库与新的国产数据库之间的数据同步。对于源数据库不可以停运的情况,编写第二应用程序,利用第二应用程序先将已有的数据按照停运同步的方式实现同步,再对未到来的数据,通过抽取日志和日志分析的方式进行追加同步。该方法可以高效、快速、准确、低成本地实现异构数据库之间的数据同步,即使在源数据库不能停运的情况下,也可以通过抽取日志、进行日志分析的方式实现数据的追加同步,有助于进行全行业的数据库国产化替代,为数据安全、网络安全提供了有效的实现手段。
7、可选地,在第一时间点之后,抽取源数据库所在的服务器的日志,基于源数据库所在的服务器的日志,进行第一时间点之后的数据的追加同步,包括:在第一时间点之后,创建若干个子进程,不同的子进程负责对源数据库的不同的表中的数据进行追加同步,各子进程并发执行;利用第二应用程序抽取源数据库所在的服务器的日志,对源数据库所在的服务器的日志进行日志分析,提取出对源数据库的操作语句,并分离出第一时间点之后的操作语句;将第一时间点之后的操作语句转换为数据库通用语言编制的数据库操作语句,并在新的国产数据库中执行,以进行第一时间点之后的数据的追加同步;进行源数据库与新的国产数据库之间的表和数据的对比,若二者均一致,则确认完成数据同步,否则,设置第二时间点,进行新一轮的追加同步,直至源数据库与新的国产数据库之间的表和数据均一致。
8、可选地,若源数据库中的数据量大于预设的处理阈值,则编写若干个第一应用程序和若干个第二应用程序,进行高并发的数据同步;其中,不同的第一应用程序、不同的第二应用程序部署在不同的服务器上,或者,不同的第一应用程序、不同的第二应用程序部署在同一个服务器上,但是采用不同的端口号,以绑定该服务器的不同的网卡,从而实现网络输入输出的最大化利用和服务器硬件资源的最大化利用。
9、可选地,根据信息系统的业务需求、业务特性和源数据库特性,判断源数据库是否可以停运,包括:根据信息系统的业务需求,确定业务需求得分,信息系统的业务需求为事务型业务需求或分析型业务需求;根据信息系统的业务特性,确定业务特性得分,信息系统的业务特性包括办理量、办理频率、办理耗时、好评率、投诉率和排队时间;根据源数据库特性,确定源数据库特性得分,源数据库特性由性能指标、容量指标、可用性指标、安全性指标和效率指标进行描述;基于业务需求得分、业务特性得分和源数据库特性得分,确定停运得分,若停运得分低于预设的停运阈值,则不允许停运,若停运得分不低于预设的停运阈值,则允许停运。
10、可选地,基于业务需求得分、业务特性得分和源数据库特性得分,确定停运得分,通过以下公式实现:
11、;
12、;
13、;
14、;
15、其中,表示停运得分,表示业务需求得分,表示业务特性得分,表示源数据库特性得分,、和分别表示预设的第一停运权重系数、第二停运权重系数和第三停运权重系数,当信息系统的业务需求为事务型业务需求时,,表示事务型业务需求得分,当信息系统的业务需求为分析型业务需求时,,,表示分析型业务需求得分,表示办理量得分,表示办理频率得分,表示办理耗时得分,表示好评率得分,表示投诉率得分,表示排队时间得分,、、、、和分别表示预设的第一业务特性权重系数、第二业务特性权重系数、第三业务特性权重系数、第四业务特性权重系数、第五业务特性权重系数和第六业务特性权重系数,表示性能指标得分,表示容量指标得分,表示可用性指标得分,表示安全性指标得分,表示效率指标得分,、、、和分别表示预设的第一源数据库特性权重系数、第二源数据库特性权重系数、第三源数据库特性权重系数、第四源数据库特性权重系数和第五源数据库特性权重系数。
16、可选地,使用java语言编写第一应用程序和第二应用程序。
17、可选地,信息系统的业务需求分为事务型业务需求和分析型业务需求;事务型业务需求包括系统登录业务、档案存储业务、远程费控业务、远程充值业务、终端登录业务、终端在线率查询业务和费控充值情况查询业务;对于事务型业务需求而言,需要选择事务型国产数据库作为新的国产数据库,事务型国产数据库包括gaussdb数据库、oceanbase数据库、达梦数据库、kingbase数据库和tdsql数据库;分析型业务需求包括历史业务、历史查询业务、采集成功率查询业务、台区线损查询业务、计量异常监测业务、采集完整率查询业务、配变负载分析业务和对外实时发布业务;对于分析型业务需求而言,需要选择分析型国产数据库作为新的国产数据库,分析型国产数据库包括dws数据库、gbase数据库和tdsql-a数据库。