CN107590256A - 异构数据库同步方法和装置 - Google Patents
异构数据库同步方法和装置 Download PDFInfo
- Publication number
- CN107590256A CN107590256A CN201710853533.8A CN201710853533A CN107590256A CN 107590256 A CN107590256 A CN 107590256A CN 201710853533 A CN201710853533 A CN 201710853533A CN 107590256 A CN107590256 A CN 107590256A
- Authority
- CN
- China
- Prior art keywords
- sql statement
- subfile
- synchronous documents
- data
- database
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请是关于一种异构数据库同步方法和装置,其中所述方法包括:从第一数据库获取源数据;根据所述源数据生成同步文件,所述同步文件包括第一子文件和第二子文件,所述第一子文件包括第一SQL语句,所述第二子文件包括非SQL语句;将所述同步文件传送至接收端,以使所述接收端获取第一SQL语句,根据所述非SQL语句生成第二SQL语句。本申请根据源数据生成的同步文件,由接收端根据第一子文件直接获取SQL语句,并根据第二子文件中的非SQL语句生成SQL语句后,执行异构数据库之间的同步。在同步文件的数据传送效率更高的前提下,提高了接收端的执行效率。
Description
技术领域
本申请涉及数据库同步技术领域,尤其涉及一种异构数据库同步方法和装置。
背景技术
在一些数据比较重要的数据库应用场景中,需要确保数据的安全性,需要即时把生产数据库的数据同步复制到灾备数据库,确保在生产数据库宕掉的情况,不会发生数据丢失的情况。在传统的数据库同步方法,只能实现同构数据库之间的数据复制,例如oracle数据库的数据,只能复制到oracle数据库,不能实现oracle数据库到mysql数据库等异构数据库的数据复制转换。
发明内容
为克服相关技术中存在的问题,本申请提供一种异构数据库同步方法和装置,实现异构数据库之间高效率的数据同步。
根据本申请实施例的第一方面,提供一种异构数据库同步方法,包括:
从第一数据库获取源数据;
根据所述源数据生成同步文件,所述同步文件包括第一子文件和第二子文件,所述第一子文件包括第一SQL语句,所述第二子文件包括非SQL语句;
将所述同步文件传送至接收端,以使所述接收端获取第一SQL语句,根据所述非SQL语句生成第二SQL语句。
在一种可能的实现方式中,根据所述源数据生成同步文件,包括:
根据所述源数据确定操作命令的类型,所述类型包括第一类型或第二类型,所述第二类型包括数据增加、数据删除和数据更改;
当确定出的所述操作命令为所述第一类型时,根据所述源数据生成第一SQL语句,并根据所述第一SQL语句生成第一子文件;
当确定出的所述操作命令为所述第二类型时,根据所述源数据生成非SQL语句,并根据所述非SQL语句生成第二子文件;
根据所述第一子文件和所述第二子文件生成同步文件。
在一种可能的实现方式中,根据所述SQL语句生成所述第一子文件,包括:
根据所述第一SQL语句和预设的第一子文件模板生成所述第一子文件,所述第一子文件模板包括SQL语句类型、SQL语句事务识别码和SQL语句内容。
在一种可能的实现方式中,根据所述非SQL语句生成所述第二子文件,包括:
根据所述非SQL语句和预设的第二子文件模板生成所述第二子文件,所述第二子文件模板包括操作命令、操作位置和操作数据。
根据本申请实施例的第二方面,提供一种异构数据库同步方法,所述方法包括:
接收并解析来自发送端的同步文件,所述同步文件包括第一子文件和第二子文件,所述第一子文件包括第一SQL语句,所述第二子文件包括非SQL语句;
获取所述第一子文件中的第一SQL语句,根据所述第二子文件中的非SQL语句生成第二SQL语句;
将所述第一SQL语句和所述第二SQL语句传送至第二数据库,以使所述第二数据库执行所述第一SQL语句和所述第二SQL语句。
根据本申请实施例的第三方面,提供一种异构数据库同步装置,包括:
源数据获取模块,用于从第一数据库获取源数据;
同步文件生成模块,用于根据所述源数据生成同步文件,所述同步文件包括第一子文件和第二子文件,所述第一子文件包括第一SQL语句,所述第二子文件包括非SQL语句;
发送模块,用于将所述同步文件传送至接收端,以使所述接收端获取第一SQL语句,根据所述非SQL语句生成第二SQL语句。
在一种可能的实现方式中,所述同步文件生成模块,包括:
操作命令分类单元,用于根据所述源数据确定操作命令的类型,所述类型包括第一类型或第二类型,所述第二类型包括数据增加、数据删除和数据更改;
第一子文件生成单元,用于当确定出的所述操作命令为所述第一类型时,根据所述源数据生成第一SQL语句,并根据所述第一SQL语句生成第一子文件;
第二子文件生成单元,用于当确定出的所述操作命令为所述第二类型时,根据所述源数据生成非SQL语句,并根据所述非SQL语句生成第二子文件;
同步文件生成单元,用于根据所述第一子文件和所述第二子文件生成同步文件。
在一种可能的实现方式中,所述第一子文件生成单元,用于:
根据所述第一SQL语句和预设的第一子文件模板生成所述第一子文件,所述第一子文件模板包括SQL语句类型、SQL语句事务识别码和SQL语句内容。
在一种可能的实现方式中,所述第二子文件生成单元,用于:
根据所述非SQL语句和预设的第二子文件模板生成所述第二子文件,所述第二子文件模板包括操作命令、操作位置和操作数据。
根据本申请实施例的第四方面,提供一种异构数据库同步装置,其特征在于,包括:
接收模块,用于接收并解析来自发送端的同步文件,所述同步文件包括第一子文件和第二子文件,所述第一子文件包括第一SQL语句,所述第二子文件包括非SQL语句;
第一SQL语句获取模块,用于获取所述第一子文件中的第一SQL语句;
第二SQL语句生成模块,用于根据所述第二子文件中的非SQL语句生成第二SQL语句;
传送模块,用于将所述第一SQL语句和所述第二SQL语句传送至第二数据库,以使所述第二数据库执行所述第一SQL语句和所述第二SQL语句。
根据本申请实施例的第五方面,提供一种异构数据库同步装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:执行本申请实施例所述的方法的步骤。
根据本申请实施例的第六方面,提供一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现本申请实施例所述的方法。
本申请的实施例提供的技术方案可以包括以下有益效果,发送端根据源数据生成的同步文件中,包括第一子文件和第二子文件。其中第一子文件包括SQL语句,第二子文件包括非SQL语句。接收端根据第一子文件直接获取SQL语句,并根据第二子文件中的非SQL语句生成SQL语句后,执行异构数据库之间的同步。这样,便于对源数据生成SQL语句的传送效率进行区分。例如对于生成简单SQL语句的源数据,直接传送生成的SQL语句。对于生成复杂SQL语句的源数据,利用非SQL语句传送后再由接收端生成SQL语句。因此,不仅能够保持同步文件的数据传送效率,还提高了接收端的执行效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种异构数据库同步方法的流程图。
图2是根据另一示例性实施例示出的一种异构数据库同步方法的流程图。
图3是根据另一示例性实施例示出的一种异构数据库同步方法的流程图。
图4是根据另一示例性实施例示出的一种异构数据库同步装置的结构图。
图5是根据另一示例性实施例示出的一种异构数据库同步装置的结构图。
图6是根据另一示例性实施例示出的一种异构数据库同步装置的结构图。
图7是根据一示例性实施例示出的一种用于异构数据库同步装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种异构数据库同步方法的流程图,如图1所示,该异构数据库同步方法包括:
步骤S100,从第一数据库获取源数据。
在一种可能的实现方式中,所述第一数据库为需要进行数据备份,及进行数据同步的数据库。所述第一数据库包括oracle数据库,利用本实施例所提供的异构数据库同步方法可实现oracle数据库与其他异构数据库例如mysql数据库之间的数据同步。
所述源数据包括需要同步的全同步源数据和/或增量源数据。
本实施例通过在第一数据库一侧设置发送端软件的方式,在所述第一数据库中获取源数据,获取方式包括周期性的获取或人工设置实时获取。
步骤S200,根据所述源数据生成同步文件,所述同步文件包括第一子文件和第二子文件,所述第一子文件包括第一SQL语句,所述第二子文件包括非SQL语句。
在一种可能的实现方式中,所述同步文件包括二进制文件格式,或XML(eXtensible Markup Language,可扩展标记语言)等其他文件格式。
本实施例通过在第二数据库一侧设置接收端软件(以下简称接收端)的方法,接收发送端软件(以下简称发送端)发送的同步文件。由于需要在发送端和接收端之间传递数据,因此同步文件需要包括发送端和接收端均可解析的固定的文件格式。
根据源数据的不同,采用不同的同步文件的内容进行传送。例如根据源数据生成SQL语句的过程简单、生成的SQL语句也简单,则根据源数据直接生成SQL语句后放入同步文件。如果根据源数据生成SQL语句的过程复杂,或生成的SQL语句比源数据占用更大的存储空间,利用其他计算机高级语言可以更加简洁的进行传送,则在同步文件中直接将源数据利用非SQL语句进行传送。同步文件中同时包括SQL语句和非SQL语句,可最大程度的保证数据传送的高效性。
在所述同步文件中,包括根据源数据直接生成的SQL语句组成的第一子文件,还包括根据源数据生成的非SQL语句组成的第二子文件。所述非SQL语句包括C++语言等计算机高级语言。
步骤S300,将所述同步文件传送至接收端,以使所述接收端获取第一SQL语句,根据所述非SQL语句生成第二SQL语句。
在一种可能的实现方式中,发送端可利用TCP(Transmission Control Protocol,传输控制协议)、UDP(User Datagram Protocl,用户数据报协议)、HTTP(HyperTextTransfer Protocol,超文本传输协议)等各种方式,将同步文件传送至接收端。
接收端接收到同步文件后,根据所述第一子文件直接解析出SQL语句,并根据所述第二子文件中的非SQL语句生成SQL语句。
接收端将直接解析出的SQL语句和生成的SQL语句利用JDBC(Java DataBaseConnectivity,java数据库连接)接口传送至第二数据库后,再发送执行命令执行传送的SQL语句,完成第二数据库的数据同步。
例如,在实际应用中,生产机中的数据库为第一数据库,需要进行数据备份。灾备机中的数据库为第二数据库,用于同步生产机中的第一数据库。在生产机中,或独立于生产机之外与生产机联结的设备中,设置发送端。在灾备机中,或独立于灾备机之外与灾备机联结的设备中,设置接收端。进行数据同步时,发送端从生产机中的第一数据库获取源数据,并根据所述源数据生成同步文件,所述同步文件包括第一子文件和第二子文件。其中,第一子文件包括第一SQL语句,第二子文件包括非SQL语句。所述同步文件传送至接收端后,接收端直接获取第一子文件中的第一SQL语句,并根据第二子文件中的非SQL语句生成第二SQL语句。然后将第一SQL语句和第二SQL语句传送至灾备机数据库后执行,完成数据备份。
在本实施例中,发送端根据源数据生成的同步文件中,包括第一子文件和第二子文件,其中第一子文件包括SQL语句,第二子文件包括非SQL语句,由接收端根据第一子文件直接获取SQL语句,并根据第二子文件中的非SQL语句生成SQL语句后,执行异构数据库之间的同步。在同步文件的数据传送效率更高的前提下,提高了接收端的执行效率。
图2是根据一示例性实施例示出的一种异构数据库同步方法的流程图,如图2所示,在上述实施例的基础上,如图2所示,步骤S200包括:
步骤S210,根据所述源数据确定操作命令的类型,所述类型包括第一类型或第二类型,所述第二类型包括数据增加、数据删除和数据更改。
在一种可能的实现方式中,进行数据库同步的操作命令包括创建文件、删除文件、更改文件权限、增加数据、删除数据、更改数据等。根据源数据的数据内容可确定操作命令。
例如,将所述操作命令分为两个类型,数据增加、数据删除和数据更改属于第二类型,除这三种操作命令以外的其它操作命令属于第一类型。
步骤S221,当确定出的所述操作命令为所述第一类型时,根据所述源数据生成第一SQL语句,并根据所述第一SQL语句生成第一子文件。
在一种可能的实现方式中,当确定出的操作命令为文件的增加、删除和权限更改时,由于生成SQL语句的过程简单,生成的SQL的语句也比较简单。因此,根据源数据直接生成SQL语句后,再根据SQL语句生成第一子文件。
第一子文件举例如下:
步骤S222,当确定出的所述操作命令为所述第二类型时,根据所述源数据生成非SQL语句,并根据所述非SQL语句生成第二子文件。
在一种可能的实现方式中,当确定出的操作命令为增加数据、删除数据、更改数据中的任意一种时,由于数据自身的复杂性,导致生成SQL语句的过程复杂,或生成的SQL语句复杂。根据C++等其他计算机高级操作语音,可以更加灵活、高效地对第二类型的操作命令所执行的数据同步进行描述。
步骤S230,根据所述第一子文件和所述第二子文件生成同步文件。
在一种可能的实现方式中,将所述第一子文件和第二子文件,按照发送端和接收端协商好的固定的同步文件的文件模板生成同步文件。
所述同步文件模板包括同步文件的总长度、第一个子文件的长度、第一个子文件的操作命令的类型标识、第一个子文件的操作命令内容、第二个子文件的长度、第二个子文件的操作命令的类型标识、第二个子文件的操作命令内容,依次类推。其中每个子文件可以是第一子文件,也可以是第二子文件,操作命令的类型标识用于标识接下来的操作命令内容中属于第一类型还是第二类型。进一步的,在实际的应用场景中,还可以用于对第一类型或第二类型中的操作命令进行进一步分类,确定第一类型或第二类型中的子分类,则所述操作命令的类型标识还可以对子分类进行标识。
在本实施例中,根据源数据确定操作命令后,对操作命令进行了分类。对于数据增加、数据删除和数据更改的操作命令,利用非SQL语句生成第二子文件。对于其他的操作命令则直接生成SQL语句后,再根据SQL语句生成第一子文件。根据第一子文件和第二子文件生成同步文件,同步文件用于在第一数据库和第二数据库传送同步数据。由于对操作命令进行了类型的区分,使得同步文件中传送同步数据的效率更高,且第二数据库利用所述同步文件执行SQL语句的效率也更高。
在一种可能的实现方式中,根据所述SQL语句生成所述第一子文件,包括:根据所述第一SQL语句和预设的第一子文件模板生成所述第一子文件,所述第一子文件模板包括SQL语句类型、SQL语句事务识别码和SQL语句内容。
在一种可能的实现方式中,利用SQL语句类型和SQL语句事务识别码,使得接收端软件可以快速方便的解析并执行第一子文件中的SQL语句。
在本实施中,第一子文件模板提供的同步文件中SQL语句的存储格式,使得接收端软件可以根据第一子文件模板高效、快速的解析出SQL语句并执行。
在一种可能的实现方式中,根据所述非SQL语句生成所述第二子文件,包括:根据所述非SQL语句和预设的第二子文件模板生成所述第二子文件,所述第二子文件模板包括操作命令、操作位置和操作数据。
在一种可能的实现方式中,操作位置包括数据被增删改的位置,包括被增删改的数据的归属用户识别码、归属表格的表格名称、归属表内的行号和列号等,用于在数据库中对被操作的数据的位置进行标识的语句。操作数据包括被增加的数据、被删除的数据、更改后的数据的具体内容。
根据第二子文件模板所提供的同步文件中的非SQL语句的存储格式,使得接收端软件可以根据第二子文件模板生成SQL语句并执行。
在本实施中,第二文件模板提供的同步文件中非SQL语句的存储格式,使得接收端软件可以根据第二子文件模板,更加高效、灵活地生成SQL语句并执行。
图3是根据一示例性实施例示出的一种异构数据库同步方法的流程图,如图3所示,所述异构数据库同步方法,包括:
步骤S10,接收并解析来自发送端的同步文件,所述同步文件包括第一子文件和第二子文件,所述第一子文件包括第一SQL语句,所述第二子文件包括非SQL语句。
在一种可能的实现方式中,本实施例通过在第二数据库一侧设置接收端软件,接收设置于第一数据库一侧的发送端软件发送的同步文件。所述同步文件根据发送端软件和接收端软件协商好的同步文件模板生成。
步骤S20,获取所述第一子文件中的第一SQL语句,根据所述第二子文件中的非SQL语句生成第二SQL语句。
在一种可能的实现方式中,根据第一子文件模板,接收端软件可直接获取第一子文件中的第一SQL语句直接使用。根据第二子文件模板,接收端软件解析其中的非SQL语句后,生成第二SQL语句后使用。
根据非SQL语句生成SQL语句的方法,可通过固定的语句转换实现。例如,在发送端软件将数据增加的操作命令利用固定的C++语句实现。在接收端软件将固定的C++语句转换为SQL语句中的数据增加命令。
步骤S30,将所述第一SQL语句和所述第二SQL语句传送至第二数据库,以使所述第二数据库执行所述第一SQL语句和所述第二SQL语句。
在本实施例中,设置于第二数据库一侧的接收端软件,根据接收到的同步文件中的第一子文件直接获取SQL语句,并根据第二子文件中的非SQL语句生成SQL语句,再将直接获取和生成的SQL语句传送至第二数据库后,使第二数据库执行完成同步文件的数据同步。在同步文件的数据传送效率更高的前提下,接收端的SQL语句的执行效率也更高。
图4是根据一示例性实施例示出的一种异构数据库同步装置的结构图,如图4所示,所述异构数据库同步装置,包括:
源数据获取模块100,用于从第一数据库获取源数据。
同步文件生成模块200,用于根据所述源数据生成同步文件,所述同步文件包括第一子文件和第二子文件,所述第一子文件包括第一SQL语句,所述第二子文件包括非SQL语句。
发送模块300,用于将所述同步文件传送至接收端,以使所述接收端获取第一SQL语句,根据所述非SQL语句生成第二SQL语句。
在本实施例中,发送端根据源数据生成的同步文件中,包括第一子文件和第二子文件,其中第一子文件包括SQL语句,第二子文件包括非SQL语句,由接收端根据第一子文件直接获取SQL语句,并根据第二子文件中的非SQL语句生成SQL语句后,执行异构数据库之间的同步。在同步文件的数据传送效率更高的前提下,提高了接收端的执行效率。
图5是根据一示例性实施例示出的一种异构数据库同步装置的结构图,如图5所示,所述同步文件生成模块200,包括:
操作命令分类单元210,用于根据所述源数据确定操作命令的类型,所述类型包括第一类型或第二类型,所述第二类型包括数据增加、数据删除和数据更改。
第一子文件生成单元221,用于当确定出的所述操作命令为所述第一类型时,根据所述源数据生成第一SQL语句,并根据所述第一SQL语句生成第一子文件。
第二子文件生成单元222,用于当确定出的所述操作命令为所述第二类型时,根据所述源数据生成非SQL语句,并根据所述非SQL语句生成第二子文件。
同步文件生成单元230,用于根据所述第一子文件和所述第二子文件生成同步文件。
在一种可能的实现方式中,所述第一子文件生成单元221,用于根据所述第一SQL语句和预设的第一子文件模板生成所述第一子文件,所述第一子文件模板包括SQL语句类型、SQL语句事务识别码和SQL语句内容。
在一种可能的实现方式中,所述第二子文件生成单元222,用于根据所述非SQL语句和预设的第二子文件模板生成所述第二子文件,所述第二子文件模板包括操作命令、操作位置和操作数据。
在本实施中,根据源数据确定操作命令后,对操作命令进行了分类,对于数据增加、数据删除和数据更改的操作命令,利用非SQL语句生成第二子文件,对于其他的操作命令则直接生成SQL语句后,再根据SQL语句生成第一子文件,并根据第一子文件和第二子文件生成同步文件,用于在第一数据库和第二数据库中间传送数据进行同步。由于对操作命令进行了类型的区分,使得同步文件中传送同步数据的效率更高,且第二数据库利用所述同步文件执行SQL语句的效率也更高。第一子文件模板提供的同步文件中SQL语句的存储格式,使得接收端软件可以根据第一子文件模板高效、快速的解析出SQL语句并执行。第二文件模板提供的同步文件中非SQL语句的存储格式,使得接收端软件可以根据第二子文件模板,更加高效、灵活地生成SQL语句并执行。
图6是根据一示例性实施例示出的一种异构数据库同步装置的结构图,如图6所示,所述异构数据库同步装置,包括:
接收模块10,用于接收并解析来自发送端的同步文件,所述同步文件包括第一子文件和第二子文件,所述第一子文件包括第一SQL语句,所述第二子文件包括非SQL语句。
第一SQL语句获取模块21,用于获取所述第一子文件中的第一SQL语句。
第二SQL语句生成模块22,用于根据所述第二子文件中的非SQL语句生成第二SQL语句。
传送模块30,用于将所述第一SQL语句和所述第二SQL语句传送至第二数据库,以使所述第二数据库执行所述第一SQL语句和所述第二SQL语句。
在本实施例中,根据接收到的同步文件中的第一子文件直接获取SQL语句,并根据第二子文件中的非SQL语句生成SQL语句,再将直接获取和生成的SQL语句传送至第二数据库后,使第二数据库执行完成同步文件的数据同步。在同步文件的数据传送效率更高的前提下,接收端的SQL语句的执行效率也更高。
在一种可能的实现方式中,本申请提供一种异构数据库同步装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行本申请中任意一项所述方法的步骤。
在一种可能的实现方式中,本申请提供一种异构数据库同步装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行本申请中任意一项所述方法的步骤。
一种可能的实现方式中,本申请提供一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现本申请中任一项所述的方法。
图7是根据一示例性实施例示出的一种异构数据库同步装置1900的框图。例如,装置1900可以被提供为一服务器。参照图7,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法中的步骤。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(I/O)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1932,上述指令可由装置1900的处理组件1922执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (13)
1.一种异构数据库同步方法,其特征在于,包括:
从第一数据库获取源数据;
根据所述源数据生成同步文件,所述同步文件包括第一子文件和第二子文件,所述第一子文件包括第一SQL语句,所述第二子文件包括非SQL语句;
将所述同步文件传送至接收端,以使所述接收端获取第一SQL语句,根据所述非SQL语句生成第二SQL语句。
2.根据权利要求1所述的方法,其特征在于,根据所述源数据生成同步文件,包括:
根据所述源数据确定操作命令的类型,所述类型包括第一类型或第二类型,所述第二类型包括数据增加、数据删除和数据更改;
当确定出的所述操作命令为所述第一类型时,根据所述源数据生成第一SQL语句,并根据所述第一SQL语句生成第一子文件;
当确定出的所述操作命令为所述第二类型时,根据所述源数据生成非SQL语句,并根据所述非SQL语句生成第二子文件;
根据所述第一子文件和所述第二子文件生成同步文件。
3.根据权利要求2所述的方法,其特征在于,根据所述SQL语句生成所述第一子文件,包括:
根据所述第一SQL语句和预设的第一子文件模板生成所述第一子文件,所述第一子文件模板包括SQL语句类型、SQL语句事务识别码和SQL语句内容。
4.根据权利要求2所述的方法,其特征在于,根据所述非SQL语句生成所述第二子文件,包括:
根据所述非SQL语句和预设的第二子文件模板生成所述第二子文件,所述第二子文件模板包括操作命令、操作位置和操作数据。
5.一种异构数据库同步方法,其特征在于,所述方法包括:
接收并解析来自发送端的同步文件,所述同步文件包括第一子文件和第二子文件,所述第一子文件包括第一SQL语句,所述第二子文件包括非SQL语句;
获取所述第一子文件中的第一SQL语句,根据所述第二子文件中的非SQL语句生成第二SQL语句;
将所述第一SQL语句和所述第二SQL语句传送至第二数据库,以使所述第二数据库执行所述第一SQL语句和所述第二SQL语句。
6.一种异构数据库同步装置,其特征在于,包括:
源数据获取模块,用于从第一数据库获取源数据;
同步文件生成模块,用于根据所述源数据生成同步文件,所述同步文件包括第一子文件和第二子文件,所述第一子文件包括第一SQL语句,所述第二子文件包括非SQL语句;
发送模块,用于将所述同步文件传送至接收端,以使所述接收端获取第一SQL语句,根据所述非SQL语句生成第二SQL语句。
7.根据权利要求9所述的装置,其特征在于,所述同步文件生成模块,包括:
操作命令分类单元,用于根据所述源数据确定操作命令的类型,所述类型包括第一类型或第二类型,所述第二类型包括数据增加、数据删除和数据更改;
第一子文件生成单元,用于当确定出的所述操作命令为所述第一类型时,根据所述源数据生成第一SQL语句,并根据所述第一SQL语句生成第一子文件;
第二子文件生成单元,用于当确定出的所述操作命令为所述第二类型时,根据所述源数据生成非SQL语句,并根据所述非SQL语句生成第二子文件;
同步文件生成单元,用于根据所述第一子文件和所述第二子文件生成同步文件。
8.根据权利要求7所述的装置,其特征在于,所述第一子文件生成单元,用于:
根据所述第一SQL语句和预设的第一子文件模板生成所述第一子文件,所述第一子文件模板包括SQL语句类型、SQL语句事务识别码和SQL语句内容。
9.根据权利要求7所述的装置,其特征在于,所述第二子文件生成单元,用于:
根据所述非SQL语句和预设的第二子文件模板生成所述第二子文件,所述第二子文件模板包括操作命令、操作位置和操作数据。
10.一种异构数据库同步装置,其特征在于,包括:
接收模块,用于接收并解析来自发送端的同步文件,所述同步文件包括第一子文件和第二子文件,所述第一子文件包括第一SQL语句,所述第二子文件包括非SQL语句;
第一SQL语句获取模块,用于获取所述第一子文件中的第一SQL语句;
第二SQL语句生成模块,用于根据所述第二子文件中的非SQL语句生成第二SQL语句;
传送模块,用于将所述第一SQL语句和所述第二SQL语句传送至第二数据库,以使所述第二数据库执行所述第一SQL语句和所述第二SQL语句。
11.一种异构数据库同步装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:执行权利要求1至4中任意一项所述方法的步骤。
12.一种异构数据库同步装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:执行权利要求5中所述方法的步骤。
13.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710853533.8A CN107590256A (zh) | 2017-09-20 | 2017-09-20 | 异构数据库同步方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710853533.8A CN107590256A (zh) | 2017-09-20 | 2017-09-20 | 异构数据库同步方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107590256A true CN107590256A (zh) | 2018-01-16 |
Family
ID=61046928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710853533.8A Pending CN107590256A (zh) | 2017-09-20 | 2017-09-20 | 异构数据库同步方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107590256A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109298976A (zh) * | 2018-10-17 | 2019-02-01 | 成都索贝数码科技股份有限公司 | 一种异构数据库集群备份系统及方法 |
CN111414358A (zh) * | 2019-12-30 | 2020-07-14 | 杭州美创科技有限公司 | 应用于关系型数据库数据装载的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761318A (zh) * | 2014-01-27 | 2014-04-30 | 中国工商银行股份有限公司 | 一种关系型异构数据库数据同步的方法及系统 |
US20160162370A1 (en) * | 2014-12-05 | 2016-06-09 | Commvault Systems, Inc. | Synchronization based on filtered browsing |
US20160217150A1 (en) * | 2015-01-28 | 2016-07-28 | Quantum Corporation | Database Conversion From Single Monolithic File Mode To One Table Per File And One File Per Table Mode |
CN106250514A (zh) * | 2016-08-04 | 2016-12-21 | 摩贝(上海)生物科技有限公司 | 基于Mysql数据库和SQL日志的跨国数据同步方法 |
CN106599061A (zh) * | 2016-11-16 | 2017-04-26 | 成都九洲电子信息系统股份有限公司 | 基于SQLite的嵌入式数据库同步方法 |
-
2017
- 2017-09-20 CN CN201710853533.8A patent/CN107590256A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761318A (zh) * | 2014-01-27 | 2014-04-30 | 中国工商银行股份有限公司 | 一种关系型异构数据库数据同步的方法及系统 |
US20160162370A1 (en) * | 2014-12-05 | 2016-06-09 | Commvault Systems, Inc. | Synchronization based on filtered browsing |
US20160217150A1 (en) * | 2015-01-28 | 2016-07-28 | Quantum Corporation | Database Conversion From Single Monolithic File Mode To One Table Per File And One File Per Table Mode |
CN106250514A (zh) * | 2016-08-04 | 2016-12-21 | 摩贝(上海)生物科技有限公司 | 基于Mysql数据库和SQL日志的跨国数据同步方法 |
CN106599061A (zh) * | 2016-11-16 | 2017-04-26 | 成都九洲电子信息系统股份有限公司 | 基于SQLite的嵌入式数据库同步方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109298976A (zh) * | 2018-10-17 | 2019-02-01 | 成都索贝数码科技股份有限公司 | 一种异构数据库集群备份系统及方法 |
CN109298976B (zh) * | 2018-10-17 | 2022-04-12 | 成都索贝数码科技股份有限公司 | 一种异构数据库集群备份系统及方法 |
CN111414358A (zh) * | 2019-12-30 | 2020-07-14 | 杭州美创科技有限公司 | 应用于关系型数据库数据装载的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102162872B1 (ko) | 멀티 타스크 스케줄링 방법, 시스템, 애플리케이션 서버 및 컴퓨터 판독 가능한 저장매체 | |
CN110765744B (zh) | 多人协同文档编辑方法及系统 | |
CN106599164B (zh) | 复杂事件处理中对于参数化的查询/视图的支持 | |
CN110990273B (zh) | 克隆代码检测方法及装置 | |
CN111008521B (zh) | 生成宽表的方法、装置及计算机存储介质 | |
US9053444B2 (en) | Deploying applications in a smart thin client server | |
CN110347747A (zh) | 数据库间数据同步方法、系统、计算机设备及存储介质 | |
CN104331295A (zh) | 页面生成方法和系统 | |
CN110945481B (zh) | 跨网络执行元组图程序的方法 | |
JP2007080243A (ja) | ミドルウェア及びこれを利用したビジネスロジックの処理方法(amiddlewareandamethodforimplementingbusinesslogicusingit) | |
CN103326929A (zh) | 一种消息传输方法和装置 | |
CN107741950A (zh) | 数据同步任务的处理方法、装置、处理器及服务端 | |
WO2016082696A1 (zh) | 一种ua识别方法、装置 | |
WO2012126301A1 (zh) | 一种消息发送、接收处理的方法及其装置 | |
JP2016526719A (ja) | 時間調整を使用したストリームデータ処理方法 | |
CN107657002A (zh) | 文件同步方法及装置 | |
CN105573726B (zh) | 一种规则处理方法及设备 | |
CN108063812B (zh) | 实时云办公系统下文件管理的一致性维护方法 | |
CN107590256A (zh) | 异构数据库同步方法和装置 | |
US10678774B2 (en) | Generating source code for creating database triggers | |
CN112131014B (zh) | 决策引擎系统及其业务处理方法 | |
CN113268232B (zh) | 一种页面皮肤生成方法、装置和计算机可读存储介质 | |
CN110309147B (zh) | 飞行器在轨试验双向溯源方法及设备 | |
WO2024001754A1 (zh) | 版本控制方法、装置、电子设备及存储介质 | |
CN105468355B (zh) | Web管理平台在mvc模式下的实现方法及系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180116 |