选择性的数据库复制制造技术

技术编号:7164069 阅读:205 留言:0更新日期:2012-04-11 18:40
一种用于选择性地从与主服务器相关联的主数据库向与副服务器相关联的副数据库复制数据的方法和系统。副服务器确定使用第一更新命令的复制任务已经修改了主数据库。副服务器确定主数据库中的主表已经被更新。副服务器生成耦合到主表的副联合表。副服务器基于第一更新命令从主数据库获得第二更新命令,并使用副联合表将第二更新命令应用于副数据库中的副表。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术大体上涉及复制数据库,特别涉及在集群(cluster)中操作的数据库的选择性复制。
技术介绍
计算机应用使用数据库来存储信息。数据库典型的包括软件功能的复杂集合,其通常被称为数据库管理系统(DBMQ,这使得用户能够定义并创建数据库,更新并查询该数据库,以及以其他方式维护该数据库。数据库提供安全性,并确保更新是极小的、持续的且一致的,但通常都是以复杂度为代价的。对于商业上的应用而言,雇用专任的数据库专家来维护商业数据库是很平常的事。应用提供者可能希望使用数据库来存储关键数据,例如配置数据,但是不希望需要客户来承受与维护复杂数据库软件相关联的额外支持费用,或者, 在一些情况中,甚至知道应用正在使用特定的DBMS。因此,应用提供者可能需要DBMS的好处,但是希望使他们的用户远离与DBMS相关联的复杂性。特定的应用被设计用来在网络上以分布式的方式协作运行。例如,电信系统可能包括集群中联网在一起的多个数据服务器。集群中的每个服务器与集群中的其它服务器通信。每个服务器可能具有相关联的数据库,其中维护着信息,例如配置信息。在数据库中维护的信息可以涉及单独服务器,例如主机名或网际协议(IP)地址,或者可以为网络上的每个服务器所共用,例如不论所述服务器是否实现简单网络管理协议(SNMP)。在分布式系统中,将一个服务器标识为主机(master)或主(primary)服务器,而将其余服务器指定为从服务器或副(secondary)服务器是很正常的。对主服务器的特定配置的改变可能需要对每个副服务器中都进行。理想地,每次对主服务器进行此类配置改变时,无需人类参与就能对副服务器进行适当的配置改变。今天虽然大多数现代DBMS具有一定的在分布式数据库中传播数据的能力,例如通过数据库复制来完成,但是实现和维护已复制的数据库依然需要大量的专业知识。此外,复制增加了重新存储已破坏的数据库或者将新的副数据库添加到集群的复杂度,复制不允许副数据库的选择性更新,并且需要每个数据库都来自于相同的 DBMS厂商。因此,需要一种机制,无需用户掌握大量的数据库专业知识,就能在分布式数据库中复制数据库信息,该机制是可靠的,并工作在多厂商的环境中,并基本上同时地实现在分布式网络上的选择性复制。
技术实现思路
本领域的技术人员将会了解本专利技术的范围,并在参照附图阅读下列优选实施例的详细描述后认识到到本专利技术的其它方面。本专利技术涉及从主数据库向一个或多个副数据库选择性地复制数据,例如配置数据。复制任务包括对与主服务器相关联的主数据库的更新,这需要在与副服务器相关联的一个或多个副数据库上进行复制。副服务器确定主数据库中的主表已经被第一更新命令所修改。该第一更新命令能够包括一个或多个数据库修改语句。副服务器确定基于第一更新命令的第二更新命令。副服务器生成该副服务器中的副联合表(federated table),其与主服务器中的主表耦合。副联合表允许使用副服务器上的传统数据库命令,例如结构化查询语言(SQL)语句,来访问来自主表的数据。使用副联合表,副服务器将第二更新命令应用于副表,从而将来自主数据库的更新复制到副数据库。根据本专利技术的一个实施例,主服务器基于第一更新命令生成第二更新命令,并将该第二更新命令存储在主数据库中的更新命令表中。当第一更新命令已经应用于主表时, 主服务器通过触发器或警报通知副服务器。在主服务器接收到通知时,副服务器访问主数据库中的更新命令表并获取第二更新命令。副服务器生成与主表耦合的副联合表,并通过该副联合表来更新副表。主表、副表、副联合表都具有相同的表定义。根据本专利技术的另一个实施例,每个复制任务具有相关联的唯一任务标识符和唯一签名。当在主数据库上执行复制任务时,与每个复制任务相关联的任务标识符和签名被存储于主数据库中,并且在已经在副数据库上执行了复制任务之后与复制任务相关联的相同的唯一任务标识符和唯一签名被存储于副数据库中。当通知副服务器主数据库中的主表已经发生更新时,副服务器从主数据库获得与复制任务相关联的任务标识符和签名,并将所述签名与之前存储在副数据库中的签名相比较。如果来自主数据库的签名与来自副数据库的签名不匹配,则副服务器在副数据库上执行复制任务,并然后将来自主数据库的签名存储于副数据库中以便不会再次执行该复制任务。根据本专利技术的另一个实施例,第二更新命令以基于副数据库中的数据的标准作为更新副表的条件。例如,安装于主服务器上的应用启动复制任务,该任务在主数据库中建立新配置表,在该主数据库中与该应用相关联的配置数据被维护。通知副服务器已经在主数据库上执行复制任务。副服务器从主数据库获得与该复制任务相关联的标识符和签名, 并确定尚未在副数据库上执行该复制任务。副服务器基于用于创建新配置表的第一更新命令获得第二更新命令。但是,第二更新命令以在副数据库中存在副配置表作为修改副数据库中的副配置表的条件。由于该应用还没有被安装在副服务器上,所以该副配置表还不存在于副数据库上,并且没有数据被从主数据库中的新配置表复制到副数据库。在未来的时间点,当该应用被安装在副服务器上并在副数据库中创建了副配置表时,则能够指示副服务器启动复制过程。副服务器将再次从主数据库获得与复制任务相关联的任务标识符和签名,确定来自主数据库的签名与来自副数据库的签名不匹配,并在副数据库上执行复制任务。还是根据本专利技术的又另一个实施例,第二更新命令以基于副数据库中数据的标准作为更新副表中的特定行的条件。例如,主服务器上的应用启动复制任务,该任务基于特定标准修改主表中的特定行。通知副服务器已经在主数据库上执行了复制任务。副服务器从主数据库获得与复制任务相关联的任务标识符和签名,并确定还没有在副数据库上执行该复制任务。副服务器基于用于创建新配置表的第一更新命令获得第二更新命令。副服务器执行复制任务,并且基于特定标准仅更新副表中的特定行。还是根据本专利技术的又另一个实施例,将新的副服务器添加到已有副服务器的集群。新的副服务器启动并访问主数据库以获得与主服务器上的复制任务相关联的唯一任务标识符和签名。随后在与新的副服务器相关联的副数据库上执行每个复制任务。同样地, 从主数据库选择性地复制新的副数据库,而不需耗时的手动配置,并且也不会对主数据库和任意其它副数据库造成干扰。 附图说明包括到说明书中并构成说明书一部分的附图阐明了本专利技术的几个方面,并与说明书一起用于解释本专利技术的原理。图1是根据本专利技术的一个实施例的用于选择性地复制数据库的系统的框图。图2是更详细地示出了图1所示系统的各方面的框图。图3是图示根据本专利技术的一个实施例的用于更新主数据库中的主表的过程的流程图。图4是图示根据图3所示实施例的用于更新副数据库中的副表的过程的流程图。图5是图示根据本专利技术的另一个实施例用于选择性复制的过程中的示例性数据的框图。图6是根据本专利技术的一个实施例的服务器的框图。 具体实施例方式以下阐述的实施例表示使得那些本领域的技术人员能够实现本专利技术,并说明了实现本专利技术的最佳方式的必要信息。根据附图阅读说明书之后,本领域的技术人员将理解本专利技术的概念,并将意识到这些概念的应用并不特定于此处所述。应该理解,这些概念和应用落入本公开和所附权利要求书的范围内。本专利技术使得与主服务器相关联的主数据库能够被选择性地复制到与在集本文档来自技高网
...

【技术保护点】
1.一种用于从第一数据库向第二数据库复制数据的方法,包括:确定第一更新命令已经修改了与主服务器相关联的主数据库中的主表中的数据;响应于确定第一更新命令已经修改了主数据库中的主表中的数据,基于第一更新命令确定第二更新命令;以及使用耦合到主表的副联合表来应用第二更新命令以将数据复制在与副服务器相关联的副数据库中的副表中。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:S·惠诺特
申请(专利权)人:北方电讯网络有限公司
类型:发明
国别省市:CA

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1