CN112988897A - 系统升级场景下的数据双向同步方法及装置 - Google Patents

系统升级场景下的数据双向同步方法及装置 Download PDF

Info

Publication number
CN112988897A
CN112988897A CN202110341617.XA CN202110341617A CN112988897A CN 112988897 A CN112988897 A CN 112988897A CN 202110341617 A CN202110341617 A CN 202110341617A CN 112988897 A CN112988897 A CN 112988897A
Authority
CN
China
Prior art keywords
sql
data
sql statement
interception
statement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110341617.XA
Other languages
English (en)
Inventor
张曙晟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
ICBC Technology Co Ltd
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
ICBC Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC, ICBC Technology Co Ltd filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110341617.XA priority Critical patent/CN112988897A/zh
Publication of CN112988897A publication Critical patent/CN112988897A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明可用于大数据技术领域,本发明提供了一种系统升级场景下的数据双向同步方法及装置,系统升级场景下的数据双向同步方法包括:对待同步系统进行旁路监听,以拦截执行SQL语句;对SQL拦截日志与所述待同步系统中数据进行同步解耦,以生成解耦结果;根据所述解耦结果对所述执行SQL语句进行转换;根据转换后的执行SQL语句在所述待同步系统与目标系统之间进行数据同步。本发明克服了传统触发器技术无法实现在信息系统升级改造时数据双向同步的不足,整体解决了双向同步过程中存在的SQL拦截、数据同步、文件处理、同步日志等问题,提供一套系统高可用、组件可替换的整体解决办法。

Description

系统升级场景下的数据双向同步方法及装置
技术领域
本发明属于大数据技术领域,具体涉及一种系统升级场景下的数据双向同步方法及装置。
背景技术
现有系统经过长期运行后,由于业务的变更调整,现有系统的功能逐渐满足不了业务要求,往往需要对现有信息系统进行升级改造。当改造后的新系统上线后,通常情况下是对现有系统数据一次性迁移到改造后的新系统中,并停用现有系统再启用新系统,但此种情况只涉及到数据一次性迁移技术。如果业主方因实际工作需要,对新旧系统设置了并行过渡期,在此情景下,一般是实现由现有系统向新系统的单向数据同步,即在现有系统发生的数据更新同步到新系统中,在新系统中的数据更新不同步到现有系统,主要使用到的是基于数据库触发器的同步技术。
当要求新旧系统并行双向实现数据同步时,将面临同步回环、全局ID冲突、同步时效、同步高可用等问题,单纯的使用数据库触发器不能较好的解决新旧系统数据双向同步面临的问题。具体地,其中数据库触发器技术的主要缺点是:
(1)需要在现有系统的数据库中增加N*6的触发器和临时表(其中N为原始表数量,每张表增、删、改操作各需设置1个触发器和1张临时表),对数据库的并发压力增加较大;
(2)当新旧系统为异构数据库时,触发器对字段不兼容。
发明内容
需要说明的是,本发明所提供的系统升级场景下的数据双向同步方法及装置应用于大数据技术领域。
针对现有技术中的问题,本发明提出了在信息改造的情景下如何实现新旧系统并行双向同步的整体解决方案,且综合考虑了在新旧系统双向同步过程中的同步时效与高可用问题,并提出了解决办法;另外,本发明在双向同步的流程各环节实现了充分的解耦,便于替换组件;以及在双向同步的流程各环节实现了配置化,便于控制同步时效及上下游组件间的配合执行速度。为解决上述技术问题,本发明提供以下技术方案:
第一方面,本发明提供一种系统升级场景下的数据双向同步方法,包括:
对待同步系统进行旁路监听,以拦截执行SQL语句;
对SQL拦截日志与所述待同步系统中数据进行同步解耦,以生成解耦结果;
根据所述解耦结果对所述执行SQL语句进行转换;
根据转换后的执行SQL语句在所述待同步系统与目标系统之间进行数据同步。
一实施例中,所述对待同步系统进行旁路监听,以拦截执行SQL语句包括:
在所述待同步系统设置SQL语句拦截组件;所述SQL语句拦截组件包括:Log4jdbc以及Druid;
利用所述SQL语句拦截组件拦截所述执行SQL语句。
一实施例中,在对SQL拦截日志与所述待同步系统中数据进行同步解耦,以生成解耦结果之前,还包括:
根据预生成SQL语句输出格式以及SQL拦截日志生成规则生成所述SQL拦截日志,包括:
配置所述SQL语句拦截组件;
根据配置后的SQL语句拦截组件、所述SQL语句输出格式以及SQL拦截日志生成规则生成所述SQL拦截日志。
一实施例中,所述根据所述解耦结果对所述执行SQL语句进行转换包括:
对所述SQL语句进行解析,以生成解析结果;
对所述解析结果进行转换,以生成转换结果;
所述根据转换后的执行SQL语句在所述待同步系统与所述目标系统之间进行数据同步,包括:根据所述解耦结果在所述目标系统中执行所述转换结果。
第二方面,本发明提供一种系统升级场景下的数据双向同步装置,包括:
语句拦截模块,用于对待同步系统进行旁路监听,以拦截执行SQL语句;
解耦结果生成模块,用于对SQL拦截日志与所述待同步系统中数据进行同步解耦,以生成解耦结果;
语句转换模块,用于根据所述解耦结果对所述执行SQL语句进行转换;
数据同步模块,用于根据转换后的执行SQL语句在所述待同步系统与目标系统之间进行数据同步。
一实施例中,所述语句拦截模块包括:
组件设置单元,用于在所述待同步系统设置SQL语句拦截组件;所述SQL语句拦截组件包括:Log4jdbc以及Druid;
语句拦截单元,用于利用所述SQL语句拦截组件拦截所述执行SQL语句。
一实施例中,系统升级场景下的数据双向同步装置还包括:
日志生成模块,用于根据预生成SQL语句输出格式以及SQL拦截日志生成规则生成所述SQL拦截日志,所述日志生成模块包括:
组件配置单元,用于配置所述SQL语句拦截组件;
日志生成单元,用于根据配置后的SQL语句拦截组件、所述SQL语句输出格式以及SQL拦截日志生成规则生成所述SQL拦截日志。
一实施例中,所述语句转换模块包括:
解析结果生成单元,用于对所述SQL语句进行解析,以生成解析结果;
转换结果生成单元,用于对所述解析结果进行转换,以生成转换结果;
所述数据同步模块具体用于根据所述解耦结果在所述目标系统中执行所述转换结果。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现系统升级场景下的数据双向同步方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现系统升级场景下的数据双向同步方法的步骤。
从上述描述可知,本发明实施例提供的系统升级场景下的数据双向同步方法及装置,首先对待同步系统进行旁路监听,以拦截执行SQL语句;对SQL拦截日志与待同步系统中数据进行同步解耦,以生成解耦结果;接着,根据解耦结果对执行SQL语句进行转换;最后根据转换后的执行SQL语句在待同步系统与目标系统之间进行数据同步。
综上所述,本发明提出了在信息改造的情景下如何实现新旧系统并行双向同步的解决方法。综合考虑了在新旧系统双向同步过程中的同步时效与高可用问题,并提出了解决办法;并在双向同步的流程各环节实现了充分的解耦,便于替换组件;在双向同步的流程各环节实现了配置化,便于控制同步时效及上下游组件间的配合执行速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例中系统升级场景下的数据双向同步方法流程示意图一;
图2为本发明的实施例中步骤100的流程示意图;
图3为本发明的实施例中系统升级场景下的数据双向同步方法流程示意图二;
图4为本发明的实施例中步骤500的流程示意图;
图5为本发明的实施例中步骤300的流程示意图;
图6为本发明的实施例中步骤400的流程示意图;
图7为本发明的具体应用实例中旧系统到新系统数据同步方法流程示意图;
图8为本发明的具体应用实例中新系统到旧系统数据同步方法流程示意图;
图9为本发明的实施例中系统升级场景下的数据双向同步装置结构框图一;
图10为本发明的实施例中语句拦截模块10的结构框图;
图11为本发明的实施例中系统升级场景下的数据双向同步装置结构框图二;
图12为本发明的实施例中日志生成模块50的结构框图;
图13为本发明的实施例中语句转换模块30的结构框图;
图14为本发明的实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本发明的实施例提供一种系统升级场景下的数据双向同步方法的具体实施方式,参见图1,该方法具体包括如下内容:
步骤100:对待同步系统进行旁路监听,以拦截执行SQL语句。
术语介绍:
service:指程序开发中常见三层架构中的业务处理层,调用dao层。
dao:指程序开发中常见三层架构中的数据访问层,调用jdbc操作数据库。
jdbc:指程序开发中java的数据库连接,用于操作数据库的应用程序接口。
触发器:指数据库中由事件触发的某个操作,通常包括insert语句、update语句、delete语句,当这些语句执行时,会激发触发器执行相应的操作。
系统改造:指现有系统因在功能上或技术上满足不了新的要求,在保留现有系统业务功能的情况下,重新开发新系统替换现有系统的整个事件。
新旧系统并行:指在系统改造情景下,新旧系统同时处于运行状态。
具体地,在旧系统(这里对应待同步系统,目标系统对应新系统)上的操作通常会经过service层调用dao层,dao层再调用jdbc对数据库进行操作,这里可以使用SQL语句拦截组件在旧系统调用jdbc时进行旁路监听,截取执行的SQL语句。
步骤200:对SQL拦截日志与所述待同步系统中数据进行同步解耦,以生成解耦结果。
具体地,过将SQL语句读入到缓存来实现SQL拦截日志与数据同步间的解耦,优选地,可以以redis为例用作缓存,使用FIFO的缓存队列,保证SQL语句的时序性。注:此处redis可配置为集群模式(例如redis cluster或一主多从加哨兵机制的集群),确保redis缓存的高可用。
步骤300:根据所述解耦结果对所述执行SQL语句进行转换。
具体地,从缓存队列中读取SQL语句,若读取不为空,则进入SQL语句解析流程,并进行SQL语句转换。注:可使用druid数据库连接池组件自带的SQL解析类库实现对SQL语句的解析,解析的目的在于消除新旧系统数据库之间的异构差异,便于做SQL语句转换,例如将db2数据库的SQL语句转换为适合mySQL数据库执行的SQL语句。另外,可以理解的是,步骤300的目的是将旧系统中的执行SQL语句转化成符合新系统格式要求。
步骤400:根据转换后的执行SQL语句在所述待同步系统与目标系统之间进行数据同步。
步骤400在实施时,首先对SQL语句进行解析转换后,对于结构化数据则执行数据处理流程,即通过数据同步系统直接在新系统数据库里执行转换后的SQL语句;此外,对于涉及到非结构化文件的SQL信息,则还需要从数据库文件记录表中获取文件信息,再执行文件复制的IO操作。
从上述描述可知,本发明实施例提供的系统升级场景下的数据双向同步方法,首先对待同步系统进行旁路监听,以拦截执行SQL语句;对SQL拦截日志与待同步系统中数据进行同步解耦,以生成解耦结果;接着,根据解耦结果对执行SQL语句进行转换;最后根据转换后的执行SQL语句在待同步系统与目标系统之间进行数据同步。
综上所述,本发明提出了在信息改造的情景下如何实现新旧系统并行双向同步的解决方法。综合考虑了在新旧系统双向同步过程中的同步时效与高可用问题,并提出了解决办法;并在双向同步的流程各环节实现了充分的解耦,便于替换组件;在双向同步的流程各环节实现了配置化,便于控制同步时效及上下游组件间的配合执行速度。
一实施例中,参见图2,步骤100具体包括:
步骤101:在所述待同步系统设置SQL语句拦截组件;所述SQL语句拦截组件包括:Log4jdbc以及Druid;
步骤102:利用所述SQL语句拦截组件拦截所述执行SQL语句。
可以理解的是,在步骤101以及步骤102中,可以在不修改旧系统源码的情况下,只需要将log4jdbc的bean对象配置到Spring框架的配置文件中即可实现旧系统启动时自动载入log4jdbc组件。
一实施例中,参见图3,在步骤200之前还包括:
步骤500:根据预生成SQL语句输出格式以及SQL拦截日志生成规则生成所述SQL拦截日志,
参见图4,步骤500进一步包括:包括:
步骤501:配置所述SQL语句拦截组件;
步骤502:根据配置后的SQL语句拦截组件、所述SQL语句输出格式以及SQL拦截日志生成规则生成所述SQL拦截日志。
在步骤501以及步骤502中,通过配置SQL语句拦截组件的配置文件(例如log4jdbc.properties),定制打印的SQL语句输出格式以及SQL日志文件生产规则(根据目标系统情况定值),考虑到同步时效,可以配置为1分钟生成1个SQL日志文件。如果同步时效要求不高,也可以设置更长时间生产1个SQL日志文件。
优选地,通过在旧系统服务器上部署一个定时任务程序,对产生的SQL日志文件做定时扫描及清除。注:扫描的目的在于读取SQL日志文件内容,将日志里的SQL语句逐条发送到缓存中;清除的目的在于避免SQL日志文件堆积过多,占满服务器磁盘。
一实施例中,参见图5,步骤300进一步包括:
步骤301:对所述SQL语句进行解析,以生成解析结果;
步骤302:对所述解析结果进行转换,以生成转换结果;
在步骤301以及步骤302中,持续从缓存队列中读取SQL语句,若读取不为空,则进入SQL语句解析流程,并进行SQL语句转换。具体地,可使用druid数据库连接池组件自带的SQL解析类库实现对SQL语句的解析,解析的目的在于消除新旧系统数据库之间的异构差异,便于做SQL语句转换,例如将db2数据库的SQL语句转换为适合mySQL数据库执行的SQL语句。
另一方面,为保证数据同步系统的高可用,可设置2个以上同步实例节点,互为热备,即在某一时刻,只有其中一个节点处于工作状态,其他节点处于热备状态,一旦工作节点发生故障,可以在配置的时间范围内,自动切换到某个热备节点。具体地,热备的方式可以通过分布式锁来实现,例如通过redis缓存和Redisson组件配合来实现分布式锁,每个同步实例节点在配置的时间间隔去获取分布式锁,获得锁的节点即成为工作节点,未获得锁的节点成为热备节点。
一实施例中,参见图6,步骤400包括:
步骤401:根据所述解耦结果在所述目标系统中执行所述转换结果。
对SQL语句进行解析转换后,对于结构化数据则执行数据处理流程,即通过数据同步系统直接在新系统数据库里执行转换后的SQL语句;此外,对于涉及到非结构化文件的SQL信息,则还需要从数据库文件记录表中获取文件信息,再执行文件复制的IO操作。
具体地,以旧系统文件存放于SAN磁盘阵列为例,将通过nfs协议以文件目录的形式挂载到数据同步系统服务器上,数据同步系统访问挂载目录与访问本地目录是一样的;新系统的文件存储以分布式文件系统为例,可以是GlusterFS、FastDFS等。
数据处理过程产生的所有日志都需要进行持久化存储,此处为保证高可用,通过keepalived+LVS的mySQL双主模式实现高可用。
本发明克服了传统触发器技术无法实现在信息系统升级改造时数据双向同步的不足,整体解决了双向同步过程中存在的SQL拦截、数据同步、文件处理、同步日志等问题,提供一套系统高可用、组件可替换的整体解决办法。
为进一步地说明本方案,本发明还以Java开发的系统为例,提供系统升级场景下的数据双向同步方法的具体应用实例。
参见图7,旧系统到新系统数据同步的方法包括以下步骤:在旧系统上的操作通常会经过service层调用dao层,dao层再调用jdbc对数据库进行操作,这里可以使用SQL语句拦截组件(例如log4jdbc、druid等)在旧系统调用jdbc时进行旁路监听,截取执行的SQL语句,打印到SQL日志文件中。注:这里可以在不修改旧系统源码的情况下,只需要将log4jdbc的bean对象配置到Spring框架的配置文件中即可实现旧系统启动时自动载入log4jdbc组件。通过配置SQL语句拦截组件的配置文件(例如log4jdbc.properties),定制打印的SQL语句输出格式以及SQL日志文件生产规则,考虑到同步时效,可以配置为1分钟生成1个SQL日志文件。注:如果同步时效要求不高,也可以设置更长时间生产1个SQL日志文件。
接着,通过在旧系统服务器上部署一个定时任务程序,对产生的SQL日志文件做定时扫描及清除。注:扫描的目的在于读取SQL日志文件内容,将日志里的SQL语句逐条发送到缓存中;清除的目的在于避免SQL日志文件堆积过多,占满服务器磁盘。
通过将SQL语句读入到缓存来实现SQL拦截日志与数据同步间的解耦,本具体应用实例中以redis为例用作缓存,使用FIFO的缓存队列,保证SQL语句的时序性。注:此处redis可配置为集群模式(例如redis cluster或一主多从加哨兵机制的集群),确保redis缓存的高可用。
从redis缓存队列中读取SQL语句,若读取不为空,则进入SQL语句解析流程,并进行SQL语句转换。注:可使用druid数据库连接池组件自带的SQL解析类库实现对SQL语句的解析,解析的目的在于消除新旧系统数据库之间的异构差异,便于做SQL语句转换,例如将db2数据库的SQL语句转换为适合mySQL数据库执行的SQL语句。
对SQL语句进行解析转换后,对于结构化数据则执行数据处理流程,即通过数据同步系统直接在新系统数据库里执行转换后的SQL语句;此外,对于涉及到非结构化文件的SQL信息,则还需要从数据库文件记录表中获取文件信息,再执行文件复制的IO操作。注:以旧系统文件存放于SAN磁盘阵列为例,将通过nfs协议以文件目录的形式挂载到数据同步系统服务器上,数据同步系统访问挂载目录与访问本地目录是一样的;新系统的文件存储以分布式文件系统为例,可以是GlusterFS、FastDFS等。数据处理过程产生的所有日志都需要进行持久化存储,此处为保证高可用,通过keepalived+LVS的mySQL双主模式实现高可用。
参见图8,新系统到旧系统数据同步的方法与旧系统到新系统数据同步的方法基本一致,不同的地方为:以Java系统为例,旧系统使用的JDK版本通常较低,新系统则可以使用JDK较高版本,在新系统实现SQL拦截时,可以直接使用druid数据库连接池组件提供的功能直接获取并打印SQL语句到日志文件。为确保新旧系统并行时,两个间系统生成的整数型ID不冲突,可以设置对新系统的ID增长的最低阈值,例如并行期结束后,评估旧系统的整数型ID最大值不会超过399999,则新系统对应的ID字段新增值最低阈值可以设置为400000;若ID为字符型,则新系统的ID可以采用UUID、时间戳加随机数等方法生成唯一的ID。
需要说明的是,本具体应用实例所提供的系统升级场景下的数据双向同步方法不仅仅局限于Java系统之间的同步,也可用于VS.NET系统之间、VS.NET系统与Java系统之间的双向同步。并且新旧系统的数据库可为任意的关系型数据库,包括但不限于db2、oracle、sql server、mysql。
在本具体应用实例中,提及的文件同步需要存储方式,包括但不限于SAN磁盘陈列、FastDFS分布式文件系统、GlusterFS分布式文件系统、OSS对象存储系统、Ceph对象存储系统。提及的sql语句拦截组件包括但不限于log4jdbc、druid、p6spy。提及的分布式锁实现数据同步系统节点的热备,实现组件包括但不限于redis、zookeeper。的数据处理日志持久化方式,包括但不限于mysql双主、MongoDB集群、elasticsearch集群。
综上所述,本发明提出了在信息改造的情景下如何实现新旧系统并行双向同步的解决方法。综合考虑了在新旧系统双向同步过程中的同步时效与高可用问题,并提出了解决办法;并在双向同步的流程各环节实现了充分的解耦,便于替换组件;在双向同步的流程各环节实现了配置化,便于控制同步时效及上下游组件间的配合执行速度。
基于同一发明构思,本申请实施例还提供了一种系统升级场景下的数据双向同步装置,可以用于实现上述实施例所描述的方法,如下面的实施例。由于系统升级场景下的数据双向同步装置解决问题的原理与系统升级场景下的数据双向同步方法相似,因此系统升级场景下的数据双向同步装置的实施可以参见系统升级场景下的数据双向同步方法实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本发明的实施例提供一种能够实现系统升级场景下的数据双向同步方法的系统升级场景下的数据双向同步装置的具体实施方式,参见图9,系统升级场景下的数据双向同步装置具体包括如下内容:
语句拦截模块10,用于对待同步系统进行旁路监听,以拦截执行SQL语句;
解耦结果生成模块20,用于对SQL拦截日志与所述待同步系统中数据进行同步解耦,以生成解耦结果;
语句转换模块30,用于根据所述解耦结果对所述执行SQL语句进行转换;
数据同步模块40,用于根据转换后的执行SQL语句在所述待同步系统与目标系统之间进行数据同步。
一实施例中,参见图10,所述语句拦截模块10包括:
组件设置单元101,用于在所述待同步系统设置SQL语句拦截组件;所述SQL语句拦截组件包括:Log4jdbc以及Druid;
语句拦截单元102,用于利用所述SQL语句拦截组件拦截所述执行SQL语句。
一实施例中,参见图11,系统升级场景下的数据双向同步装置还包括:
日志生成模块50,用于根据预生成SQL语句输出格式以及SQL拦截日志生成规则生成所述SQL拦截日志,参见图12,所述日志生成模块50包括:
组件配置单元501,用于配置所述SQL语句拦截组件;
日志生成单元502,用于根据配置后的SQL语句拦截组件、所述SQL语句输出格式以及SQL拦截日志生成规则生成所述SQL拦截日志。
一实施例中,参见图13,所述语句转换模块30包括:
解析结果生成单元301,用于对所述SQL语句进行解析,以生成解析结果;
转换结果生成单元302,用于对所述解析结果进行转换,以生成转换结果;
所述数据同步模块40具体用于根据所述解耦结果在所述目标系统中执行所述转换结果。
从上述描述可知,本发明具体应用实例所提供一种系统升级场景下的数据双向同步装置,首先响应于与用户的订单支付请求,在订单集群中标记订单支付状态为待支付;接着,判断用户支付是否成功;若是,判断用户的支付行为是否唯一;若是,最后在订单集群中更新订单支付状态为第二状态,以完成订单支付。本发明的有益效果在于,通过使用本发明订单支付控重的方法,一方面,简化处理流程,没有引入分布式锁,没有给系统增加复杂度,另一方面,引入订单失效时间和乐观锁机制,通过更新订单状态时带上前序状态来控制重复支付,简单高效,没有大事务,处理效率高,不仅如此,乐观锁机制简单,没有引入额外的跨集群处理,开发工作量较低。
下面参考图14,其示出了适于用来实现本申请实施例的电子设备600的结构示意图。
如图14所示,电子设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有系统600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述基于数据机房场景下的人员距离确定方法的步骤,该步骤包括:
步骤100:对待同步系统进行旁路监听,以拦截执行SQL语句;
步骤200:对SQL拦截日志与所述待同步系统中数据进行同步解耦,以生成解耦结果;
步骤300:根据所述解耦结果对所述执行SQL语句进行转换;
步骤400:根据转换后的执行SQL语句在所述待同步系统与目标系统之间进行数据同步。
在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上该仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种系统升级场景下的数据双向同步方法,其特征在于,包括:
对待同步系统进行旁路监听,以拦截执行SQL语句;
对SQL拦截日志与所述待同步系统中数据进行同步解耦,以生成解耦结果;
根据所述解耦结果对所述执行SQL语句进行转换;
根据转换后的执行SQL语句在所述待同步系统与目标系统之间进行数据同步。
2.根据权利要求1所述的数据双向同步方法,其特征在于,所述对待同步系统进行旁路监听,以拦截执行SQL语句包括:
在所述待同步系统设置SQL语句拦截组件;所述SQL语句拦截组件包括:Log4jdbc以及Druid;
利用所述SQL语句拦截组件拦截所述执行SQL语句。
3.根据权利要求2所述的数据双向同步方法,其特征在于,在对SQL拦截日志与所述待同步系统中数据进行同步解耦,以生成解耦结果之前,还包括:
根据预生成SQL语句输出格式以及SQL拦截日志生成规则生成所述SQL拦截日志,包括:
配置所述SQL语句拦截组件;
根据配置后的SQL语句拦截组件、所述SQL语句输出格式以及SQL拦截日志生成规则生成所述SQL拦截日志。
4.根据权利要求1所述的数据双向同步方法,其特征在于,所述根据所述解耦结果对所述执行SQL语句进行转换包括:
对所述SQL语句进行解析,以生成解析结果;
对所述解析结果进行转换,以生成转换结果;
所述根据转换后的执行SQL语句在所述待同步系统与所述目标系统之间进行数据同步,包括:根据所述解耦结果在所述目标系统中执行所述转换结果。
5.一种系统升级场景下的数据双向同步装置,其特征在于,包括:
语句拦截模块,用于对待同步系统进行旁路监听,以拦截执行SQL语句;
解耦结果生成模块,用于对SQL拦截日志与所述待同步系统中数据进行同步解耦,以生成解耦结果;
语句转换模块,用于根据所述解耦结果对所述执行SQL语句进行转换;
数据同步模块,用于根据转换后的执行SQL语句在所述待同步系统与目标系统之间进行数据同步。
6.根据权利要求5所述的数据双向同步装置,其特征在于,所述语句拦截模块包括:
组件设置单元,用于在所述待同步系统设置SQL语句拦截组件;所述SQL语句拦截组件包括:Log4jdbc以及Druid;
语句拦截单元,用于利用所述SQL语句拦截组件拦截所述执行SQL语句。
7.根据权利要求6所述的数据双向同步装置,其特征在于,还包括:
日志生成模块,用于根据预生成SQL语句输出格式以及SQL拦截日志生成规则生成所述SQL拦截日志,所述日志生成模块包括:
组件配置单元,用于配置所述SQL语句拦截组件;
日志生成单元,用于根据配置后的SQL语句拦截组件、所述SQL语句输出格式以及SQL拦截日志生成规则生成所述SQL拦截日志。
8.根据权利要求5所述的数据双向同步装置,其特征在于,所述语句转换模块包括:
解析结果生成单元,用于对所述SQL语句进行解析,以生成解析结果;
转换结果生成单元,用于对所述解析结果进行转换,以生成转换结果;
所述数据同步模块具体用于根据所述解耦结果在所述目标系统中执行所述转换结果。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4任一项所述系统升级场景下的数据双向同步方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至4任一项所述系统升级场景下的数据双向同步方法的步骤。
CN202110341617.XA 2021-03-30 2021-03-30 系统升级场景下的数据双向同步方法及装置 Pending CN112988897A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110341617.XA CN112988897A (zh) 2021-03-30 2021-03-30 系统升级场景下的数据双向同步方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110341617.XA CN112988897A (zh) 2021-03-30 2021-03-30 系统升级场景下的数据双向同步方法及装置

Publications (1)

Publication Number Publication Date
CN112988897A true CN112988897A (zh) 2021-06-18

Family

ID=76338466

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110341617.XA Pending CN112988897A (zh) 2021-03-30 2021-03-30 系统升级场景下的数据双向同步方法及装置

Country Status (1)

Country Link
CN (1) CN112988897A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113946628A (zh) * 2021-10-27 2022-01-18 中国建设银行股份有限公司 一种基于拦截器的数据同步方法及装置
CN114756628A (zh) * 2022-06-16 2022-07-15 天津七一二移动通信有限公司 一种高复用可扩展的数据及文件同步的方法
CN117171268A (zh) * 2023-08-31 2023-12-05 深圳麦风科技有限公司 新老系统的数据同步方法、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645074A (zh) * 2009-09-07 2010-02-10 浪潮集团山东通用软件有限公司 一种访问不同类型关系型数据库的方法
CN103761318A (zh) * 2014-01-27 2014-04-30 中国工商银行股份有限公司 一种关系型异构数据库数据同步的方法及系统
CN109960710A (zh) * 2019-01-16 2019-07-02 平安科技(深圳)有限公司 数据库之间的数据同步方法和系统
CN110502583A (zh) * 2019-08-27 2019-11-26 深圳前海微众银行股份有限公司 分布式数据同步方法、装置、设备及可读存储介质
CN110941628A (zh) * 2019-08-09 2020-03-31 四川邦辰信息科技有限公司 一种基于sql语句拦截解析技术的数据隔离实现方法
US20200293519A1 (en) * 2019-03-12 2020-09-17 Alibaba Group Holding Limited Solution for implementing computing service based on structured query language statement
CN111797590A (zh) * 2020-06-30 2020-10-20 中国工商银行股份有限公司 数据核对方法、装置和设备
CN111930843A (zh) * 2020-08-11 2020-11-13 中国工商银行股份有限公司 基于数据库的数据系统及处理方法
CN112015815A (zh) * 2020-08-27 2020-12-01 中国平安财产保险股份有限公司 数据同步方法、装置及计算机可读存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645074A (zh) * 2009-09-07 2010-02-10 浪潮集团山东通用软件有限公司 一种访问不同类型关系型数据库的方法
CN103761318A (zh) * 2014-01-27 2014-04-30 中国工商银行股份有限公司 一种关系型异构数据库数据同步的方法及系统
CN109960710A (zh) * 2019-01-16 2019-07-02 平安科技(深圳)有限公司 数据库之间的数据同步方法和系统
US20200293519A1 (en) * 2019-03-12 2020-09-17 Alibaba Group Holding Limited Solution for implementing computing service based on structured query language statement
CN110941628A (zh) * 2019-08-09 2020-03-31 四川邦辰信息科技有限公司 一种基于sql语句拦截解析技术的数据隔离实现方法
CN110502583A (zh) * 2019-08-27 2019-11-26 深圳前海微众银行股份有限公司 分布式数据同步方法、装置、设备及可读存储介质
CN111797590A (zh) * 2020-06-30 2020-10-20 中国工商银行股份有限公司 数据核对方法、装置和设备
CN111930843A (zh) * 2020-08-11 2020-11-13 中国工商银行股份有限公司 基于数据库的数据系统及处理方法
CN112015815A (zh) * 2020-08-27 2020-12-01 中国平安财产保险股份有限公司 数据同步方法、装置及计算机可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113946628A (zh) * 2021-10-27 2022-01-18 中国建设银行股份有限公司 一种基于拦截器的数据同步方法及装置
CN114756628A (zh) * 2022-06-16 2022-07-15 天津七一二移动通信有限公司 一种高复用可扩展的数据及文件同步的方法
CN114756628B (zh) * 2022-06-16 2022-10-28 天津七一二移动通信有限公司 一种高复用可扩展的数据及文件同步的方法
CN117171268A (zh) * 2023-08-31 2023-12-05 深圳麦风科技有限公司 新老系统的数据同步方法、设备及存储介质

Similar Documents

Publication Publication Date Title
KR102307371B1 (ko) 데이터베이스 시스템 내의 데이터 복제 및 데이터 장애 조치
WO2020224374A1 (zh) 数据复制方法、装置、计算机设备及存储介质
CA3008844C (en) Automatic generation of microservices based on technical description of legacy code
CN110196871B (zh) 数据入库方法和系统
CN112988897A (zh) 系统升级场景下的数据双向同步方法及装置
US11314698B2 (en) Dynamically performing data processing in a data pipeline system
Lim et al. How to Fit when No One Size Fits.
CN108519914B (zh) 大数据计算方法、系统和计算机设备
US9740582B2 (en) System and method of failover recovery
US8572575B2 (en) Debugging a map reduce application on a cluster
CN111949633B (zh) 一种基于并行流处理的ict系统运行日志分析方法
Xue et al. Seraph: an efficient, low-cost system for concurrent graph processing
US20120158795A1 (en) Entity triggers for materialized view maintenance
EP3822811A1 (en) Real-time cross-system database replication for hybrid-cloud elastic scaling and high-performance data virtualization
US10379920B2 (en) Processing data to improve a quality of the data
CN110569269A (zh) 一种数据同步方法及系统
US11615076B2 (en) Monolith database to distributed database transformation
CN113420026B (zh) 数据库表结构变更方法、装置、设备及存储介质
CN111966692A (zh) 针对数据仓库的数据处理方法、介质、装置和计算设备
US20210089527A1 (en) Incremental addition of data to partitions in database tables
CN106257424B (zh) 一种基于kvm云平台的分布式数据库系统实现自动伸缩负载均衡的方法
CN114925073A (zh) 支持灵活动态分片的分布式数据库架构及其实现方法
CN109358842A (zh) 一种服务实现方法、电子设备及存储介质
US20090287638A1 (en) Autonomic system-wide sql query performance advisor
CN114461454A (zh) 数据恢复方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination