一种数据库同步的方法和装置的制造方法

文档序号:8487864阅读:403来源:国知局
一种数据库同步的方法和装置的制造方法
【技术领域】
[0001]本发明实施例涉及数据库技术领域,尤其涉及一种数据库同步的方法和装置。
【背景技术】
[0002]电子商务日益深入人心,实时交易系统的数据量也与日俱增,然而单一数据库的处理能力有限,因此需要基于源数据库,按照业务或功能建立多个目标数据库,从而降低对源数据库的访问压力。当源数据库中的某个数据表发生变化时,需要保证关注该数据表的目标数据库中的该数据表与源数据库中的该数据表发生一致的变化,因此需要一个同步装置来实现目标数据库与源数据库之间数据的同步。
[0003]现有技术中实现目标数据库与源数据库之间数据同步的方法为:设立一独立服务器,同时连接源数据库和目标数据库;通过该独立服务器实时获取源数据库产生的数据变更事件;并将其转化为标准结构化查询语句(Structured Query Language,简称SQL),并传输至目标数据库。
[0004]但是现有技术中目标数据库经常会有多个,当上述方案通过一个独立服务器连接多个目标数据库时,由于目标数据库会经常发生变化,如新增或修改目标数据库等,此时,在上述方案中需要重启该独立服务器,进而导致其他目标数据库同步数据的进程受影响。
[0005]综上所述,亟需一种数据库同步的方法和装置,用于实现多个目标数据库与源数据之间的数据同步,且当某个目标数据库发生变化时,其它目标数据库的数据同步进程不会受影响。

【发明内容】

[0006]本发明实施例提供一种数据库同步的方法和装置,用于实现多个目标数据库与源数据之间的数据同步,且当某个目标数据库发生变化时,其它目标数据库的数据同步进程不会受影响。
[0007]本发明实施例提供一种数据库同步的方法,包括以下步骤:
[0008]源端服务器实时捕获源数据库产生的数据变更事件;其中,每条数据变更事件对应一个全局标识号;
[0009]源端服务器接收目标端服务器发送的请求消息;其中,请求消息中携带目标端服务器对应连接的目标数据库已同步的数据变更事件的第一全局标识号;目标端服务器配置有目标数据库的配置参数;
[0010]源端服务器根据第一全局标识号,将第一全局标识号之后的数据变更事件携带于响应消息中,并将响应消息发送给目标端服务器,以使目标端服务器对目标数据库执行同步操作。
[0011]本发明实施例提供一种数据库同步的装置,包括源端服务器,与源端服务器连接的目标端服务器,源端服务器,包括:
[0012]第一处理单元,用于实时捕获源数据库产生的数据变更事件;其中,每条数据变更事件对应一个全局标识号;
[0013]接收单元,用于接收目标端服务器发送的请求消息;其中,请求消息中携带目标端服务器对应连接的目标数据库已同步的数据变更事件的第一全局标识号;目标端服务器配置有目标数据库的配置参数;
[0014]第二处理单元,用于根据第一全局标识号,将第一全局标识号之后的数据变更事件携带于响应消息中;
[0015]发送单元,用于将响应消息发送给目标端服务器,以使目标端服务器对目标数据库执行同步操作。
[0016]本发明实施例中,源端服务器实时捕获源数据库产生的数据变更事件;源端服务器接收目标端服务器发送的请求消息,并根据请求消息将已同步的数据变更事件的第一全局标识号之后的数据变更事件携带于响应消息中发送给目标端服务器,以使目标端服务器对目标数据库执行同步操作;其中,目标端服务器配置有目标数据库的配置参数。
[0017]进一步由于目标端服务器连接目标数据库,且目标端服务器配置有目标数据库的配置参数,因此,当某个目标数据库发生变动,如新增一个目标数据库时,仅需要修改该新增的目标数据库对应连接的目标端服务器中的配置参数,并重启该目标端服务器即可,因此,其它未进行参数配置修改的目标端服务器不需重启,进而与该未进行参数配置修改的目标端服务器连接的目标数据库的数据同步过程也不会中断,从而实现多个目标数据库与源数据库之间的数据同步,且当某个目标数据库发生变化时,其它目标数据库的数据同步过程不受影响。
【附图说明】
[0018]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0019]图1为本发明实施例适用的系统架构示意图;
[0020]图2为本发明实施例提供的一种数据库同步的方法流程示意图;
[0021]图3为本发明实施例还提供一种数据库同步的装置的结构示意图。
【具体实施方式】
[0022]为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0023]如图1所示,本发明实施例适用的系统架构示意图。该系统架构中可包括多个源数据库101、源端服务器102、多个目标端服务器103、多个目标数据库104,图1中仅示意性示出了一种系统结构示意图,较佳的,本发明实施例中的源端服务器102也可为多个,用于减轻该源端服务器102所承受的负荷。
[0024]本发明实施例中源端服务器可连接一个源数据库,也可连接多个源数据库,源端服务器可连接一个目标端服务器,也可连接多个目标端服务器,每个目标端服务器可连接多个目标数据库,也可每个目标端服务器仅连接一个目标数据库。
[0025]本发明实施例用于实现源数据库101与目标数据库104之间的数据同步。
[0026]基于图1所示的系统架构,图2示出了本发明实施例提供的一种数据库同步的方法,包括以下步骤:
[0027]步骤201,源端服务器实时捕获源数据库产生的数据变更事件。
[0028]其中,每条数据变更事件对应一个全局标识号。
[0029]方式一:源端中继服务器无需连接源数据库,实时获取的源数据库保存的归档日志文件,解析该归档日志文件,从而间接获取源数据库产生的数据变更事件。如老版本的DB2和Oracle数据库。
[0030]方式二:源端中继服务器直接连接源数据库,实时获取源数据库产生的数据变更事件。如新数据库MySqlUl.2以上版本的Oracle数据库。
[0031]具体来说,源数据库中产生一条数据库变更记录,即该源数据库产生的数据变更事件。每条数据变更事件唯一对应一个全局标识号。
[0032]步骤202,源端服务器接收目标端服务器发送的请求消息。
[0033]其中,请求消息中携带目标端服务器对应连接的目标数据库已同步的数据变更事件的第一全局标识号;目标端服务器配置有目标数据库的配置参数。
[0034]具体来说,本发明实施例中的第一全局标识号即指目标端服务器对应连接的目标数据库已同步的日期最新的数据变更事件的全局标识号,举个例子,假设当前目标数据库的某个数据表已同步的全局标识号为0000至0015,则可见0015为已同步的数据变更事件中日期最新的数据变更事件的全局标识号,因此,0015即为该为该数据表对应的第一全局标识号。本发明实施例中为了后续引用方便,在此引入第一全局标识号概念,该概念不对本发明实施例具有限定作用。
[0035]步骤203,源端服务器根据第一全局标识号,将第一全局标识号之后的数据变更事件携带于响应消息中,并将响应消息发送给目标端服务器,以使目标端服务器对目标数据库执行同步操作。
[0036]较佳的,所述目标端服务器对所述目标数据库执行同步操作,具体包括:
[0037]所述目标端服务器根据对应连接的目标数据库的类型,将所述第一全局标识号之后的数据变更事件转换为所述目标数据库的操作语言所对应格式的数据变更事件,并对所述目标数据库执行同步操作。
[0038]又由于源端服务器实时捕获数据变更事件,并将其发送给目标端服务器,且目标端服务器根据目标数据库的类型,将第一全局标识号之后的数据变更事件转换为目标数据库的操作语言所对应格式的数据变更事件,并对目标数据库执行同步操作,因此,目标数据库与源数据库结构或类型不一致时,如源数据库为关系型数据库,目标数据库为非关系型数据库时,目标端服务器可根据目标数据库的类型对数据变更事件进行转换,从而实现了源数据库与目标数据库的同步,进而实现了源数据库与目标数据库结构类型不同时的数据同步。
[0039]具体实施中,源数据库连接源端服务器,源端服务器连接目标端服务器,目标端服务器连接目标数据库。当多个源数据库连接至一个源
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1