CN106055723B - 一种数据库数据同步装置、***及方法 - Google Patents
一种数据库数据同步装置、***及方法 Download PDFInfo
- Publication number
- CN106055723B CN106055723B CN201610682614.1A CN201610682614A CN106055723B CN 106055723 B CN106055723 B CN 106055723B CN 201610682614 A CN201610682614 A CN 201610682614A CN 106055723 B CN106055723 B CN 106055723B
- Authority
- CN
- China
- Prior art keywords
- sent
- informational content
- real time
- message queue
- data variation
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000005540 biological transmission Effects 0.000 claims abstract description 67
- 230000008859 change Effects 0.000 claims description 25
- 238000012163 sequencing technique Methods 0.000 claims description 12
- 230000001360 synchronised effect Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 7
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
本发明提供了一种数据库数据同步装置、***及方法,该装置包括:触发器、第一消息队列、第一同步单元,传输单元以及第二同步单元;触发器,用于实时捕获源数据库的数据变化信息,并实时发送数据变化信息至第一消息队列;第一消息队列,用于存储触发器发送的数据变化信息;第一同步单元,用于实时从第一消息队列中获取数据变化信息,以及利用数据变化信息获取源数据库中对应的完整信息内容,并实时发送完整信息内容至传输单元;传输单元,用于实时接收第一同步单元发送的完整信息内容,并实时发送完整信息内容至第二同步单元;第二同步单元,用于实时接收传输单元发送的完整信息内容,实时同步更新完整信息内容至目标数据库,具有更高的实时性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种数据库数据同步装置、***及方法。
背景技术
目前,随着信息技术的飞速发展,企业信息化建设的不断深入,企业业务***的数量也在不断增加。随之产生,各业务***之间数据同步,各子业务***与核心业务***之间数据同步。因此,诸如上述场景中各数据库之间的数据同步需求不断出现。Oracle数据库***作为目前世界上流行的关系数据库管理***,使用方便、功能强,适用于各类大、中、小、微机环境。
Oracle数据库数据同步现有方式是利用Oracle数据库的联机重做日志,这个日志记录着数据库所做的修改。在归档模式下,当发生日志切换的时候,被切换的日志会进行归档,此时这个日志将数据同步到目标数据库中,该方式要求源数据库必须在归档模式下运行,并且数据同步实时性不高。
发明内容
本发明实施例提供了一种数据库数据同步装置、***及方法,具有更高的数据同步实时性。
第一方面,本发明一个实施例提供了一种数据库数据同步装置,该装置包括:触发器、第一消息队列、第一同步单元,传输单元以及第二同步单元,其中,
所述触发器、所述第一消息队列以及所述第一同步单元位于源数据库侧;
所述第二同步单元位于目标数据库侧;
所述触发器,用于实时捕获所述源数据库的数据变化信息,并实时发送所述数据变化信息至所述第一消息队列;
所述第一消息队列,用于存储所述触发器发送的所述数据变化信息;
所述第一同步单元,用于实时从所述第一消息队列中获取所述数据变化信息,以及利用所述数据变化信息获取所述源数据库中对应的完整信息内容,并实时发送所述完整信息内容至传输单元;
所述传输单元,用于实时接收所述第一同步单元发送的所述完整信息内容,并实时发送所述完整信息内容至所述第二同步单元;
所述第二同步单元,用于实时接收所述传输单元发送的所述完整信息内容,并实时同步更新所述完整信息内容至目标数据库。
优选地,所述传输单元包括:第二消息队列、第三消息队列、消息发送服务单元、消息接收服务单元,其中,
所述第二消息队列和所述消息发送服务单元位于源数据库侧;
所述第三消息队列和所述消息接收服务单元位于目标数据库侧;
所述第一同步单元,用于实时将所述完整信息内容发送至所述第二消息队列中;
所述第二消息队列,用于存储所述第一同步单元发送的所述完整信息内容;
所述消息发送服务单元,用于实时从所述第二消息队列中获取所述完整信息内容,并实时发送给所述消息接收服务单元;
所述消息接收服务单元,用于接收所述消息发送服务单元发送的所述完整信息内容,并实时发送所述完整信息内容至所述第三消息队列;
所述第三消息队列,用于存储所述消息接收服务单元发送的所述完整信息内容。
优选地,所述触发器,根据实时捕获的所述源数据库的所述数据变化信息的先后顺序,按照先捕获先发送的顺序发送所述数据变化信息至所述第一消息队列;
所述第一消息队列,根据所述触发器发送的所述数据变化信息的先后顺序,按照先发送先储存的顺序储存所述触发器发送的所述数据变化信息;
所述第一同步单元,根据所述第一消息列队的所述数据变化信息储存的先后顺序,按照先储存先获取的顺序从所述第一消息列队获取所述数据变化信息,并利用所述数据变化信息获取所述源数据库中对应的完整信息内容,并实时发送所述完整信息至传输单元。
优选地,所述第一同步单元,获取所述第一消息列队的所述数据变化信息,利用所述数据变化信息以ROWID为查询条件获取所述数据变化信息对应的完整信息内容,并以数据格式发送给所述第二消息队列。
第二方面,本发明另一个实施例还提供了一种数据库数据同步***,该***包括:上述任一所述的数据库数据同步装置、源数据库和目标数据库。
第三方面,本发明又一个实施例还提供了一种利用上述任一所述的数据库数据同步装置进行数据库数据同步的方法,在源数据库中建立触发器,包括:
所述触发器实时捕获所述源数据库中的数据变化信息,并实时发送所述数据变化信息至第一消息队列;
所述第一消息队列实时存储所述触发器发送的所述数据变化信息;
所述第一同步单元实时从所述第一消息列队获取所述数据变化信息,利用所述数据变化信息获取所述源数据库中对应的完整信息内容,并实时发送所述完整信息内容至传输单元;
所述传输单元实时接收所述第一同步单元发送的所述完整信息内容,并实时发送所述完整信息内容至第二同步单元;
所述第二同步单元实时接收所述传输单元发送的所述完整信息内容,并实时同步更新所述完整信息内容至目标数据库。
优选地,所述并实时发送所述完整信息内容至传输单元,及所述的所述传输单元实时接收所述第一同步单元发送的所述完整信息内容,并实时发送所述完整信息内容至第二同步单元,包括:
实时发送所述完整信息内容至第二消息队列;
所述第二消息队列存储所述第一同步单元发送的所述完整信息内容;
消息发送服务单元,实时从所述第二消息队列中获取所述完整信息内容,并实时发送给消息接收服务单元;
所述消息接收服务单元接收所述消息发送服务单元发送的所述完整信息内容,并实时发送所述完整信息内容至第三消息队列;
所述第三消息队列存储所述消息接收服务单元发送的所述完整信息内容。
优选地,所述触发器实时捕获所述源数据库中的数据变化信息,并实时发送所述数据变化信息至第一消息队列,包括:
所述触发器实时捕获所述源数据库中的数据变化信息,并按照先捕获先发送的顺序发送所述数据变化信息至所述第一消息队列。
优选地,所述的所述第一同步单元实时获取所述第一消息列队的所述数据变化信息,利用所述数据变化信息获取所述源数据库中对应的完整信息内容,并实时发送所述完整信息内容至传输单元,包括;
所述第一同步单元,根据获取所述第一消息列队的所述数据变化信息的先后顺序,按照获取所述数据变化信息的先后顺序利用所述数据变化信息获取所述源数据库中对应的完整信息内容,并通过数据格式以先获取先发送的顺序发送至传输单元。
优选地,所述的所述第一同步单元实时获取所述第一消息列队的所述数据变化信息,利用所述数据变化信息获取所述源数据库中对应的完整信息内容,并实时发送所述完整信息内容至传输单元,包括:
所述第一同步单元实时获取所述第一消息列队的所述数据变化信息,利用所述数据变化信息以ROWID为查询条件获取所述数据变化信息对应的完整信息内容,并实时以数据格式发送给传输单元。
本发明实施例提供了一种数据库数据同步装置、***及方法,通过在源数据库中建立触发器捕获数据变化信息,并实时发送数据变化信息至第一消息队列,第一消息列队实时存储送数据变化信息,第一同步单元实时获取第一消息列队实时存储的送数据变化信息,并通过数据变化信息获取与数据变化信息对应的完整信息内容,然后将完整信息内容发送给传输单元,通过传输单元将完整信息内容发送至目标数据库的第二同步单元,目标数据库的第二同步单元接收传输单元发送的完整信息内容并实时同步更新完整信息内容至目标数据库。本方案实现了源数据库数据发送变化就会实时同步至目标数据库,相对于现有技术中要求源数据库必须在归档模式下运行,大大提高了数据同步的实时性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种数据库数据同步装置的结构示意图;
图2是本发明一个实施例提供的另一种数据库数据同步装置的结构示意图;
图3是本发明一个实施例提供的一个表中数据发生变化的过程;
图4是本发明一个实施例提供的另一个表中数据发生变化的过程;
图5是本发明一个实施例提供的一种数据库数据同步***的结构示意图;
图6是本发明一个实施例提供的一种数据库数据同步方法的流程图;
图7是本发明一个实施例提供的另一种数据库数据同步方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种数据库数据同步装置,该装置可以包括:
触发器101、第一消息队列102、第一同步单元103,传输单元104以及第二同步单元105,其中,
所述触发器101、所述第一消息队列102以及所述第一同步单元103位于源数据库侧;
所述第二同步单元105位于目标数据库侧;
所述触发器101,用于实时捕获所述源数据库的数据变化信息,并实时发送所述数据变化信息至所述第一消息队列102;
所述第一消息队列102,用于存储所述触发器101发送的所述数据变化信息;
所述第一同步单元103,用于实时从所述第一消息队列102中获取所述数据变化信息,以及利用所述数据变化信息获取所述源数据库中对应的完整信息内容,并实时发送所述完整信息内容至传输单元104;
所述传输单元104,用于实时接收所述第一同步单元103发送的所述完整信息内容,并实时发送所述完整信息内容至所述第二同步单元105;
所述第二同步单元105,用于实时接收所述传输单元104发送的所述完整信息内容,并实时同步更新所述完整信息内容至目标数据库。
在图1所示的实施例中,通过在源数据库中建立触发器捕获数据变化信息,并实时发送数据变化信息至第一消息队列,第一消息列队实时存储送数据变化信息,第一同步单元实时获取第一消息列队实时存储的送数据变化信息,并通过数据变化信息获取与数据变化信息对应的完整信息内容,然后将完整信息内容发送给传输单元,通过传输单元将完整信息内容发送至目标数据库的第二同步单元,目标数据库的第二同步单元接收传输单元发送的完整信息内容并实时同步更新完整信息内容至目标数据库。本方案实现了源数据库数据发送变化就会实时同步至目标数据库,相对于现有技术中要求源数据库必须在归档模式下运行,大大提高了数据同步的实时性。
如图2所示,本发明一个实施例中,传输单元104包括:第二消息队列201、第三消息队列202、消息发送服务单元203、消息接收服务单元204,其中,
所述第二消息队列201和所述消息发送服务单元203位于源数据库侧;
所述第三消息队列202和所述消息接收服务单元204位于目标数据库侧;
所述第一同步单元103,用于实时将所述完整信息内容发送至所述第二消息队列201中;
所述第二消息队列201,用于存储所述第一同步单元103发送的所述完整信息内容;
所述消息发送服务单元203,用于实时从所述第二消息队列201中获取所述完整信息内容,并实时发送给所述消息接收服务204单元;
所述消息接收服务单元204,用于接收所述消息发送服务单元203发送的所述完整信息内容,并实时发送所述完整信息内容至所述第三消息队列202;
所述第三消息队列202,用于存储所述消息接收服务单元发送的所述完整信息内容。
在该实施例中,为了能够实现大量数据的实时同步,传输单元必须要满足可以携带大量数据并且满足实时快速同步。于是可以使用信息队列,为了能够最好的实现传输效果,可以使用浪潮高性能消息队列IMQ,也可以使用其它高性能消息队列。于是,本实施例以浪潮高性能消息队列IMQ为例进行说明。因此,本实施例中,第二消息队列201、第三消息队列202均为浪潮高性能消息队列IMQ。不仅实现了大量数据的实时同步,并且还避免了数据在传输时丢失,造成的完整性缺失。
在本发明一个实施例中,为了保证目标数据库更新的内容与源数据库的改变的内容一致,于是目标数据库更新数据的先后顺序应该和源数据库数据改变的先后顺序保持一致。于是,在本实施例中,触发器根据实时捕获的源数据库的数据变化信息的先后顺序,按照先捕获先发送的顺序发送所述数据变化信息至第一消息队列;所述第一消息队列,根据所述触发器发送的所述数据变化信息的先后顺序,按照先发送先储存的顺序储存所述触发器发送的所述数据变化信息;第一同步单元,根据所述第一消息列队的所述数据变化信息储存的先后顺序,按照先储存先获取的顺序从所述第一消息列队获取所述数据变化信息,并利用所述数据变化信息获取所述源数据库中对应的完整信息内容,并实时发送所述完整信息至传输单元。
例如,在源数据库的成绩表中,先将当前第一列的数据都加1,再将当前第一列和当前第二列交换位置,变化过程参考图3。而对目标数据库更新时,按照先将第一列和第二列交换位置,在此基础上将当前第一列的数据都加1,变化过程参考图4。从图3和图4的显示的结果可以明显发现目标数据库更新的是错误的数据。因此必须按照源数据库数据发生变化的顺序对目标数据库的数据进行更新。
在本发明一个实施例中,为了保证数据同步实时性,通过源数据库数据变化信息必须要快速获得源数据库产生变化的内容。因此,第一同步单元获取第一消息列队的数据变化信息,利用所述数据变化信息以ROWID为查询条件获取所述数据变化信息对应的完整信息内容,并以数据格式发送给所述第二消息队列。
值得说明的是,ROWID是数据库中唯一标志记录物理位置的一个地址。通常来说,一个ROWID值唯一标识数据中的一行。因此在第一同步单元获取数据变化信息后,可以利用所述数据变化信息以ROWID为查询条件以数据库所能提供的最快方式获取所述数据变化信息对应的完整信息内容。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
如图5所示,本发明实施例提供了一种数据库数据同步***,该***可以包括:上述实施例任一所述数据库数据同步装置500、源数据库501和目标数据库502。
如图6所示,本发明实施例提供了一种数据库数据同步方法,该方法利用了上述任一所述的数据库数据同步装置,可以包括以下步骤:
步骤601:源数据库中建立触发器。
步骤602:所述触发器实时捕获所述源数据库中的数据变化信息,并实时发送所述数据变化信息至第一消息队列。
步骤603:所述第一消息队列实时存储所述触发器发送的所述数据变化信息。
步骤604:所述第一同步单元实时从所述第一消息列队获取所述数据变化信息,利用所述数据变化信息获取所述源数据库中对应的完整信息内容,并实时发送所述完整信息内容至传输单元。
步骤605:所述传输单元实时接收所述第一同步单元发送的所述完整信息内容,并实时发送所述完整信息内容至第二同步单元。
步骤606:所述第二同步单元实时接收所述传输单元发送的所述完整信息内容,并实时同步更新所述完整信息内容至目标数据库。
在本发明一个实施例中,为了能够实现大量数据的实时同步,步骤604包括:
所述第二同步单元实时接收所述传输单元发送的所述完整信息内容,并实时发送所述完整信息内容至第二消息队列;
所述第二消息队列存储所述第一同步单元发送的所述完整信息内容;
消息发送服务单元,实时从所述第二消息队列中获取所述完整信息内容,并实时发送给消息接收服务单元;
步骤605包括:
所述消息接收服务单元接收所述消息发送服务单元发送的所述完整信息内容,并实时发送所述完整信息内容至第三消息队列;
所述第三消息队列存储所述消息接收服务单元发送的所述完整信息内容。
下面以Oracle数据库数据同步为例,对本发明实施例的数据库数据同步方法进行详细说明。
如图7所示,本发明一个实施例提供了一种Oracle数据库数据同步方法,该方法可以包括以下步骤:
步骤701:源Oracle数据库中建立触发器,并捕获数据变化信息。
在本实施例中,针对不同的表,有的表需要进行同步而有的表则不需要进行同步,因此,在源Oracle数据库需要同步的表中建立增删改触发器,增删改触发器实时捕获源中变化记录的表名、ROWID、变化类型等数据变化信息。
步骤702:所述触发器实时按照先捕获先发送的顺序将所述数据变化信息发送至源Oracle数据库第一消息列队。
在本实施例中,事物的改变顺序对事物产生的结果具有很大的影响。对于产生影响的过程上述实施例中已经举例说明,在此本实施例不作赘述。
步骤703:所述第一消息队列实时存储所述触发器发送的所述数据变化信息。
在本实施中,第一消息队列的储存顺序由触发器的的发送顺序决定,按照触发器先发送第一消息列队先储存的顺序进行储存。
步骤704:源Oracle数据库第一同步单元实时从所述第一消息列队获取所述数据变化信息,利用所述数据变化信息获取所述源数据库中对应的完整信息内容。
在本实施例中,第一同步单元从第一消息列队获取数据变化的信息顺序,按照在第一消息列队先储存第一同步单元先获取的顺序进行获取数据变化的信息。由于触发器捕获的只是源Oracle数据库需要同步的表中表名、ROWID、变化类型等数据变化信息,并非是源Oracle数据库中变化信息内容。因此,需要利用该信息以ROWID为查询条件以Oracle所能提供的最快方式获取到变化记录的完整内容。
步骤705:所述第一同步单元实时发送所述完整信息内容至源Oracle数据库第二消息队列。
在本实施例中,完整信息内容可以以各种格式进行传输。为了方便快捷,采用JSON或XML进行数据传输。
步骤706:所述第二消息队列存储所述第一同步单元发送的所述完整信息内容。
在本实施例中,完整信息内容以JSON或XML存入第二消息列队。
步骤707:源Oracle数据库消息发送服务单元实时从所述第二消息队列中获取所述完整信息内容,并实时发送给目标数据库消息接收服务单元。
步骤708:所述消息接收服务单元接收所述消息发送服务单元发送的所述完整信息内容,并实时发送所述完整信息内容至目标Oracle数据库第三消息队列。
步骤709:所述第三消息队列存储所述消息接收服务单元发送的所述完整信息内容。
本实施例中,为了满足大数据的传输,以及数据传输过程中的安全性,于是传输单元采用高性能信息队列,并在高性能信息队列之间通过消息发送服务单和消息接收服务单元的连接,实现数据在信息列队之间的快速传输。并且同时解决了源Oracle数据库和目标Oracle数据库分处异地的问题。
步骤710:所述第二同步单元实时获取所述第三消息队列存储的所述完整信息内容,并实时同步更新所述完整信息内容至目标Oracle数据库。
在本实施例中,不要求源Oracle数据库必须在归档模式运行,不会对源数据库产生新的***、更新、删除操作,对源数据库的影响很小,适用范围广,同步快速,实时性强。
根据上述方案,本发明的各实施例,至少具有如下有益效果:
1、在本发明实施例中,通过在源数据库中建立触发器捕获数据变化信息,并实时发送数据变化信息至第一消息队列,第一消息列队实时存储送数据变化信息,第一同步单元实时获取第一消息列队实时存储的送数据变化信息,并通过数据变化信息获取与数据变化信息对应的完整信息内容,然后将完整信息内容发送给传输单元,通过传输单元将完整信息内容发送至目标数据库的第二同步单元,目标数据库的第二同步单元接收传输单元发送的完整信息内容并实时同步更新完整信息内容至目标数据库。本方案实现了源数据库数据发送变化就会实时同步至目标数据库,相对于现有技术中要求源数据库必须在归档模式下运行,大大提高了数据同步的实时性。
2、本本发明实施例中,通过按照源数据库发生变化的顺序,触发器对变化信息进行捕获,并按照变化的顺序存储到第一消息队列中。然后第一同步单元按照第一消息列队存储变化信息的顺序进行获取,并利用获取的变化信息从源数据库中获取完整的信息内容。这样保证了第一同步模块获取的完整信息内容就是所发生变化的内容,而不会获取错误的信息内容。
3、在本发明实施例中,该方法不要求源数据库必须在归档模式运行,不会对源数据库产生新的***、更新、删除操作,对源数据库的影响很小,适用范围广,同步快速,实时性强。
4、在本发明实施例中,利用传输单元将源数据库需要更新的数据传输至目标数据库。该方法有效解决了源数据库和目标数据库分处异地的问题,且可以实时更新分处异地的数据库。
5、目前数据库数据同步利用Oracle触发器将数据变化的所有内容***到另外的表中,数据同步完成后还要将另外表中的记录删除,该方式对源数据影响较大,并且数据同步效率低,适用范围受限。而本发明则不需要就将数据变化的内容进行任何处理,直接传输到第二同步单元对目标数据库进行同步更新,有效解决了上述问题。
6、通过使用浪潮高性能消息队列IMQ或者其它高性能消息队列,既能满足更新数据量大的要求,又能保证数据内容在传输工程中的安全性和稳定性。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种数据库数据同步装置,其特征在于,包括:触发器、第一消息队列、第一同步单元,传输单元以及第二同步单元,其中,
所述触发器、所述第一消息队列以及所述第一同步单元位于源数据库侧;
所述第二同步单元位于目标数据库侧;
所述触发器,用于实时捕获所述源数据库的数据变化信息,并实时发送所述数据变化信息至所述第一消息队列;
所述第一消息队列,用于存储所述触发器发送的所述数据变化信息;
所述第一同步单元,用于实时从所述第一消息队列中获取所述数据变化信息,以及利用所述数据变化信息获取所述源数据库中对应的完整信息内容,并实时发送所述完整信息内容至传输单元;
所述传输单元,用于实时接收所述第一同步单元发送的所述完整信息内容,并实时发送所述完整信息内容至所述第二同步单元;
所述第二同步单元,用于实时接收所述传输单元发送的所述完整信息内容,并实时同步更新所述完整信息内容至目标数据库。
2.根据权利要求1所述的装置,其特征在于,所述传输单元包括:第二消息队列、第三消息队列、消息发送服务单元、消息接收服务单元,其中,
所述第二消息队列和所述消息发送服务单元位于源数据库侧;
所述第三消息队列和所述消息接收服务单元位于目标数据库侧;
所述第一同步单元,用于实时将所述完整信息内容发送至所述第二消息队列中;
所述第二消息队列,用于存储所述第一同步单元发送的所述完整信息内容;
所述消息发送服务单元,用于实时从所述第二消息队列中获取所述完整信息内容,并实时发送给所述消息接收服务单元;
所述消息接收服务单元,用于接收所述消息发送服务单元发送的所述完整信息内容,并实时发送所述完整信息内容至所述第三消息队列;
所述第三消息队列,用于存储所述消息接收服务单元发送的所述完整信息内容。
3.根据权利要求1所述的装置,其特征在于,
所述触发器,根据实时捕获的所述源数据库的所述数据变化信息的先后顺序,按照先捕获先发送的顺序发送所述数据变化信息至所述第一消息队列;
所述第一消息队列,根据所述触发器发送的所述数据变化信息的先后顺序,按照先发送先储存的顺序储存所述触发器发送的所述数据变化信息;
所述第一同步单元,根据所述第一消息队列的所述数据变化信息储存的先后顺序,按照先储存先获取的顺序从所述第一消息队列获取所述数据变化信息,并利用所述数据变化信息获取所述源数据库中对应的完整信息内容,并实时发送所述完整信息至传输单元。
4.根据权利要求1或3任一所述的装置,其特征在于,
所述第一同步单元,获取所述第一消息队列的所述数据变化信息,利用所述数据变化信息以ROWID为查询条件获取所述数据变化信息对应的完整信息内容,并以数据格式发送给第二消息队列。
5.一种数据库数据同步***,其特征在于,包括:权利要求1至4任一所述的数据库数据同步装置、源数据库和目标数据库。
6.一种利用权利要求1至4任一所述的数据库数据同步装置进行数据库数据同步的方法,其特征在于,在源数据库中建立触发器,包括:
所述触发器实时捕获所述源数据库中的数据变化信息,并实时发送所述数据变化信息至第一消息队列;
所述第一消息队列实时存储所述触发器发送的所述数据变化信息;
第一同步单元实时从所述第一消息队列获取所述数据变化信息,利用所述数据变化信息获取所述源数据库中对应的完整信息内容,并实时发送所述完整信息内容至传输单元;
所述传输单元实时接收所述第一同步单元发送的所述完整信息内容,并实时发送所述完整信息内容至第二同步单元;
所述第二同步单元实时接收所述传输单元发送的所述完整信息内容,并实时同步更新所述完整信息内容至目标数据库。
7.根据权利要求6所述的方法,其特征在于,所述并实时发送所述完整信息内容至传输单元,及所述的所述传输单元实时接收所述第一同步单元发送的所述完整信息内容,并实时发送所述完整信息内容至第二同步单元,包括:
实时发送所述完整信息内容至第二消息队列;
所述第二消息队列存储所述第一同步单元发送的所述完整信息内容;
消息发送服务单元,实时从所述第二消息队列中获取所述完整信息内容,并实时发送给消息接收服务单元;
所述消息接收服务单元接收所述消息发送服务单元发送的所述完整信息内容,并实时发送所述完整信息内容至第三消息队列;
所述第三消息队列存储所述消息接收服务单元发送的所述完整信息内容。
8.根据权利要求6所述的方法,其特征在于,所述触发器实时捕获所述源数据库中的数据变化信息,并实时发送所述数据变化信息至第一消息队列,包括:
所述触发器实时捕获所述源数据库中的数据变化信息,并按照先捕获先发送的顺序发送所述数据变化信息至所述第一消息队列。
9.根据权利要求8所述的方法,其特征在于,
所述的所述第一同步单元实时获取所述第一消息队列的所述数据变化信息,利用所述数据变化信息获取所述源数据库中对应的完整信息内容,并实时发送所述完整信息内容至传输单元,包括;
所述第一同步单元,根据获取所述第一消息队列的所述数据变化信息的先后顺序,按照获取所述数据变化信息的先后顺序利用所述数据变化信息获取所述源数据库中对应的完整信息内容,并通过数据格式以先获取先发送的顺序发送至传输单元。
10.根据权利要求6-9任一所述的方法,其特征在于,所述的所述第一同步单元实时获取所述第一消息队列的所述数据变化信息,利用所述数据变化信息获取所述源数据库中对应的完整信息内容,并实时发送所述完整信息内容至传输单元,包括:
所述第一同步单元实时获取所述第一消息队列的所述数据变化信息,利用所述数据变化信息以ROWID为查询条件获取所述数据变化信息对应的完整信息内容,并实时以数据格式发送给传输单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610682614.1A CN106055723B (zh) | 2016-08-17 | 2016-08-17 | 一种数据库数据同步装置、***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610682614.1A CN106055723B (zh) | 2016-08-17 | 2016-08-17 | 一种数据库数据同步装置、***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106055723A CN106055723A (zh) | 2016-10-26 |
CN106055723B true CN106055723B (zh) | 2019-08-02 |
Family
ID=57195077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610682614.1A Active CN106055723B (zh) | 2016-08-17 | 2016-08-17 | 一种数据库数据同步装置、***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106055723B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107995242A (zh) * | 2016-10-27 | 2018-05-04 | 北京京东尚科信息技术有限公司 | 一种业务处理方法及*** |
CN107391339A (zh) * | 2017-07-20 | 2017-11-24 | 浪潮软件股份有限公司 | 一种基于imq消息队列的监控处理方法 |
CN107729366B (zh) * | 2017-09-08 | 2021-01-05 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步*** |
CN108228733A (zh) * | 2017-12-12 | 2018-06-29 | 浪潮软件股份有限公司 | 一种文件同步***及方法 |
CN109033391B (zh) * | 2018-07-31 | 2019-12-31 | 北京嘀嘀无限科技发展有限公司 | 一种多数据中心之间数据同步方法、***及计算机可读存储介质 |
CN109241180B (zh) * | 2018-08-01 | 2021-06-04 | 福建天泉教育科技有限公司 | 一种基于日志的数据同步的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923566A (zh) * | 2010-06-24 | 2010-12-22 | 浙江协同数据***有限公司 | 一种基于触发器的数据增量抽取方法 |
CN103678718A (zh) * | 2013-12-31 | 2014-03-26 | 金蝶软件(中国)有限公司 | 数据库同步方法及*** |
CN104572672A (zh) * | 2013-10-15 | 2015-04-29 | 北大方正集团有限公司 | 异构数据库的同步方法和应用*** |
CN105095364A (zh) * | 2015-06-26 | 2015-11-25 | 车智互联(北京)科技有限公司 | 一种数据同步***和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6820088B1 (en) * | 2000-04-10 | 2004-11-16 | Research In Motion Limited | System and method for synchronizing data records between multiple databases |
-
2016
- 2016-08-17 CN CN201610682614.1A patent/CN106055723B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923566A (zh) * | 2010-06-24 | 2010-12-22 | 浙江协同数据***有限公司 | 一种基于触发器的数据增量抽取方法 |
CN104572672A (zh) * | 2013-10-15 | 2015-04-29 | 北大方正集团有限公司 | 异构数据库的同步方法和应用*** |
CN103678718A (zh) * | 2013-12-31 | 2014-03-26 | 金蝶软件(中国)有限公司 | 数据库同步方法及*** |
CN105095364A (zh) * | 2015-06-26 | 2015-11-25 | 车智互联(北京)科技有限公司 | 一种数据同步***和方法 |
Non-Patent Citations (1)
Title |
---|
基于Oracle数据库实时同步技术的;李旭,董争鸣;《信息安全与技术》;20140228;57-59 * |
Also Published As
Publication number | Publication date |
---|---|
CN106055723A (zh) | 2016-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106055723B (zh) | 一种数据库数据同步装置、***及方法 | |
CN101741911B (zh) | 基于多副本协同的写操作方法、***及节点 | |
CN105930121B (zh) | 多客户端的笔迹同步方法和*** | |
US9450902B2 (en) | Method and system for marking email threads | |
CN107729366A (zh) | 一种普适多源异构大规模数据同步*** | |
CN110209726A (zh) | 分布式数据库集群***、数据同步方法及存储介质 | |
CN105306585B (zh) | 一种多数据中心的数据同步方法 | |
CN104348859B (zh) | 文件同步方法、装置、服务器、终端及*** | |
CN109325072A (zh) | 一种基于CMSP实现跨网闸Oracle数据库同步的方法及装置 | |
CN109710584A (zh) | 一种利用云消息服务平台实现文件双向同步的方法及装置 | |
GB2575937A (en) | A method of establishing a video call using multiple mobile communications devices | |
CN104901983B (zh) | 一种信息同步方法、装置及*** | |
TW201737107A (zh) | 資料的同步方法和裝置 | |
CN110213156B (zh) | 一种跨中心群组即时通信方法和*** | |
WO2012012515A2 (en) | System and method for managing data on an occasionally connected mobile device | |
CN102946411A (zh) | 网络同步*** | |
CN110502572A (zh) | 一种数据同步的方法及服务器 | |
CN103491156A (zh) | 一种基于融合通信实现圈子与群组同步的方法及*** | |
CN105306273B (zh) | 流程配置方法及装置 | |
CN105721520B (zh) | 一种文件同步方法及装置 | |
CN104978313A (zh) | 数据库***的数据同步方法、装置及服务器 | |
CN111026813A (zh) | 一种基于MySQL的高可用准实时数据同步方法 | |
CN110162443A (zh) | 多批量流程监控方法、装置、计算机设备和存储介质 | |
CN104767589B (zh) | 一种信息发送方法及装置 | |
WO2016074572A1 (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 |