CN110704532A - 数据库间的数据同步方法、装置、计算机设备及存储介质 - Google Patents
数据库间的数据同步方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110704532A CN110704532A CN201910880634.3A CN201910880634A CN110704532A CN 110704532 A CN110704532 A CN 110704532A CN 201910880634 A CN201910880634 A CN 201910880634A CN 110704532 A CN110704532 A CN 110704532A
- Authority
- CN
- China
- Prior art keywords
- data
- transaction
- synchronization
- data operation
- sending
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (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
本发明涉及数据库间的数据同步方法、装置、计算机设备及存储介质,属于数据库同步技术领域。该方法包括:若接收到数据同步指令,从同步事务链表中获取数据操作事务;所述数据操作事务为对嵌入式数据库中的数据进行操作所对应的事务;通过预先配置的同步链路,将所述数据操作事务发送给目的端设备;以使所述目的端设备向关系数据库提交所述数据操作事务,以在所述关系数据库中同步对数据的操作。上述技术方案,通过同步数据操作事务的方式实现数据库间的数据同步,能有效解决数据库间的唯一性约束问题,保证各个数据库间数据的完全同步。
Description
技术领域
本发明涉及数据库同步技术领域,特别是涉及数据库间的数据同步方法、装置、计算机设备及存储介质。
背景技术
网络技术越来越发达,使用嵌入式操作***的设备越来越多,这些设备之间都是单独使用的,彼此数据独立存在,现在需要一种技术把各个设备上的数据进行汇总、备份,防止嵌入式设备由于损坏带来的数据丢失等不可逆的灾难发生。
在实现本发明过程中,发明人发现传统方式中至少存在如下问题:嵌入式***设备在使用的过程中是独立操作的,如果需要把各个嵌入式设备上的数据进行汇总备份,传统的解决方案是需要把各个设备上的嵌入式数据库数据文件导出,然后集中到一台普通PC机上,该机上安装有关系数据库,再通过关系数据库的导入工具把数据导入进关系数据库,实现对嵌入式数据库数据的汇总以及数据同步。这种方式操作中,各个嵌入式数据库上的相同表如果有的列是带有唯一性约束的,那在关系数据库中进行数据导入时会因为违反唯一性约束导致数据导入失败,完成不了各个设备上的数据完全的同步。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
基于此,本发明实施例提供了数据库间的数据同步方法、装置、计算机设备及存储介质,通过同步数据操作事务的方式实现数据库间的数据同步,能有效解决数据库间的唯一性约束问题,保证各个数据库间数据的完全同步。
本发明实施例的内容如下:
第一方面,本发明实施例提供一种数据库间的数据同步方法,包括以下步骤:若接收到数据同步指令,从同步事务链表中获取数据操作事务;所述数据操作事务为对嵌入式数据库中的数据进行操作所对应的事务;通过预先配置的同步链路,将所述数据操作事务发送给目的端设备;以使所述目的端设备向关系数据库提交所述数据操作事务,以在所述关系数据库中同步对数据的操作。
在一个实施例中,所述通过预先配置的同步链路,将所述数据操作事务发送给目的端设备的步骤,包括:对所述数据操作事务进行封装和加密处理,得到已处理的数据操作事务;通过预先配置的同步链路,将所述已处理的数据操作事务发送给目的端设备;以使所述目的端设备对所述已处理的数据操作事务进行解密和解封装处理,还原所述数据操作事务,并向关系数据库提交所述数据操作事务,以在所述关系数据库中同步对数据的操作。
在一个实施例中,所述从同步事务链表中获取数据操作事务的步骤之前,还包括:接收多个数据操作初始事务;若某一数据操作初始事务对应有回滚操作,丢弃所述某一数据操作初始事务,得到所述数据操作事务。
在一个实施例中,还包括以下步骤:创建数据表,在所述数据表中***数据;将所***的数据发送给所述目的端设备;接收所述目的端设备的数据同步结果,根据所述数据同步结果,得到所述同步链路的测试结果;所述通过预先配置的同步链路,将所述数据操作事务发送给目的端设备的步骤,包括:若所述同步链路的测试结果为测试通过,通过所述同步链路,将所述数据操作事务发送给目的端设备。
在一个实施例中,所述通过预先配置的同步链路,将所述数据操作事务发送给目的端设备的步骤,包括:获取同步链路配置参数;所述同步链路配置参数包括以下至少一项:同步链路编号、目的端设备的IP地址、目的端设备的端口号、本地事务缓存路径、事务发送模块的描述信息;根据所述同步链路配置参数,将所述数据操作事务发送给目的端设备。
在一个实施例中,所述通过预先配置的同步链路,将所述数据操作事务发送给目的端设备的步骤,包括:与所述目的端设备的同步工具建立网络连接;通过预先配置的同步链路以及所建立的网络连接,将所述数据操作事务发送给目的端设备的同步工具。
在一个实施例中,所述通过预先配置的同步链路,将所述数据操作事务发送给目的端设备的步骤,包括:若出现网络中断,将所述数据操作事务保存在本地;向所述同步工具发送连接请求,在重新与所述同步工具建立网络连接后,通过预先配置的同步链路以及重新建立的网络连接,将本地保存的所述数据操作事务发送给所述同步工具。
第二方面,本发明实施例提供一种数据库间的数据同步装置,包括:事务获取模块,用于若接收到数据同步指令,从同步事务链表中获取数据操作事务;所述数据操作事务为对嵌入式数据库中的数据进行操作所对应的事务;数据同步模块,用于通过预先配置的同步链路,将所述数据操作事务发送给目的端设备;以使所述目的端设备向关系数据库提交所述数据操作事务,以在所述关系数据库中同步对数据的操作。
第三方面,本发明实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:若接收到数据同步指令,从同步事务链表中获取数据操作事务;所述数据操作事务为对嵌入式数据库中的数据进行操作所对应的事务;通过预先配置的同步链路,将所述数据操作事务发送给目的端设备;以使所述目的端设备向关系数据库提交所述数据操作事务,以在所述关系数据库中同步对数据的操作。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:若接收到数据同步指令,从同步事务链表中获取数据操作事务;所述数据操作事务为对嵌入式数据库中的数据进行操作所对应的事务;通过预先配置的同步链路,将所述数据操作事务发送给目的端设备;以使所述目的端设备向关系数据库提交所述数据操作事务,以在所述关系数据库中同步对数据的操作。
上述技术方案中的一个技术方案具有如下优点或有益效果:在接收到数据同步指令时,从同步事务链表中获取数据操作事务;通过预先配置的同步链路,将所述数据操作事务发送给目的端设备;以使所述目的端设备向关系数据库提交所述数据操作事务,以在所述关系数据库中同步对数据的操作。通过同步数据操作事务的方式实现数据库间的数据同步,能有效解决数据库间的唯一性约束问题,保证各个数据库间数据的完全同步。
附图说明
图1为一个实施例中数据库间的数据同步方法的应用环境图;
图2为一个实施例中数据库间的数据同步方法的流程示意图;
图3为另一个实施例中数据库间的数据同步方法的流程示意图;
图4为再一个实施例中数据库间的数据同步方法的流程示意图;
图5为一个实施例中数据库间的数据同步装置的结构框图;
图6为一个实施例中计算机设备的内部结构。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请提供的数据库间的数据同步方法可以应用于如图1所示的应用环境中。该应用环境中包含有源端设备101(图1中示出了3个源端设备,在实际的应用场景中,可以包含更多或更少的源端设备)和目的端设备102,源端设备101和目的端设备102在建立网络连接后可以进行网络通信。源端设备101获取对嵌入式数据库中的数据进行操作的数据操作事务,将该数据操作事务发送给目的端设备102,目的端设备102根据该数据操作事务同步对数据的操作,以完成在目的端设备的关系数据库中的数据同步。其中,源端设备101和目的端设备102均可以为终端设备或者服务器,进一步地,终端设备可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
本发明实施例提供一种数据库间的数据同步方法、装置、计算机设备及存储介质。以下分别进行详细说明。
在一个实施例中,如图2所示,提供了一种数据库间的数据同步方法。以该方法应用于图1中的源端设备101(也可以具体由源端设备中的控制器实现)为例进行说明,包括以下步骤:
S201、若接收到数据同步指令,从同步事务链表中获取数据操作事务(在某些实施例中也可以简称为事务);所述数据操作事务为对嵌入式数据库中的数据进行操作所对应的事务。
其中,源端设备指的是产生需要同步的数据的设备,可以是各种具有数据存储功能的设备。进一步地,源端设备可以是设置有嵌入式操作***的设备,例如:手持终端、车载设备、物流网设备等,这些设备在使用过程中会产生数据(所产生的数据可以先存储在设备的内存中),而这些数据会***(这个***可以包括写入数据的过程,还包括对数据进行删除、运算、读取等等操作)到对应的数据库(这个数据库称为嵌入式数据库)中。向嵌入式数据库***数据的过程就可以认为是对数据库进行操作的过程,而***操作完成之后会生成数据操作事务。
数据操作事务除了可以包括对数据的操作信息,也可以包括所针对的数据、数据地址,还可以包括操作前后的数据状态或者数值(例如:某一数据操作事务可以为:原始数据为1,经过+1的数据操作之后该原始数据变为2)。进一步地,一个数据操作事务可以对应一个操作,也可以对应多个操作;从同步事务链表中获取的数据操作事务可以为一个、也可以为两个、还可以为多个。
数据同步指令指的是触发数据同步过程的指令,可以由外部设备发送,也可以在嵌入式数据库中的数据同步功能模块的开关打开(可以在需要保持源端设备的独立运行时,将数据同步功能模块关闭,而在不需要源端设备独立运行时,将将数据同步功能模块打开)时,由源端设备自动生成(即,数据同步功能模块的开关打开即认为可以进行数据库间的数据同步操作)。
同步事务链表是用于存储数据操作事务的链表,可以存储在源端设备的缓存区中。源端设备可以实时监测嵌入式数据库的状态,在存在对嵌入式数据库的数据操作时,根据该数据操作生成数据操作事务(数据操作事务也可以由嵌入式数据库生成),例如:当出现向嵌入式数据库写入数据的操作时,生成“数据写入”的数据操作事务,当出现将嵌入式数据库中的数据进行+1运算时,生成“+1”的数据操作事务,之后将数据操作事务添加到同步事务链表中进行存储。进一步地,同步事务链表可以根据数据操作事务的生成时间先后按顺序记录数据操作事务,在需要获取数据操作事务时,也可以按数据操作事务的记录先后顺序来获取。
进一步地,从同步事务链表中获取数据操作事务可以由消息模块(可以指源端设备中的程序功能模块)实现。即,消息模块从同步事务链表中读取还未进行同步操作的数据操作事务。
S202、通过预先配置的同步链路,将所述数据操作事务发送给目的端设备;以使所述目的端设备向关系数据库提交所述数据操作事务,以在所述关系数据库中同步对数据的操作。
其中,同步链路指的是在源端设备和目的端设备之间进行数据传输的链路,可以在进行数据库间的数据同步之前预先建立。同步链路的配置过程可以为:确定同步链路对应的配置参数,基于该配置参数源端数据就能与目的端设备实现数据交互,即完成同步链路的配置过程。
目的端设备中设置有关系数据库,该目的端设备可以连接有多个源端设备,这些源端设备将产生的数据操作事务发送给目的端设备,而目的端设备可以直接通过关系数据库存储该数据操作事务,也可以根据该数据操作事务向关系数据库中的数据进行同样的操作,以达到数据同步的目的。如图3所示,图3中有N个源端设备(设备A、设备B、…、以及设备N),这些源端设备产生的数据操作事务经过事务筛选之后通过消息模块进行消息处理和事务处理,并提交给目的端设备,由目的端设备完成数据同步的操作。
在一些实施例中,目的端设备也可以为多个(各个源端设备通过同步链路与对应的目的端设备进行网络通信),在这种情况下,在向目的端设备发送数据操作事务时,可以根据对应的同步链路向对应的目的端设备发送数据操作事务。
进一步地,关系数据库可以对各个源端设备发送的信息进行分别存储,以实现数据的独立,防止出现数据的混淆。
在完成嵌入式数据库中的数据在关系数据库中的同步操作后,如果嵌入式数据库的数据出现丢失,则可以通过访问关系数据库的方式确定对应的数据。因此,也可以将向关系数据库中同步数据的过程认为是向对嵌入式数据库中的数据进行备份的过程,本发明实施例通过数据库间的数据同步实现了对嵌入式数据库中数据的备份。
嵌入式***设备在使用的过程中是独立操作的,如果需要把各个嵌入式设备上的数据进行汇总备份,传统的解决方案是需要把各个设备上的嵌入式数据库数据文件通过SQL语句导出成TXT或者CSV格式的数据,然后集中到一台普通PC机上,该机上安装有关系数据库,再通过关系数据库对嵌入式数据库数据的汇总以及数据备份。这种方式的弊端比较明显:1、就是各个嵌入式数据库上的相同表如果有的列是带有唯一性约束(即不允许存入重复数据),在关系数据库中进行数据导入时会因为违反唯一性约束导致数据导入失败,完成不了各个设备上的数据完全的汇总。2、这种方式操作特别繁琐,导入导出数据消耗时间比较久,效率低,一旦设备出现故障,是不可能从嵌入式设备中手动把数据获取到载体之上的,很容易就导致数据丢失。
上述实施例提供的数据库间的数据同步方法,通过同步数据操作事务的方式实现数据库间的数据同步,能有效解决数据库间的唯一性约束问题,保证各个数据库间数据的完全同步。另外,嵌入式数据库中封装了数据同步功能模块,只需要开启数据同步功能模块的开关,简单配置相关同步链路信息,随着嵌入式数据库的运行,就可以完成对嵌入式数据库内存中实时数据的同步。如果直接向目的端设备传输数据,则在不同品牌数据不兼容的情况,就没法实现数据到关系数据库的同步。而即使设备的品牌不能兼容,由于事务信息在这些设备中都可以被识别,因此,本发明实施例提供的数据库间的数据同步方法能在设备A/B/C之间实现事务的传输,并保证数据同步的正常进行。
在一个实施例中,所述通过预先配置的同步链路,将所述数据操作事务发送给目的端设备的步骤,包括:对所述数据操作事务进行封装和加密处理,得到已处理的数据操作事务;通过预先配置的同步链路,将所述已处理的数据操作事务发送给目的端设备;以使所述目的端设备对所述已处理的数据操作事务进行解密和解封装处理,还原所述数据操作事务,并向关系数据库提交所述数据操作事务,以在所述关系数据库中同步对数据的操作。
对数据操作事务进行封装、加密以及传输操作的过程也可以由消息模块实现。
在一些实施例中,除了对数据操作事务进行加密、封装等操作,还可以进行其他的操作,例如:对数据操作事务进行有效性验证等,如果验证不通过,则停止对该数据操作事务进行进一步处理。
上述实施例,在设备之间进行数据操作事务传输时,对其进行封装、加密等操作,目的端设备在接收到已处理的数据操作事务后,针对性地进行解密和解封装处理,以得到对应的数据操作事务,这样的处理方式能有效保证所传输数据的安全性,也能进一步保证所同步数据的安全性。
进一步地,如图3所示,还可以包括对数据操作事务进行筛选的过程,当发现数据操作事务为无效事务时,则可以丢弃该数据操作事务。
在一个实施例中,所述从同步事务链表中获取数据操作事务的步骤之前,还包括:接收多个数据操作初始事务;若某一数据操作初始事务对应有回滚操作,丢弃所述某一数据操作初始事务,得到所述数据操作事务。
具体的,若源端设备接收到连续时序(也可以不是连续时序)下的两个数据操作初始事务:1、对数据A加1,得到B,2、对数据B减1,得到A。第2个数据操作初始事务相当于第1个数据操作初始事务的回滚操作,这个回滚操作使得数据变为了原来的状态,因此,经过第1个数据操作初始事务和第2个数据操作初始事务之后,相当于对数据A未进行操作,可以认为这两个数据操作初始事务无效,因此,可以将这两个数据操作初始事务丢弃。在经过这些筛选操作之后,剩下的数据操作初始事务就可以认为是数据操作事务,进而可以将所得到的数据操作事务添加至同步事务链表中。
上述实施例对数据操作初始事务进行筛选,将筛选得到的数据操作事务添加到同步事务链表中,以根据同步事务链表中的数据操作事务完成数据同步的过程,能有效保证所同步数据的准确性,同时可以有效节约数据的传输压力。
在一个实施例中,所述从同步事务链表中获取数据操作事务的步骤之前,还包括:确定所述数据操作事务对应的编号(ID);将所述对应的编号添加至所述同步事务链表中。进一步地,在从同步事务链表中获取数据操作事务时,读取对应的ID即可。本实施例中,同步事务链表中存储数据操作事务的ID,能有效降低同步事务链表的存储压力,也能提高数据操作事务的读取的效率。
在一个实施例中,还包括以下步骤:创建数据表,在所述数据表中***数据;将所***的数据发送给所述目的端设备;接收所述目的端设备的数据同步结果,根据所述数据同步结果,得到所述同步链路的测试结果;所述通过预先配置的同步链路,将所述数据操作事务发送给目的端设备的步骤,包括:若所述同步链路的测试结果为测试通过,通过所述同步链路,将所述数据操作事务发送给目的端设备;若同步链路的测试结果为测试不通过,则可以对同步链路进行修复,在修复完成后,重新进行同步链路的测试过程。
其中,数据表可以在嵌入式数据库中。在数据表中***的数据可以为若干行,具体的数据行数以及数据内容可以根据实际情况确定,只要数据表中存储有数据,即可通过这个数据完成同步链路测试的过程。具体的,所***的数据的行数不可以为0行,因为,在这种情况下,将源端设备的数据发送给目的端设备后,目的端设备中是同步不到数据的,而此时不清楚是因为源端设备没有待同步的数据还是因为同步链路故障,因此,需要保证所***的数据不为空。
进一步地,以源端设备为设备A为例,在设备A上创建数据表TA可以通过以下语句实现:
CREATE TABLE TA(A INT,B VARCHAR(100))
而在数据表TA中***1000行数据可以通过以下语句实现:
INSERT INTO TA SELECT LEVEL,LEVEL FROM DUAL CONNECT BY LEVEL<=1000;
COMMIT.
上述实施例实现的是对同步链路的测试过程,只有测试通过的同步链路才能进行数据操作事务的传输,能有效保证所传输数据的安全性,也能进一步保证所同步数据的安全性。
在一个实施例中,所述通过预先配置的同步链路,将所述数据操作事务发送给目的端设备的步骤,包括:获取同步链路配置参数;所述同步链路配置参数包括以下至少一项:同步链路编号、目的端设备的IP地址、目的端设备的端口号、本地事务缓存路径、事务发送模块(即消息模块)的描述信息;根据所述同步链路配置参数,将所述数据操作事务发送给目的端设备。
同步链路配置参数可以如下表1:
表1同步链路配置参数
将数据操作事务发送给目的端设备的具体过程可以为:确定目的端设备的IP地址和端口号,根据该端口号和IP地址确定目的端设备,将所述数据操作事务发送给目的端设备。
在一个实施例中,所述通过预先配置的同步链路,将所述数据操作事务发送给目的端设备的步骤,包括:与所述目的端设备的同步工具建立网络连接;通过预先配置的同步链路以及所建立的网络连接,将所述数据操作事务发送给目的端设备的同步工具。源端设备只有在与目的端设备建立网络连接后,才能向目的端设备进行数据同步。在一些实施例中,源端设备与目的端设备建立网络连接也可以与同步工具之外的器件(例如:网络端口等)建立连接。
进一步地,所述通过预先配置的同步链路,将所述数据操作事务发送给目的端设备的步骤,包括:若出现网络中断,将所述数据操作事务保存在本地;向所述同步工具发送连接请求,在重新与所述同步工具建立网络连接后,通过预先配置的同步链路以及重新建立的网络连接,将本地保存的所述数据操作事务发送给所述同步工具。
上述实施例提供的数据库间的数据同步方法,支持断网重连、断点续传功能。如果在数据集同步过程中出现了网络断开的情况,源端设备就会去一直尝试连接目的端机器上的同步工具,并且把封装好的消息保存在本地,一旦网络恢复,就可以自动向目的端设备续传消息(数据操作事务),防止出现消息偏差不完整的情况。
在一个实施例中,如图4所示,提供一种数据库间的数据同步方法,源端设备中包括数据同步功能模块和消息模块,目的端设备中设置有同步工具。
具体包括以下步骤:
S401、源端设备打开嵌入式数据库的数据同步功能模块的开关。
S402、嵌入式数据库筛选事务到数据同步功能模块中,该数据同步功能模块把事务加入同步事务链表。
S403、消息模块获取同步事务链表中的事务,并且对事务进行封装、加密、并进行消息传输。
S404、目的端设备的同步工具接收消息,解密消息,消息归类,事务还原,将事务提交至关系数据库中,以完成数据入库。
本实施例,通过同步数据操作事务的方式实现数据库间的数据同步,能有效解决数据库间的唯一性约束问题,保证嵌入式数据库和关系数据库间的数据完全同步。
为了更好地理解上述方法,以下详细阐述一个本发明数据库间的数据同步方法的应用实例。
该应用实例中涉及以下设备:安装有嵌入式数据库的手持终端(设备A和设备B,即源端设备),安装有关系数据库的普通PC机(设备C,即目的端设备),其中A、B、C之间运行是完全独立的,彼此之间没有关联。为了防止手持终端由于不可逆的操作造成设备损坏而出现数据丢失,现在需要把设备A和B上的数据定时同步到设备C上的关系数据库中,完成数据的汇总和备份。其中,设备A和设备B上配置有数据同步功能模块和消息模块,设备C上配置有同步工具。
把设备A、设备B以及设备C通过网络连接起来。
在设备C上启动关系数据库,运行同步工具,开启监听,准备接收从手持终端发送过来的消息。
分别启动设备A和设备B上的嵌入式数据库,打开数据同步功能模块的开关,配置向设备C的同步链路配置信息。
设备A上的嵌入式数据库执行***操作,生成事务,事务提交(将事务从嵌入式数据库中输出,可以输出给源端设备的控制器),把事务发送至数据同步功能模块,该数据同步功能模块把事务加入同步事务链表中。消息模块把事务按照事务ID进行封装、加密,向设备C的同步工具发送该消息。
设备B上的嵌入式数据库执行***操作,生成事务,事务提交,把事务发送至数据同步功能模块,该数据同步功能模块把事务加入同步事务链表中。消息模块把事务按照事务ID进行封装、加密,向设备C的同步工具发送该消息。
设备C接收从设备A、B发送过来的消息,对这些消息进行解密,分类,还原成关系数据库可以提交的事务,进行事务提交,把数据最终同步到数据库中。
这种方式一旦搭建完成,嵌入式数据库和关系数据库的数据同步就可以自动进行,不需要进行人工干预,方便效率,能够及时有效地完成同步数据,避免数据丢失带来的灾难,同时,能有效解决数据库间的唯一性约束问题,保证嵌入式数据库和关系数据库间的数据完全同步。
需要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。
基于与上述实施例中的数据库间的数据同步方法相同的思想,本发明还提供数据库间的数据同步装置,该装置可用于执行上述数据库间的数据同步方法。为了便于说明,数据库间的数据同步装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图5所示,数据库间的数据同步装置包括事务获取模块501和数据同步模块502,详细说明如下:
事务获取模块501,用于若接收到数据同步指令,从同步事务链表中获取数据操作事务;所述数据操作事务为对嵌入式数据库中的数据进行操作所对应的事务。
数据同步模块502,用于通过预先配置的同步链路,将所述数据操作事务发送给目的端设备;以使所述目的端设备向关系数据库提交所述数据操作事务,以在所述关系数据库中同步对数据的操作。
本实施例,通过同步数据操作事务的方式实现数据库间的数据同步,能有效解决数据库间的唯一性约束问题,保证各个数据库间数据的完全同步。
在一个实施例中,数据同步模块502,包括:事务处理子模块,用于对所述数据操作事务进行封装和加密处理,得到已处理的数据操作事务;第一事务发送子模块,用于通过预先配置的同步链路,将所述已处理的数据操作事务发送给目的端设备;以使所述目的端设备对所述已处理的数据操作事务进行解密和解封装处理,还原所述数据操作事务,并向关系数据库提交所述数据操作事务,以在所述关系数据库中同步对数据的操作。
在一个实施例中,还包括:初始事务接收模块,用于接收多个数据操作初始事务;初始事务丢弃模块,用于若某一数据操作初始事务对应有回滚操作,丢弃所述某一数据操作初始事务,得到所述数据操作事务。
在一个实施例中,还包括:数据***模块,用于创建数据表,在所述数据表中***数据;数据发送模块,用于将所***的数据发送给所述目的端设备;测试结果获取模块,用于接收所述目的端设备的数据同步结果,根据所述数据同步结果,得到所述同步链路的测试结果;数据同步模块502,还用于若所述同步链路的测试结果为测试通过,通过所述同步链路,将所述数据操作事务发送给目的端设备。
在一个实施例中,数据同步模块502,还包括:配置参数获取子模块,用于获取同步链路配置参数;所述同步链路配置参数包括以下至少一项:同步链路编号、目的端设备的IP地址、目的端设备的端口号、本地事务缓存路径、事务发送模块的描述信息;第二事务发送子模块,用于根据所述同步链路配置参数,将所述数据操作事务发送给目的端设备。
在一个实施例中,数据同步模块502,还包括:网络连接建立子模块,用于与所述目的端设备的同步工具建立网络连接;第三事务发送子模块,用于通过预先配置的同步链路以及所建立的网络连接,将所述数据操作事务发送给目的端设备的同步工具。
在一个实施例中,数据同步模块502,还包括:事务保存子模块,用于若出现网络中断,将所述数据操作事务保存在本地;第四事务发送子模块,用于向所述同步工具发送连接请求,在重新与所述同步工具建立网络连接后,通过预先配置的同步链路以及重新建立的网络连接,将本地保存的所述数据操作事务发送给所述同步工具。
需要说明的是,本发明的数据库间的数据同步装置与本发明的数据库间的数据同步方法一一对应,在上述数据库间的数据同步方法的实施例阐述的技术特征及其有益效果均适用于数据库间的数据同步装置的实施例中,具体内容可参见本发明方法实施例中的叙述,此处不再赘述,特此声明。
此外,上述示例的数据库间的数据同步装置的实施方式中,各程序模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的程序模块完成,即将所述数据库间的数据同步装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分功能。
本申请提供的数据库间的数据同步方法可以应用于如图6所示的计算机设备中。该计算机设备可以是服务器,也可以是终端设备,其内部结构图可以如图6所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,处理器用于提供计算和控制能力;存储器包括非易失性存储介质、内存储器,该非易失性存储介质存储有操作***、计算机程序(该计算机程序被处理器执行时实现一种数据库间的数据同步方法)和数据库,该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境;数据库用于存储数据库间的数据同步方法执行过程中涉及的各种数据;网络接口用于与外部的终端通过网络连接通信。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据库间的数据同步方法的步骤。此处数据库间的数据同步方法的步骤可以是上述各个实施例的数据库间的数据同步方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据库间的数据同步方法的步骤。此处数据库间的数据同步方法的步骤可以是上述各个实施例的数据库间的数据同步方法中的步骤。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,作为独立的产品销售或使用。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本发明实施例的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或(模块)单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,不能理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据库间的数据同步方法,其特征在于,包括以下步骤:
若接收到数据同步指令,从同步事务链表中获取数据操作事务;所述数据操作事务为对嵌入式数据库中的数据进行操作所对应的事务;
通过预先配置的同步链路,将所述数据操作事务发送给目的端设备;以使所述目的端设备向关系数据库提交所述数据操作事务,以在所述关系数据库中同步对数据的操作。
2.根据权利要求1所述的方法,其特征在于,所述通过预先配置的同步链路,将所述数据操作事务发送给目的端设备的步骤,包括:
对所述数据操作事务进行封装和加密处理,得到已处理的数据操作事务;
通过预先配置的同步链路,将所述已处理的数据操作事务发送给目的端设备;以使所述目的端设备对所述已处理的数据操作事务进行解密和解封装处理,还原所述数据操作事务,并向关系数据库提交所述数据操作事务,以在所述关系数据库中同步对数据的操作。
3.根据权利要求1所述的方法,其特征在于,所述从同步事务链表中获取数据操作事务的步骤之前,还包括:
接收多个数据操作初始事务;
若某一数据操作初始事务对应有回滚操作,丢弃所述某一数据操作初始事务,得到所述数据操作事务。
4.根据权利要求1所述的方法,其特征在于,
还包括以下步骤:
创建数据表,在所述数据表中***数据;
将所***的数据发送给所述目的端设备;
接收所述目的端设备的数据同步结果,根据所述数据同步结果,得到所述同步链路的测试结果;
所述通过预先配置的同步链路,将所述数据操作事务发送给目的端设备的步骤,包括:
若所述同步链路的测试结果为测试通过,通过所述同步链路,将所述数据操作事务发送给目的端设备。
5.根据权利要求1所述的方法,其特征在于,所述通过预先配置的同步链路,将所述数据操作事务发送给目的端设备的步骤,包括:
获取同步链路配置参数;所述同步链路配置参数包括以下至少一项:同步链路编号、目的端设备的IP地址、目的端设备的端口号、本地事务缓存路径、事务发送模块的描述信息;
根据所述同步链路配置参数,将所述数据操作事务发送给目的端设备。
6.根据权利要求1所述的方法,其特征在于,所述通过预先配置的同步链路,将所述数据操作事务发送给目的端设备的步骤,包括:
与所述目的端设备的同步工具建立网络连接;
通过预先配置的同步链路以及所建立的网络连接,将所述数据操作事务发送给目的端设备的同步工具。
7.根据权利要求6所述的方法,其特征在于,所述通过预先配置的同步链路,将所述数据操作事务发送给目的端设备的步骤,包括:
若出现网络中断,将所述数据操作事务保存在本地;
向所述同步工具发送连接请求,在重新与所述同步工具建立网络连接后,通过预先配置的同步链路以及重新建立的网络连接,将本地保存的所述数据操作事务发送给所述同步工具。
8.一种数据库间的数据同步装置,其特征在于,包括:
事务获取模块,用于若接收到数据同步指令,从同步事务链表中获取数据操作事务;所述数据操作事务为对嵌入式数据库中的数据进行操作所对应的事务;
数据同步模块,用于通过预先配置的同步链路,将所述数据操作事务发送给目的端设备;以使所述目的端设备向关系数据库提交所述数据操作事务,以在所述关系数据库中同步对数据的操作。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910880634.3A CN110704532A (zh) | 2019-09-18 | 2019-09-18 | 数据库间的数据同步方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910880634.3A CN110704532A (zh) | 2019-09-18 | 2019-09-18 | 数据库间的数据同步方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110704532A true CN110704532A (zh) | 2020-01-17 |
Family
ID=69194512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910880634.3A Pending CN110704532A (zh) | 2019-09-18 | 2019-09-18 | 数据库间的数据同步方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110704532A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114064167A (zh) * | 2020-07-31 | 2022-02-18 | 霍尼韦尔国际公司 | 为火灾控制***的控制面板生成模型 |
CN115576969A (zh) * | 2022-12-07 | 2023-01-06 | 北京奥星贝斯科技有限公司 | 一种并行执行数据库任务的方法、装置、介质及设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719149A (zh) * | 2009-12-03 | 2010-06-02 | 联动优势科技有限公司 | 数据同步方法及装置 |
CN101807210A (zh) * | 2010-04-26 | 2010-08-18 | 中兴通讯股份有限公司 | 一种数据库间数据同步的方法、***及设备 |
CN102629268A (zh) * | 2012-03-09 | 2012-08-08 | 华为技术有限公司 | 数据同步方法、***及数据访问装置 |
CN104967658A (zh) * | 2015-05-08 | 2015-10-07 | 成都品果科技有限公司 | 一种多终端设备上的数据同步方法 |
US20160154708A1 (en) * | 2011-07-20 | 2016-06-02 | Jpmorgan Chase Bank, N.A. | Safe Storing Data for Disaster Recovery |
US20160308963A1 (en) * | 2015-04-17 | 2016-10-20 | Zuora, Inc. | System and method for real-time cloud data synchronization using a database binary log |
CN106599061A (zh) * | 2016-11-16 | 2017-04-26 | 成都九洲电子信息***股份有限公司 | 基于SQLite的嵌入式数据库同步方法 |
CN106649449A (zh) * | 2016-09-22 | 2017-05-10 | 济南浪潮高新科技投资发展有限公司 | 一种基于SQLite的内外网数据交换方法 |
-
2019
- 2019-09-18 CN CN201910880634.3A patent/CN110704532A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719149A (zh) * | 2009-12-03 | 2010-06-02 | 联动优势科技有限公司 | 数据同步方法及装置 |
CN101807210A (zh) * | 2010-04-26 | 2010-08-18 | 中兴通讯股份有限公司 | 一种数据库间数据同步的方法、***及设备 |
US20160154708A1 (en) * | 2011-07-20 | 2016-06-02 | Jpmorgan Chase Bank, N.A. | Safe Storing Data for Disaster Recovery |
CN102629268A (zh) * | 2012-03-09 | 2012-08-08 | 华为技术有限公司 | 数据同步方法、***及数据访问装置 |
US20160308963A1 (en) * | 2015-04-17 | 2016-10-20 | Zuora, Inc. | System and method for real-time cloud data synchronization using a database binary log |
CN104967658A (zh) * | 2015-05-08 | 2015-10-07 | 成都品果科技有限公司 | 一种多终端设备上的数据同步方法 |
CN106649449A (zh) * | 2016-09-22 | 2017-05-10 | 济南浪潮高新科技投资发展有限公司 | 一种基于SQLite的内外网数据交换方法 |
CN106599061A (zh) * | 2016-11-16 | 2017-04-26 | 成都九洲电子信息***股份有限公司 | 基于SQLite的嵌入式数据库同步方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114064167A (zh) * | 2020-07-31 | 2022-02-18 | 霍尼韦尔国际公司 | 为火灾控制***的控制面板生成模型 |
CN115576969A (zh) * | 2022-12-07 | 2023-01-06 | 北京奥星贝斯科技有限公司 | 一种并行执行数据库任务的方法、装置、介质及设备 |
CN115576969B (zh) * | 2022-12-07 | 2023-03-10 | 北京奥星贝斯科技有限公司 | 一种并行执行数据库任务的方法、装置、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110263035B (zh) | 基于区块链的数据存储、查询方法及装置和电子设备 | |
US10824372B2 (en) | Data recovery method and device, and cloud storage system | |
CN109522363B (zh) | 基于区块链的云平台同步方法、***、设备及存储介质 | |
CN110704532A (zh) | 数据库间的数据同步方法、装置、计算机设备及存储介质 | |
CN109710617B (zh) | 一种基于默克尔证明的安全数据交易方法 | |
CN111949726A (zh) | 一种基于区块链的关系型数据库同步方法及同步*** | |
CN112422368A (zh) | 基于clickhouse的数据库集群监控方法及*** | |
CN108874441A (zh) | 一种板卡配置方法、装置、服务器和存储介质 | |
CN113132356B (zh) | Udp报文的分发方法、设备及存储介质 | |
CN112291321B (zh) | 业务处理方法、装置及*** | |
WO2021202704A1 (en) | Hardware security module proxy device for storage expansion | |
CN101841425B (zh) | 一种无代理的网络备份方法、装置和*** | |
CN112636987A (zh) | 一种区块链的跨链网关确定方法、***及终端设备 | |
CN112434112A (zh) | 将区块链数据同步存储到数据库的方法及装置 | |
CN109714337B (zh) | 一种数据加密传输方法及设备 | |
US20220083439A1 (en) | Technology To Provide Fault Tolerance For Elliptic Curve Digital Signature Algorithm Engines | |
CN111506930B (zh) | 一种基于区块链的电商交易信息管理***及方法 | |
CN114936115A (zh) | 一种数据存储备份方法、装置、计算机设备和存储介质 | |
CN111884818B (zh) | 数据文件处理方法、***、服务器及存储介质 | |
CN113610527A (zh) | 联盟链的交易方法、装置、***、终端设备及存储介质 | |
JPH07114495A (ja) | 多重化ファイル管理方式 | |
CN112416981A (zh) | 基于区块链的数据处理方法、装置、电子设备及存储介质 | |
CN115987513B (zh) | 分布式数据库分片加密、解密方法、装置、设备及介质 | |
CN110825918A (zh) | 一种数字证书的获取方法、存储方法及装置 | |
CN112395142B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200117 |
|
RJ01 | Rejection of invention patent application after publication |