CN103927326A - 数据库数据双向协同方法及系统 - Google Patents
数据库数据双向协同方法及系统 Download PDFInfo
- Publication number
- CN103927326A CN103927326A CN201410100673.4A CN201410100673A CN103927326A CN 103927326 A CN103927326 A CN 103927326A CN 201410100673 A CN201410100673 A CN 201410100673A CN 103927326 A CN103927326 A CN 103927326A
- Authority
- CN
- China
- Prior art keywords
- database
- login name
- middleware
- address
- data
- 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.)
- Granted
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库数据双向协同方法及系统,该方法包括:预先存储供中间件连接第一数据库的第一登录名或第一IP地址;在捕获到指向第一数据库的业务数据时,提取该业务数据的源端连接第一数据库所使用的第三登录名或第三IP地址;判断所提取的第三登录名或第三IP地址与预先存储的第一登录名或第一IP地址是否相同,若否,则根据业务数据生成临时数据,以供中间件读取该临时数据并把该临时数据写入第二数据库;若是,则不做处理。实施本发明的技术方案,不会造成同一条业务数据在两个数据库之间循环读写的情况,而且,这种方法无须更改数据结构就能方便快捷地辨别业务数据的来源,使用起来简捷高效。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种数据库数据双向协同方法及系统。
背景技术
在数据库开发中,往往会遇到两个或两个以上应用系统的数据需要同步的情况,通常都是通过中间件进行单向的数据同步,即中间件把系统A通过触发器捕获的业务数据同步到系统B的数据库,或者,中间件把系统B通过触发器捕获的业务数据同步到系统A。但是如果系统A和系统B之间的业务数据需要相互同步,那么此时通过一般的触发器来捕获业务数据的方法就比较难以实现了,因为当应用系统中的业务数据发生变化的时候,触发器无法辨别该业务数据是由应用系统本身产生的还是由中间件同步产生的,从而就会造成同一条业务数据在系统A和系统B之间循环读写的情况。
针对这种情况,一般的解决办法是在应用系统的数据表里加标记字段,通过该标记字段来区分业务数据的来源,进而由触发器来辨别是否需要针对该业务数据生成临时数据,但是采用这种方法的缺点是很明显的:
1.在应用系统的数据表里增加标记字段会改变应用系统的表结构,这样就可能出现应用程序在读取表数据进行数据处理时出现取值错乱的情况。
2.触发器在捕获业务数据的时候,首先需要提取该业务数据在数据表里对应的标记字段,然后跟存储器里的标记字段进行比较,从而增加了生成临时数据时的逻辑复杂度。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种数据库数据双向协同方法及系统,不改变数据结构,且简捷高效。
本发明解决其技术问题所采用的技术方案是:构造一种数据库数据双向协同方法,包括:
存储步骤,预先存储供中间件连接第一数据库的第一登录名或第一IP地址,及预先存储供中间件连接第二数据库的第二登录名或第二IP地址;
第一提取步骤,在捕获到指向第一数据库的业务数据时,提取该业务数据的源端连接所述第一数据库所使用的第三登录名或第三IP地址;
第一判断步骤,判断所提取的第三登录名与预先存储的第一登录名是否相同,或判断所提取的第三IP地址与预先存储的第一IP地址是否相同,若否,则执行第一生成步骤;若是,则不做处理;
第一生成步骤,根据所述业务数据生成临时数据,以供中间件读取该临时数据并把该临时数据写入第二数据库;
第二提取步骤,在捕获到指向第二数据库的业务数据时,提取该业务数据的源端连接所述第二数据库所使用的第四登录名或第四IP地址;
第二判断步骤,判断所提取的第四登录名与预先存储的第二登录名是否相同,或判断所提取的第四IP地址与预先存储的第二IP地址是否相同,若否,则执行第二生成步骤;若是,则不做处理;
第二生成步骤,根据所述业务有数据生成临时数据,以供中间件读取该临时数据并把该临时数据写入第一数据库。
在本发明所述的数据库数据双向协同方法中,在第一提取步骤之前,还包括:
连接步骤,使用已经赋予第一数据库操作权限的第一登录名将中间件连接第一数据库,及使用已经赋予第二数据库操作权限的第二登录名将中间件连接第二数据库;
第一配置步骤,在中间件中对第一数据库与第二数据库的策略映射关系进行配置,并把该策略标记为双向;
第二配置步骤,在中间件中对第二数据库与第一数据库的策略映射关系进行配置,并把该策略标记为双向。
本发明还构造一种数据库数据双向协同系统,包括:
存储模块,用于预先存储供中间件连接第一数据库的第一登录名或第一IP地址,及预先存储供中间件连接第二数据库的第二登录名或第二IP地址;
第一提取模块,用于在捕获到指向第一数据库的业务数据时,提取该业务数据的源端连接所述第一数据库所使用的第三登录名或第三IP地址;
第一判断模块,用于判断所提取的第三登录名与预先存储的第一登录名是否相同,或判断所提取的第三IP地址与预先存储的第一IP地址是否相同;
第一生成模块,用于在所述第一判断模块判断不相同时,根据所述业务数据生成临时数据,以供中间件读取该临时数据并把该临时数据写入第二数据库;
第二提取模块,用于在捕获到指向第二数据库的业务数据时,提取该业务数据的源端连接所述第二数据库所使用的第四登录名或第四IP地址;
第二判断模块,用于判断所提取的第四登录名与预先存储的第二登录名是否相同,或判断所提取的第四IP地址与预先存储的第二IP地址是否相同;
第二生成模块,用于在所述第二判断模块判断不相同时,根据所述业务有数据生成临时数据,以供中间件读取该临时数据并把该临时数据写入第一数据库。
在本发明所述的数据库数据双向协同系统中,所述数据库数据双向协同系统还包括:
连接模块,用于使用已经赋予第一数据库操作权限的第一登录名将中间件连接第一数据库,及使用已经赋予第二数据库操作权限的第二登录名将中间件连接第二数据库;
第一配置模块,用于在中间件中对第一数据库与第二数据库的策略映射关系进行配置,并把该策略标记为双向;
第二配置模块,用于在中间件中对第二数据库与第一数据库的策略映射关系进行配置信息,并把该策略标记为双向。
实施本发明的技术方案,源端的数据库由于只将来自客户端的业务数据生成临时数据,并存入相应数据库的临时表,然后由中间件读取并写入目标端的数据库,所以,不会造成同一条业务数据在两个数据库之间循环读写的情况,而且,无须更改数据结构就能方便快捷地辨别业务数据的来源,使用起来简捷高效。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明数据库数据双向协同系统的的较佳实施方式的硬件架构图;
图2是本发明数据库数据双向协同系统实施例一的功能模块图;
图3是本发明数据库数据双向协同方法实施例一的流程图;
图4是本发明数据库数据双向协同方法实施例二的流程图。
具体实施方式
图1是本发明数据库数据双向协同系统的较佳实施方式的硬件架构图,所述的据库数据双向协同系统10应用于电子装置中1中,所述的电子装置1可以是计算机、计算机主机、服务器、笔记本电脑等装置。本实施方式中,该电子装置1包括第一数据库20、第二数据库30及中间件(即中间数据库)40。本实施方式中,据库数据双向协同系统10、该第一数据库20、第二数据库30及中间件(即中间数据库)40可以分别安装于至少具有处理器和存储器的不同服务器中,也可以安装于具有处理器和存储器同一服务器中。中间件30设置在第一数据库20和第二数据库30之间,用于根据所配置的协同策略实现第一数据库20和第二数据库30之间的协同作业。本实施方式中,第一数据库20包括第一永久表21和第一临时表22。第二数据库30包括第二永久表31和第二临时表32。在每个数据库中,其临时表与永久表相似,但临时表当不再使用时会自动删除。
图2示出了本发明数据库数据双向协同系统实施例一的功能模块图。该数据库数据双向协同系统10包括第一配置模块1361、及第二配置模块1362、存储模块131、连接模块135、第一提取模块1321、第二提取模块1322、第一判断模块1331、第二判断模块1332、第一生成模块1341和第二生成模块1342。
存储模块131用于预先存储供中间件40连接第一数据库20的第一登录名或第一IP地址,及预先存储供中间件40连接第二数据库30的第二登录名或第二IP地址。其中,第一登录名可以预先创建,并赋予该第一登录名在访问第一数据库20时的角色及权限,以供中间件40连接第一数据库20时使用。同样地,第二登录名可以预先创建,并赋予该第二登录名在访问第二数据库30时的角色及权限,以供中间件40连接第二数据库30时使用。
连接模块135用于使用已经赋予第一数据库20操作权限的第一登录名将中间件40连接第一数据库20,及使用已经赋予第二数据库30操作权限的第二登录名将中间件40连接第二数据库30。
第一配置模块1361用于在中间件40中对第一数据库20与第二数据库30的策略映射关系进行配置,并把该策略标记为双向;第二配置模块1362用于在中间件40中对第二数据库30与第一数据库20的策略映射关系进行配置信息,并把该策略标记为双向。
第一提取模块1321用于在捕获到指向第一数据库20的业务数据时,提取该业务数据的源端连接所述第一数据库20所使用的第三登录名或第三IP地址。该业务数据可以来自连接第一数据库20的其它客户端50,也可以来自中间件40,即,该业务数据的源端可以是客户端50,也可以是中间件40。
第一判断模块1331用于判断所提取的第三登录名与预先存储的第一登录名是否相同,或判断所提取的第三IP地址与预先存储的第一IP地址是否相同,若相同,则第一判断模块1331判断该业务数据来自中间件40;若不相同,则第一判断模块1331判断该业务数据来自与该第一数据库20连接的客户端50。
当第一判断模块1331判定该业务数据来自与该第一数据库20连接的客户端50时,第一生成模块1341用于根据业务数据生成临时数据,并存入第一数据库20的临时表22,以供中间件40读取该临时数据并把该临时数据写入第二数据库30的永久表31。
同样地,第二提取模块1322用于在捕获到指向第二数据库30的业务数据时,提取该业务数据的源端连接所述第二数据库30所使用的第四登录名或第四IP地址。该业务数据可以来自连接第二数据库30的其它客户端50,也可以来自中间件40,即,该业务数据的源端可以是客户端50,也可以是中间件40。
第二判断模块1332用于判断所提取的第四登录名与预先存储的第二登录名是否相同,或判断所提取的第四IP地址与预先存储的第二IP地址是否相同,若相同,则第二判断模块1332可判断该业务数据来自中间件40;若不相同,则第二判断模块1332可判断该业务数据来自与该第二数据库30连接的客户端50。
当第二判断模块1332判定该业务数据来自与该第二数据库30连接的客户端50时,第二生成模块1342根据业务数据生成临时数据,并存入第二数据库30的临时表32,以供中间件40读取该临时数据并把该临时数据写入第一数据库20的永久表21。
本发明所称的模块是完成特定功能的程序段或者指令。针对模块的相关描述可参照针对图2的说明。需要说明的是,所述的数据库数据双向协同系统10的多个模块被储存在电子装置中1中的存储器(图未示)中并被配置成由电子装置中1的处理器(图未示)来执行。
图3是本发明数据库数据双向协同方法实施例一的流程图,该数据库数据双向协同方法包括:
存储步骤S10:预先存储供中间件40连接第一数据库20的第一登录名,及预先存储供中间件40连接第二数据库30的第二登录名,该步骤可由图2中的存储模块131执行,而且,第一登录名和第二登录名是预先分配好的常量值;
第一提取步骤S11:在捕获到指向第一数据库的业务数据时,提取该业务数据的源端连接所述第一数据库所使用的第三登录名,该步骤可由图2中的第一提取模块1321执行;
第一判断步骤S12:判断所提取的第三登录名与预先存储的第一登录名是否相同,若否,则可确定该业务数据不是由中间件写入的,进而执行步骤S13;若是,则可确定该业务数据是由中间件写入的,进而执行步骤S17,该步骤可由图2中的第一判断模块1331执行;
第一生成步骤S13:根据指向第一数据库的业务数据生成临时数据,以供中间件读取该临时数据并把该临时数据写入第二数据库,实现数据同步,该步骤可由图2中的第一生成模块1341执行;
第二提取步骤S14:在捕获到指向第二数据库的业务数据时,提取该业务数据的源端连接所述第二数据库所使用的第四登录名,该步骤可由图2中的第二提取模块1322执行;
第二判断步骤S15:判断所提取的第四登录名与预先存储的第二登录名是否相同,若否,则执行步骤S16;若否,则可确定该业务数据不是由中间件写入的,进而执行步骤S16;若是,则可确定该业务数据是由中间件写入的,进而执行步骤S17,该步骤可由图2中的第二判断模块1332执行;
第二生成步骤S16:根据指向第二数据库的业务数据生成临时数据,以供中间件读取该临时数据并把该临时数据写入第一数据库,实现数据同步。该步骤可由图2中的第二生成模块1342执行,然后,可继续执行步骤S11;
等待步骤S17.不做处理。
图4是本发明数据库数据双向协同方法实施例二的流程图,该实施例的数据库数据双向协同方法相比图3所示的实施例一,不同之处在于使用连接相应数据库的IP地址取代连接相应数据库的登录名来识别业务数据的来源。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (4)
1.一种数据库数据双向协同方法,其特征在于,包括:
存储步骤,预先存储供中间件连接第一数据库的第一登录名或第一IP地址,及预先存储供中间件连接第二数据库的第二登录名或第二IP地址;
第一提取步骤,在捕获到指向第一数据库的业务数据时,提取该业务数据的源端连接所述第一数据库所使用的第三登录名或第三IP地址;
第一判断步骤,判断所提取的第三登录名与预先存储的第一登录名是否相同,或判断所提取的第三IP地址与预先存储的第一IP地址是否相同,若否,则执行第一生成步骤;若是,则不做处理;
第一生成步骤,根据所述业务数据生成临时数据,以供中间件读取该临时数据并把该临时数据写入第二数据库;
第二提取步骤,在捕获到指向第二数据库的业务数据时,提取该业务数据的源端连接所述第二数据库所使用的第四登录名或第四IP地址;
第二判断步骤,判断所提取的第四登录名与预先存储的第二登录名是否相同,或判断所提取的第四IP地址与预先存储的第二IP地址是否相同,若否,则执行第二生成步骤;若是,则不做处理;
第二生成步骤,根据所述业务有数据生成临时数据,以供中间件读取该临时数据并把该临时数据写入第一数据库。
2.根据权利要求1所述的数据库数据双向协同方法,其特征在于,在第一提取步骤之前,还包括:
连接步骤,使用已经赋予第一数据库操作权限的第一登录名将中间件连接第一数据库,及使用已经赋予第二数据库操作权限的第二登录名将中间件连接第二数据库;
第一配置步骤,在中间件中对第一数据库与第二数据库的策略映射关系进行配置,并把该策略标记为双向;
第二配置步骤,在中间件中对第二数据库与第一数据库的策略映射关系进行配置,并把该策略标记为双向。
3.一种数据库数据双向协同系统,其特征在于,包括:
存储模块,用于预先存储供中间件连接第一数据库的第一登录名或第一IP地址,及预先存储供中间件连接第二数据库的第二登录名或第二IP地址;
第一提取模块,用于在捕获到指向第一数据库的业务数据时,提取该业务数据的源端连接所述第一数据库所使用的第三登录名或第三IP地址;
第一判断模块,用于判断所提取的第三登录名与预先存储的第一登录名是否相同,或判断所提取的第三IP地址与预先存储的第一IP地址是否相同;
第一生成模块,用于在所述第一判断模块判断不相同时,根据所述业务数据生成临时数据,以供中间件读取该临时数据并把该临时数据写入第二数据库;
第二提取模块,用于在捕获到指向第二数据库的业务数据时,提取该业务数据的源端连接所述第二数据库所使用的第四登录名或第四IP地址;
第二判断模块,用于判断所提取的第四登录名与预先存储的第二登录名是否相同,或判断所提取的第四IP地址与预先存储的第二IP地址是否相同;
第二生成模块,用于在所述第二判断模块判断不相同时,根据所述业务有数据生成临时数据,以供中间件读取该临时数据并把该临时数据写入第一数据库。
4.根据权利要求3所述的数据库数据双向协同系统,其特征在于,所述数据库数据双向协同系统还包括:
连接模块,用于使用已经赋予第一数据库操作权限的第一登录名将中间件连接第一数据库,及使用已经赋予第二数据库操作权限的第二登录名将中间件连接第二数据库;
第一配置模块,用于在中间件中对第一数据库与第二数据库的策略映射关系进行配置,并把该策略标记为双向;以及
第二配置模块,用于在中间件中对第二数据库与第一数据库的策略映射关系进行配置信息,并把该策略标记为双向。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410100673.4A CN103927326B (zh) | 2014-03-18 | 2014-03-18 | 数据库数据双向协同方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410100673.4A CN103927326B (zh) | 2014-03-18 | 2014-03-18 | 数据库数据双向协同方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103927326A true CN103927326A (zh) | 2014-07-16 |
CN103927326B CN103927326B (zh) | 2017-08-25 |
Family
ID=51145547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410100673.4A Active CN103927326B (zh) | 2014-03-18 | 2014-03-18 | 数据库数据双向协同方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103927326B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557705A (zh) * | 2016-11-10 | 2017-04-05 | 乐视控股(北京)有限公司 | 一种数据访问方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880619A (zh) * | 2011-07-15 | 2013-01-16 | 深圳市金蝶友商电子商务服务有限公司 | 异构系统之间的数据同步方法、数据交换引擎 |
CN102915368A (zh) * | 2012-10-29 | 2013-02-06 | 重庆亚德科技股份有限公司 | 一种基于云计算的知识服务装置 |
CN103297329A (zh) * | 2013-06-26 | 2013-09-11 | 北京金和软件股份有限公司 | 一种异构系统间消息的准实时双向同步方法 |
US20140025731A1 (en) * | 2010-08-06 | 2014-01-23 | Navteq B.V. | Page Server for Navigation Data |
-
2014
- 2014-03-18 CN CN201410100673.4A patent/CN103927326B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140025731A1 (en) * | 2010-08-06 | 2014-01-23 | Navteq B.V. | Page Server for Navigation Data |
CN102880619A (zh) * | 2011-07-15 | 2013-01-16 | 深圳市金蝶友商电子商务服务有限公司 | 异构系统之间的数据同步方法、数据交换引擎 |
CN102915368A (zh) * | 2012-10-29 | 2013-02-06 | 重庆亚德科技股份有限公司 | 一种基于云计算的知识服务装置 |
CN103297329A (zh) * | 2013-06-26 | 2013-09-11 | 北京金和软件股份有限公司 | 一种异构系统间消息的准实时双向同步方法 |
Non-Patent Citations (1)
Title |
---|
肖晓: "基于JMS的数据同步技术研究与实现", 《万方数据企业知识服务平台》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557705A (zh) * | 2016-11-10 | 2017-04-05 | 乐视控股(北京)有限公司 | 一种数据访问方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103927326B (zh) | 2017-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9743251B2 (en) | Adding location names using private frequent location data | |
CN102426594B (zh) | 对数据库进行操作的方法和系统 | |
US10127296B2 (en) | Cooperative naming for configuration items in a distributed configuration management database environment | |
CN107577420B (zh) | 文件处理方法和装置、服务器 | |
US11843510B2 (en) | Automatically inferring software-defined network policies from the observed workload in a computing environment | |
CN111290828A (zh) | 使用容器编排服务进行动态路由 | |
CN102082800A (zh) | 一种用户请求处理的方法和服务器 | |
CN108243079A (zh) | 一种基于vpc进行网络访问的方法与设备 | |
CN102194009A (zh) | 一种数据库托管方法和一种数据库托管平台系统 | |
CN111985906A (zh) | 一种远程办公系统、方法、装置及存储介质 | |
US20130227524A1 (en) | Method and apparatus for analyzing application program by analysis of source code | |
CN107193834A (zh) | 用于浏览页面的计算设备、装置及方法 | |
CN111047434B (zh) | 一种操作记录生成方法、装置、计算机设备和存储介质 | |
CN105719414A (zh) | Pos终端的开票方法及装置、以及开票服务器端 | |
CN103927252A (zh) | 一种跨组件日志记录方法、装置及系统 | |
CN103023704B (zh) | 虚拟网络服务设备接入方法及系统 | |
US10185613B2 (en) | Error determination from logs | |
CN104219280A (zh) | 一种智能应用数据传输通道 | |
CN106302667A (zh) | 代码管理系统及方法 | |
US20180157651A1 (en) | Auditing Lineage of Consumer Data Through Multiple Phases of Transformation | |
CN103927326A (zh) | 数据库数据双向协同方法及系统 | |
CN105653566B (zh) | 一种实现数据库写访问的方法及装置 | |
US10528625B2 (en) | Client cloud synchronizer | |
CN104834724B (zh) | 一种数据库同步方法和装置 | |
CN105760283A (zh) | 一种日志输出方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |