掌桥专利:专业的专利平台
掌桥专利
首页

新老系统的数据同步方法、设备及存储介质

文献发布时间:2024-04-18 19:58:26


新老系统的数据同步方法、设备及存储介质

技术领域

本发明涉及数据处理领域,尤其涉及一种新老系统的数据同步方法、设备及存储介质。

背景技术

随着业务发展,互联网公司的老系统往往需要重构,重构过程中即要保障老系统的稳定,也要保障新系统的快速重构,并完成平稳过渡。系统重构是指对现有软件系统进行结构性变化和改造的过程。它旨在改善软件系统的质量、可维护性、可扩展性和性能。

当前大部分互联网公司的做法是同步开展新老系统的维护,该方法无法保同时障老系统稳定以及新系统平稳过渡。

发明内容

本发明的主要目的在于解决在系统重构时,无法保同时障老系统稳定以及新系统平稳过渡的技术问题。

本发明第一方面提供了一种新老系统的数据同步方法,,所述新老系统的数据同步方法包括:

监听到第一软件系统产生第一数据操作时,生成所述第一数据操作对应的第一binlog日志;

根据第二软件系统对应的第二预设格式,将所述第一binlog日志转换为所述第二预设格式对应的第二数据库语句;

调用所述第二软件系统对应的第二数据库,执行所述第二数据库语句;

确定所述第二数据库语句是否执行成功;

若所述第二数据库语句执行成功,判定新老系统数据同步成功。

可选的,在本发明第一方面的第一种实现方式中,所述调用所述第二软件系统对应的第二数据库,执行所述第二数据库语句的步骤包括:

确定所述第二数据库语句的语句类型;

若所述语句类型为insert操作或者update操作,将所述第一binlog日志按照所述第二预设格式生成所述第二数据库可以执行的所述第二数据库语句,并调用所述第二软件系统对应的所述第二数据库,执行所述第二数据库语句。

可选的,在本发明第一方面的第二种实现方式中,所述确定确定所述第二数据库语句的语句类型的步骤包括:

根据所述第二数据库语句携带的数据表,判断所述第二数据库是否存在与所述数据表对应的目标数据表;

若所述第二数据库不存在与所述数据表对应的所述目标数据表,判定所述语句类型为所述insert操作;

若所述第二数据库存在与所述数据表对应的所述目标数据表,判断所述数据表与所述目标数据表是否内容一致;

若所述数据表与所述目标数据表是内容一致,判定所述语句类型为所述update操作。

可选的,在本发明第一方面的第三种实现方式中,所述若所述第二数据库存在与所述数据表对应的所述目标数据表,判断所述数据表与所述目标数据表是否内容一致的步骤之后,所述方法还包括:

若所述数据表与所述目标数据表非内容一致,确定是否存储有所述第二数据库语句对应的缓存日志;

若存储有所述第二数据库语句对应的所述缓存日志,判定成功响应所述第一数据操作。

可选的,在本发明第一方面的第四种实现方式中,所述确定所述第一数据库语句的语句类型的步骤之后,所述方法还包括:

若所述语句类型为删除操作,结束当前进程,判定成功响应所述第一数据操作。

可选的,在本发明第一方面的第五种实现方式中,所述确定所述第二数据库语句是否执行成功的步骤之后,所述方法还包括:

若所述第二数据库语句执行失败,执行原子性回滚操作,并输出所述第二数据库语句执行失败的提示信息。

可选的,在本发明第一方面的第六种实现方式中,所述若所述第一数据库语句执行成功,判定新老系统数据同步成功的步骤之后,所述方法还包括:

监听到所述第二软件系统产生第二数据操作时,生成所述第二数据操作对应的第二binlog日志;

根据所述第一软件系统对应的第一预设格式,将所述第二binlog日志转换为所述第一预设格式对应的第一数据库语句;

调用所述第一软件系统对应的第一数据库,执行所述第一数据库语句;

确定所述第一数据库语句是否执行成功;

若所述第一数据库语句执行成功,判定新老系统数据同步成功。

可选的,在本发明第一方面的第七种实现方式中,所述监听到第一软件系统产生第一数据操作时,生成所述第一数据操作对应的第一binlog日志的步骤之前,所述方法还包括:

根据所述第一数据库与所述第二数据库,获取双向同步配置表方向以及获取双向同步配置信息;

根据所述双向同步配置表方向以及所述双向同步配置信息,监听所述第一软件系统是否产生第一数据操作,并根据所述双向同步配置表方向以及所述双向同步配置信息,监听所述第二软件系统是否产生第二数据操作。

本发明第二方面提供了一种新老系统的数据同步设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述新老系统的数据同步设备执行上述的新老系统的数据同步方法。

本发明的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的新老系统的数据同步方法。

在本发明实施例中,监听到第一软件系统产生第一数据操作时,生成所述第一数据操作对应的第一binlog日志;根据第二软件系统对应的第二预设格式,将所述第一binlog日志转换为所述第二预设格式对应的第二数据库语句;调用所述第二软件系统对应的第二数据库,执行所述第二数据库语句;确定所述第二数据库语句是否执行成功;若所述第二数据库语句执行成功,判定新老系统数据同步成功。新老系统的数据同步设备通过监听和生成对应的binlog日志,以及将binlog日志转换为预设格式对应的数据库语句,确保了在第一软件系统产生的数据操作能够准确地在第二软件系统中执行。这样可以确保新老系统之间的数据同步准确无误。通过执行所述第二数据库语句,并确定其是否执行成功,可以验证数据在第二软件系统中的完整性。若第二数据库语句执行成功,就可以判定新老系统数据同步成功,说明数据在传输过程中没有丢失或损坏。利用软件系统之间的自动化流程,监听、转换、执行和判定,实现了数据同步的自动化。不需要人工干预,减少了手动操作和潜在的人为错误,提高了数据同步的效率和准确性。通过监听第一软件系统的数据操作,可以及时生成对应的binlog日志并进行转换和执行,从而实现了数据同步的实时性和及时性。新的数据操作能够及时被同步到第二软件系统中,保证了数据的实时更新。对于新老系统之间的数据同步具有明显的效果,在系统重构时,可同时障老系统稳定以及新系统平稳过渡。

附图说明

图1为本发明实施例中新老系统的数据同步方法的第一个实施例示意图;

图2为本发明实施例中新老系统的数据同步方法的第二个实施例示意图;

图3为本发明实施例中新老系统的数据同步设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种新老系统的数据同步方法、设备及存储介质。

下面将参照附图更详细地描述本发明公开的实施例。虽然附图中显示了本发明公开的某些实施例,然而应当理解的是,本发明公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本发明公开的附图及实施例仅用于示例性作用,并非用于限制本发明公开的保护范围。

在本发明公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中新老系统的数据同步方法的一个实施例包括:

101、监听到第一软件系统产生第一数据操作时,生成所述第一数据操作对应的第一binlog日志;

在本实施例中,将第一软件系统作为老系统,老系统DB1产生数据操作,数据增删改查等,产生binlog日志,binlog日志实时发送到消息队列中,监听canal实时监听变化,并获取到相关信息。

可选的,在第一软件系统中,通过合适的方式(例如数据库触发器、日志记录机制等)监听数据操作,包括但不限于插入、更新、删除等。当监听到数据操作时,获取相关的操作细节,如操作类型(插入、更新、删除)、表名、字段值等。根据捕获的操作细节,将其转换为相应的binlog日志格式。binlog日志通常是数据库的二进制日志,用于记录数据操作的详细信息,包括操作类型、表名、字段值等。将生成的binlog日志进行持久化保存,可以选择将其写入磁盘上的文件,或者存储到专门的日志数据库中,以便后续使用和分析。

可选的,当新老系统的数据同步设备判定第一软件系统被标定为重构对象时,执行监听第一软件系统是否产生第一数据操作的操作,以执行监听到第一软件系统产生第一数据操作时,生成所述第一数据操作对应的第一binlog日志的步骤。

102、根据第二软件系统对应的第二预设格式,将所述第一binlog日志转换为所述第二预设格式对应的第二数据库语句;

在本实施例中,第二软性系统为新系统,新老系统的数据同步设备中预先设置有第二软件系统对应的第二预设格式,在得到binlog日志时,将其转换为第二预设格式对于的第一数据库语句。具体的,解析binlog日志文件。这包括了读取binlog文件、解析文件结构和记录格式,并提取出操作类型、表名、字段值等相关信息。根据第二预设格式中定义的数据库语句格式,将解析得到的操作类型映射为相应的数据库语句类型(如INSERT、UPDATE、DELETE等)。根据第二预设格式中定义的字段映射规则,将解析得到的字段值映射为第二预设格式对应的值。可通过数据类型转换、值的格式化等操作实现。根据第二预设格式中定义的数据库语句格式,使用转换后的字段值和相关信息,构建最终的第一数据库语句。将构建的第一数据库语句应用到第一软件系统中的数据库,实现数据同步操作。

103、调用所述第二软件系统对应的第二数据库,执行所述第二数据库语句;

在本实施例中,在第一软件系统中配置有第二软件系统对应的第二数据语的连接信息。第一软件系统需要提供数据库操作接口,例如使用SQL语句操作数据库的API或者ORM(对象关系映射)框架。根据第一软件系统产生的binlog日志,解析其中的操作内容,并根据第二软件系统对应的第二预设格式,生成对应的数据库语句,如插入、更新、删除等。使用第一软件系统中配置的数据库连接信息,建立与第二软件系统对应的第二数据语的连接。利用数据库连接,将生成的数据库语句发送给第二数据语,并执行对应的操作。

可选的,确定所述第二数据库语句的语句类型;若所述语句类型为insert操作或者update操作,将所述第一binlog日志按照所述第二预设格式生成所述第二数据库可以执行的所述第二数据库语句,并调用所述第二软件系统对应的所述第二数据库,执行所述第二数据库语句。

可选的,根据所述第二数据库语句携带的数据表,判断所述第二数据库是否存在与所述数据表对应的目标数据表;若所述第二数据库不存在与所述数据表对应的所述目标数据表,判定所述语句类型为所述insert操作;若所述第二数据库存在与所述数据表对应的所述目标数据表,判断所述数据表与所述目标数据表是否内容一致;若所述数据表与所述目标数据表是内容一致,判定所述语句类型为所述update操作。

可选的,若若所述数据表与所述目标数据表非内容一致,确定是否存储有所述第二数据库语句对应的缓存日志;

若存储有所述第二数据库语句对应的所述缓存日志,判定成功响应所述第一数据操作。

可选的,若所述第二数据库语句执行失败,执行原子性回滚操作,并输出所述第二数据库语句执行失败的提示信息。

104、确定所述第二数据库语句是否执行成功;

在本实施例中,根据第二数据库返回的执行结果,判断数据库语句是否执行成功,可以是通过返回的执行状态、影响的行数等进行判断。如果数据库语句执行成功,则判定为新老系统数据同步成功,否则判定为失败。

可选的,若所述第二数据库语句执行失败,执行原子性回滚操作,并输出所述第二数据库语句执行失败的提示信息。原子性回滚操作是指在进行一系列操作时,如果其中某个操作失败或者出现异常,可以将之前已经执行的操作全部回滚(即还原到操作之前的状态),以保持数据的一致性和完整性。具体的,在执行第二数据库语句之前,开启一个事务。按照需求执行第二数据库的语句。检查第二数据库语句的执行结果。如果发生错误或异常,跳转到步骤5。当第二数据库语句成功执行后,提交事务。这样,数据库的变更将永久地应用到系统中。如果第二数据库语句执行失败,立即回滚事务。这将撤销之前执行的所有操作,使数据回滚到操作之前的状态。

105、若所述第二数据库语句执行成功,判定新老系统数据同步成功;

在本发明实施例中,监听到第一软件系统产生第一数据操作时,生成所述第一数据操作对应的第一binlog日志;根据第二软件系统对应的第二预设格式,将所述第一binlog日志转换为所述第二预设格式对应的第二数据库语句;调用所述第二软件系统对应的第二数据库,执行所述第二数据库语句;确定所述第二数据库语句是否执行成功;若所述第二数据库语句执行成功,判定新老系统数据同步成功。新老系统的数据同步设备通过监听和生成对应的binlog日志,以及将binlog日志转换为预设格式对应的数据库语句,确保了在第一软件系统产生的数据操作能够准确地在第二软件系统中执行。这样可以确保新老系统之间的数据同步准确无误。通过执行第二数据库语句,并确定其是否执行成功,可以验证数据在第二软件系统中的完整性。若第二数据库语句执行成功,就可以判定新老系统数据同步成功,说明数据在传输过程中没有丢失或损坏。利用软件系统之间的自动化流程,监听、转换、执行和判定,实现了数据同步的自动化。不需要人工干预,减少了手动操作和潜在的人为错误,提高了数据同步的效率和准确性。通过监听第一软件系统的数据操作,可以及时生成对应的binlog日志并进行转换和执行,从而实现了数据同步的实时性和及时性。新的数据操作能够及时被同步到第二软件系统中,保证了数据的实时更新。对于新老系统之间的数据同步具有明显的效果,在系统重构时,可同时障老系统稳定以及新系统平稳过渡。

请参阅图2,图2为本发明实施例中新老系统的数据同步方法的第二个实施例,在102步骤中可以执行以下步骤:

106、监听到所述第二软件系统产生第二数据操作时,生成所述第二数据操作对应的第二binlog日志;

在本实施例中,新系统产生第二数据操作时,跟对第一数据操作的处理流程对。

可选的,根据第一数据库与第二数据库,获取双向同步配置表方向以及获取双向同步配置信息;监听到第一软件系统产生第一数据操作时,生成第一数据操作对应的第一binlog日志的步骤之前:

根据所述双向同步配置表方向以及所述双向同步配置信息,监听所述第一软件系统是否产生第一数据操作,并根据所述双向同步配置表方向以及所述双向同步配置信息,监听所述第二软件系统是否产生第二数据操作。

107、根据所述第一软件系统对应的第一预设格式,将所述第二binlog日志转换为所述第一预设格式对应的第一数据库语句;

108、调用所述第一软件系统对应的第一数据库,执行所述第一数据库语句;

可选的,确定所述第二数据库语句的语句类型;若所述语句类型为insert操作或者update操作,调用所述第一软件系统对应的所述第二数据库,执行所述第二数据库语句。

可选的,根据所述第二数据库语句携带的数据表,判断所述第二数据库是否存在与所述数据表对应的目标数据表;若所述第二数据库不存在与所述数据表对应的所述目标数据表,判定所述语句类型为所述insert操作;若所述第二数据库存在与所述数据表对应的所述目标数据表,判断所述数据表与所述目标数据表是否内容一致;若所述数据表与所述目标数据表是内容一致,判定所述语句类型为所述update操作。

可选的,若所述数据表与所述目标数据表非内容一致,确定是否存储有所述第二数据库语句对应的缓存日志;若存储有所述第二数据库语句对应的所述缓存日志,判定成功响应所述第二数据操作。

可选的,若所述语句类型为删除操作,结束当前进程,判定成功响应所述第二数据操作。

可选的,若所述第二数据库语句执行失败,执行原子性回滚操作,并输出所述第二数据库语句执行失败的提示信息。

109、确定所述第一数据库语句是否执行成功;

110、若所述第一数据库语句执行成功,判定新老系统数据同步成功。

本发明实施例中,新老系统的数据同步设备通过监听和生成对应的binlog日志,以及将binlog日志转换为预设格式对应的数据库语句,确保了在第二软件系统产生的数据操作能够准确地在第一软件系统中执行。这样可以确保新老系统之间的数据同步准确无误。通过执行第二数据库语句,并确定其是否执行成功,可以验证数据在第一软件系统中的完整性。若第一数据库语句执行成功,就可以判定新老系统数据同步成功,说明数据在传输过程中没有丢失或损坏。利用软件系统之间的自动化流程,监听、转换、执行和判定,实现了数据同步的自动化。不需要人工干预,减少了手动操作和潜在的人为错误,提高了数据同步的效率和准确性。通过监听第二软件系统的数据操作,可以及时生成对应的binlog日志并进行转换和执行,从而实现了数据同步的实时性和及时性。新的数据操作能够及时被同步到第一软件系统中,保证了数据的实时更新。对于新老系统之间的数据同步具有明显的效果,可同时障老系统稳定以及新系统平稳过渡。

图3是本发明实施例提供的一种新老系统的数据同步设备的结构示意图,该新老系统的数据同步设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对新老系统的数据同步设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在新老系统的数据同步设备500上执行存储介质530中的一系列指令操作。

基于新老系统的数据同步设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,Free BSD等等。本领域技术人员可以理解,图3示出的新老系统的数据同步设备结构并不构成对基于新老系统的数据同步设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述新老系统的数据同步方法的步骤。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

相关技术
  • 数据同步方法、系统、电子设备及计算机可读存储介质
  • 数据同步方法、系统、计算机设备和可读存储介质
  • 基于双控的存储设备数据同步方法、装置、设备及介质
  • 产品数据的数据同步方法、装置、计算机设备及存储介质
  • 一种平行链数据同步方法、设备和存储介质
  • 一种芯片内埋的模块结构
  • 数据库系统的数据同步方法、存储介质及设备
技术分类

06120116491328