点对点数据复制方法、设备和系统以及主节点切换方法、设备和系统的制作方法

文档序号:9756879阅读:289来源:国知局
点对点数据复制方法、设备和系统以及主节点切换方法、设备和系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及点对点数据复制方法、设备和系统以及主节点切换方法、设备和系统。
【背景技术】
[0002]在许多电信和企业的应用程序中,常规做法是单主机RDBMS(关系数据库管理系统)复制。有一个节点充当主节点,在该节点上进行写入。然后,通过复制这些物理写入或复制结构化查询语言(SQL)语句(S卩,逻辑写入),将这些写入同步至一个或多个用户。
[0003]图1为现有技术中的单主机复制拓扑结构。如图1所示,应用程序连接到所述主数据库(主节点)。允许该应用程序通过SQL语句(数据操纵语言(DML)或数据定义语言(DDL))在所述数据库上写入。一旦写入成功,所述主数据库复制数据至用户数据库I和2。所述复制可由物理复制或逻辑复制完成,并可以是异步或同步的。图2为根据图1所示的单主机复制拓扑结构进行的复制的一种标准实现方式的示意图。如图2所示,所述应用程序推送DML/DDL语句至所述主数据库S201,所述主数据库解析所述DML/DDL语句S202,然后再执行所述DML/DDL语句S203,结果产生数据库中的物理写入S204。所述物理写入可以位于所述主节点的内存页上,或者可以是所述主数据库的存储盘中的直接输入/输出(I/O)写入。一旦该写入成功,所述主数据库判断是否需要复制正在被写入的数据至任何连接所述主数据库的用户数据库S205,如果否,所述主数据库结束复制S206;如果是,所述主数据库发送重做实体至每个连接所述主数据库的用户数据库,以复制正在被写入的数据至所述用户数据库S207,其中,所述数据复制流程与上述写操作流程类似,并且传送的是所述SQL语句,而非物理重做。
[0004]上述现有技术存在单个网络瓶颈的重大缺点。主节点成为整个方案的瓶颈。根据图1所示的单主机复制拓扑结构,所述主数据库不得不复制同一数据两次,因此导致网络负荷翻倍。

【发明内容】

[0005]本发明实施例提供了点对点数据复制方法、设备和系统,以及主节点切换方法、设备和系统,通过在点对点模式中进行分布式复制来缓解复制集群中主节点的复制瓶颈问题。
[0006]本发明实施例采用以下技术方案。
[0007]本发明的第一方面提供了一种点对点数据复制方法,包括:
[0008]当主节点第一物理实体上发生第一写操作时,所述主节点生成附带提交序号(CSN)的第一提交重做记录,其中,所述主节点预设有包括所述第一物理实体和第二物理实体在内的至少两个物理实体,并且所述主节点与包括第一用户节点和第二用户节点在内的至少两个用户节点相连接,所述第一提交重做记录附带的CSN用于指示所述主节点中所述第一写操作的顺序;
[0009]所述主节点基于物理实体与用户节点之间的映射关系推送附带CSN的所述第一提交重做记录至与所述第一物理实体对应的第一用户节点,其中,通过所述第一用户节点推送接收到的第一提交重做记录至所述第二用户节点,所述第一提交重做记录用于将所述第一写操作的数据从所述主节点复制到与所述第一物理实体对应的所述第一用户节点,然后再复制到所述第二用户节点。
[0010]在本发明第一方面的第一实现方式中,所述物理实体为表空间、设备档案文件、页面和/或分区。
[0011]在本发明第一方面的第二实现方式中,所述物理实体与用户节点之间的映射关系由所述主节点通过以下方式建立:将不同的用户节点映射至所述主节点与用户节点之间的不同连接,并将不同的连接映射至所述主节点中的不同物理实体组,其中,各物理实体组包括一个或多个物理实体;
[0012]所述主节点基于物理实体与用户节点之间的映射关系推送附带CSN的所述第一提交重做记录至与所述第一物理实体对应的第一用户节点,包括:
[0013]所述主节点基于所述第一物理实体与所述第一用户节点之间的映射关系并通过所述主节点与所述第一用户节点之间的连接,推送附带CSN的所述第一提交重做记录至与所述第一物理实体对应的第一用户节点。
[0014]在本发明第一方面的第三实现方式中,所述物理实体与用户节点之间的映射关系由所述主节点通过以下方式建立:将不同的用户节点映射至所述主节点与用户节点之间的不同连接,并将不同的连接映射至所述主节点中的不同物理实体组,其中,所述主节点中的各物理实体组包括多个物理实体,同时还将所述主节点中一个物理实体组的不同物理实体映射至与该物理实体组对应的用户节点中的不同物理实体;
[0015]所述主节点基于物理实体与用户节点之间的映射关系推送附带CSN的所述第一提交重做记录至与所述第一物理实体对应的第一用户节点,包括:
[0016]基于所述主节点中的所述第一物理实体所属的物理实体组与所述第一用户节点之间的映射关系,以及所述第一物理实体与第三物理实体之间的映射关系,并且通过所述主节点与所述第一用户节点之间的连接,所述主节点推送附带CSN的所述第一提交重做记录至与所述第一物理实体对应的所述第三物理实体,其中,所述第一用户节点预设有包括所述第三物理实体和第四物理实体在内的至少两个物理实体。
[0017]在本发明第一方面的第四实现方式中,当新的用户节点与所述主节点连接时,还包括:
[0018]在重配置所述主节点中的物理实体,以及所述物理实体与包括所述新的用户节点在内的所述用户节点之间的映射关系后,所述主节点将提交重做记录同步至所述新的用户节点。
[0019]在本发明第一方面的第五实现方式中,所述第一提交记录基于发生相关写操作的物理实体与第二提交记录相分离,所述第二提交记录由所述主节点在第二写操作发生在第二物理实体上时生成。
[0020]在本发明第一方面的第六实现方式中,所述主节点分别并行推送所述第一提交记录和所述第二提交记录至所述第一用户节点和所述第二用户节点,以使所述第一提交记录和所述第二提交记录由所述第一用户节点和第二用户节点分别并行重播;其中,通过所述第二用户节点将接收到的第二提交重做记录推送至所述第一用户节点,所述第二提交重做记录用于将所述第二写操作的数据从所述主节点复制到与所述第二物理实体对应的第二用户节点,然后再复制到所述第一用户节点。
[0021 ]本发明的第二方面提供了一种点对点数据复制方法,包括:
[0022]用户节点从主节点接收附带提交序号(CSN)的提交重做记录,其中,所述提交重做记录附带的CSN用于指示所述主节点中写操作的顺序;
[0023]当所述提交重做记录附带的CSN减去所述用户节点的CSN的绝对值为I时,更新所述用户节点的CSN至所述提交重做记录附带的CSN,其中,所述用户节点的CSN在初始化过程中设置为O;
[0024]所述用户节点重播所述提交重做记录,以将发生在主节点上的写操作的数据从所述主节点复制到所述用户节点,其中,所述用户节点与所述主节点相连接,并且其他用户节点与所述主节点相连接;
[0025]所述用户节点推送所述提交重做记录至所述其他用户节点,以将发生在所述主节点上的所述写操作的数据复制到其他用户。
[0026]在本发明第二方面的第一实现方式中,还包括:
[0027]当接收到的提交重做记录附带的CSN减去所述用户节点的CSN的绝对值不为I时,所述用户节点保存接收到的提交重做记录并且等待另一提交重做记录;
[0028]在所述用户节点的CSN更新至某个值,使得接收到的提交重做记录附带的CSN减去所述用户节点更新后的CSN的绝对值为I后,所述用户节点重播所述提交重做记录,以将发生在所述主节点上的所述写操作的数据从所述主节点复制到所述用户节点。
[0029]在本发明第二方面的第二实现方式中,还包括:
[0030]在所述主节点宕机并且所述用户节点被选为新的主节点后,所述用户节点传输拉取请求至所有其他用户节点,以获取所述其他用户节点中的发生在所述主节点上的所述写操作的所有数据,所述所有数据通过重播所述提交重做记录获得;
[0031 ]所述充当新的主节点的用户节点重新分配所述新的主节点中的物理实体与除所述用户节点外的所述其他用户节点之间的映射关系。
[0032]在本发明第二方面的第三实现方式中,还包括:
[0033]在前主节点宕机并且另一用户节点被选为新的主节点后,所述用户节点将所述用户节点中的发生在所述前主节点上的所述写操作的数据传输至充当新的主节点的用户节点,以响应所述新的主节点传输的拉取请求。
[0034]本发明的第三方面提供了一种主节点切换方法,包括:
[0035]当主节点宕机时,至少两个用户节点中的一个用户节点在所述用户节点与其他用户节点之间进行数据同步,直到完成所述数据同步或达到所述数据同步的预配置时间段,其中,所述多个用户节点和所述主节点在同一集群中;
[0036]基于用户节点的最大提交序号(CSN)从多个用户节点中选择所述用户节点作为新的主节点后,所述充当新的主节点的用户节点传输拉取请求至未被选为新的主节点的其余用户节点;
[0037]所述充当新的主节点的用户节点从未被选为新的主节点的其余用户节点中接收数据。
[0038]在本发明第三方面的第一实现方式中,还包括:
[0039]所述充当新的主节点的用户节点建立所述新的主节点中的物理实体与除所述用户节点外的其他用户节点之间的映射关系;
[0040]当所述新的主节点中的物理实体上发生写操作时,所述充当新的主节点的用户节点根据所述映射关系在所述新的主节点与未被选为新的主节点的其他用户节点之间进行点对点数据复制。
[0041]本发明的第四方面提供了一种主节点切换方法,包括:
[0042]当主节点宕机时,至少两个用户节点中的一个用户节点在所述用户节点与其他用户节点之间进行数据同步,直到完成所述数据同步或达到所述数据同步的预配置时间段,其中,所述多个用户节点和所述主节点在同一集群中;
[0043]所述用户节点与其他用户节点一起基于用户节点的最大提交序号(CSN)从多个用户节点中选择一个用户节点作为新的主节点;
[0044]未被选为新的主节点的用户节点接收新的主节点下发的拉取请求;
[0045]未被选为新的主节点的用户节点将所述用户节点中的数据传输至新的主节点,以响应所述新的主节点传输的所述拉取请求。
[0046]本发明的第五方面提供了一种点对点数据复制设备,所述设备位于主节点上,所述设备包括:
[0047]生成单元,用于当所述主节点第一物理实体上发生第一写操作时,生成附带提交序号(CSN)的第一提交重做记录,其中,所述主节点预设有包括所述第一物理实体和第二物理实体在内的至少两个物理实体,并且所述主节点与包括第一用户节点和第二用户节点在内的至少两个用户节点相连接,所述第一提交重做记录附带的CSN用于指示所述主节点中所述第一写操作的顺序;
[0048]复制单元,用于基于物理实体与用户节点之间的映射关系推送附带CSN的所述第一提交重做记录至与所述第一物理实体对应的第一用户节点,其中,通过所述第一用户节点推送接收到的第一提交重做记录至所述第二用户节点,所述第一提交重做记录用于将所述第一写操作的数据从所述主节点复制到与所述第一物理实体对应的所述第一用户节点,然后再复制到所述第二用户节点。
[0049]在本发明第五方面的第一实现方式中,所述物理实体为表空间、设备档案文件、页面和/或分区。
[0050]在本发明第五方面的第二实现方式中,还包括:
[0051]第一映射单元,用于通过以下方式建立物理实体与用户节点之间的映射关系:将不同的用户节点映射至所述主节点与用户节点之间的不同连接,并将不同的连接映射至所述主节点中的不同物理实体组,其中,各物理实体组包括一个或多个物理实体;
[0052]所述复制单元具体用于,基于所述第一物理实体与所述第一用户节点之间的映射关系并且通过所述主节点与所述第一用户节点之间的连接,推送附带CSN的所述第一提交重做记录至与所述第一物理实体对应的第一用户节点,其中,通过所述第一用户节点推送接收到的第一提交重做记录至所述第二用户节点,所述第一提交重做记录用于将所述第一写操作的数据从所述主节点复制到与所述第一物理实体对应的所述第一用户节点,然后再复制到所述第二用户节点。
[0053]在本发明第五方面的第三实现方式中,还包括:
[0054]第二映射单元,用于通过以下方式建立物理实体与用户节点之间的映射关系:将不同的用户节点映射至所述主节点与用户节点之间的不同连接,并将不同的连接映射至所述主节点中的不同物理实体组,其中,所述主节点中的各物理实体组包括多个物理实体,同时还将所述主节点中一个物理实体组的不同物理实体映射至与该物理实体组对应的用户节点中的不同物理实体;
[0055]所述复制单元具体用于,基于所述主节点中的所述第一物理实体所属的物理实体组与所述第一用户节点之间的映射关系,以及所述第一物理实体与第三物理实体之间的映射关系,并且通过所述主节点与所述第一用户节点之间的连接,推送附带CSN的所述第一提交重做记录至与所述第一物理实体对应的所述第三物理实体,其中,所述第一用户节点预设有包括所述第三物理实体和第四物理实体在内的至少两个物理实体;其中,通过所述第一用户节点推送接收到的第一提交重做记录至所述第二用户节点,所述第一提交重做记录用于将所述第一写操作的数据从所述主节点复制到与所述第一物理实体对应的所述第一用户节点,然后再复制到所述第二用户节点。
[0056]在本发明第五方面的第四实现方式中,所述复制单元还用于,当新的用户节点与所述主节点连接时,在重配置所述主节点中的物理实体,以及所述物理实体与包括所述新的用户节点在内的所述用户节点之间的映射关系后,将提交重做记录同步至所述新的用户节点。
[0057]在本发明第五方面的第五实现方式中,所述第一提交记录基于发生相关写操作的物理实体与第二提交记录相分离,所述第二提交记录由所述设备在第二写操作发生在第二物理实体上时生成。
[0058]在本发明第五方面的第六实现方式中,所述复制单元分别并行推送所述第一提交记录和所述第二提交记录至所述第一用户节点和所述第二用户节点,以使所述第一提交记录和所述第二提交记录由所述第一用户节点和第二用户节点分别并行重播;其中,通过所述第二用户节点将接收到的第二提交重做记录推送至所述第一用户节点,所述第二提交重做记录用于将所述第二写操作的数据从所述主节点复制到与所述第二物理实体对应的第二用户节点,然后再复制到所述第一用户节点。
[0059]本发明的第六方面提供了一种点对点数据复制设备,所述设备位于用户节点上,所述设备包括:
[0060]接收单元,用于从主节点接收附带提交序号(CSN)的提交重做记录,其中,所述提交重做记录附带的CSN用于指示所述主节点中写操作的顺序;
[0061]CSN处理单元,用于当所述提交重做记录附带的CSN减去所述用户节点的CSN的绝对值为I时,更新所述用户节点的CSN至所述提交重做记录附带的CSN,其中,所述用户节点的CSN在初始化过程中设置为O;
[0062]复制单元,用于重播所述提交重做记录,以将发生在主节点上的写操作的数据从所述主节点复制到所述用户节点,其中,所述用户节点与所述主节点相连接,并且其他用户节点与所述主节点相连接;推送所述提交重做记录至所述其他用户节点,以将发生在所述主节点上的所述写操作的数据复制到其他用户。
[0063]在本发明第六方面的第一实现方式中,所述CSN处理单元还用于,当接收到的提交重做记录附带的CSN减去所述用户节点的CSN的绝对值不为I时,保存接收到的提交重做记录并且等待另一提交重做记录;
[0064]所述复制单元还用于,在所述用户节点的CSN更新至某个值,使得接收到的提交重做记录附带的CSN减去所述用户节点更新后的CSN的绝对值为I后,重播所述提交重做记录,以将发生在所述主节点上的所述写操作的数据从所述主节点复制到所述用户节点。
[0065]在本发明第六方面的第二实现方式中,所述复制单元还用于,在所述主节点宕机并且所述用户节点被选为新的主节点后,传输拉取请求至所有其他用户节点,以获取所述其他用户节点中的发生在所述主节点上的所述写操作的所有数据,所述所有数据通过重播所述提交重做记录获得;
[0066]所述设备还包括:
[0067]映射单元,用于当所述用户节点充当新的主节点时,重新分配所述新的主节点中的物理实体与除充当新的主节点的用户节点外的所述其他用户节点之间的映射关系。
[0068]在本发明第六方面的第三实现方式中,所述复制单元还用于,在前主节点宕机并且另一用户节点被选为新的主节点后,将所述用户节点中的发生在所述前主节点上的所述写操作的数据传输至充当新的主节点的用户节点,以响应所述新的主节点传输的拉取请求。
[0069]本发明的第七方面提供了一种主节点切换设备,所述设备位于用户节点上,所述设备包括:
[0070]同步单元,用于当主节点宕机时,在所述用户节点与其他用户节点之间进行数据同步,直到完成所述数据同步或达到所述数据同步的预配置时间段,其中,所述多个用户节点和所述主节点在同一集群中;
[0071]传输单元,用于在基于用户节点的最大提交序号(CSN)从多个用户节点中选择所述用户节点作为新的主节点后,传输拉取请求至未被选为新的主节点的其余用户节点;
[0072]接收单元,用于从未被选为新的主节点的其余用户节点中接收数据。
[0073]在本发明第七方面的第一实现方式中,还包括:
[0074]映射单元,用于当所述用户节点充当新的主节点时,建立所述新的主节点中的物理实体与除所述用户节点外的其他用户节点之间的映射关系;
[0075]所述同步单元还用于,当所述新的主节点中的物理实体上发生写操作时,根据所述映射关系在所述新的主节点与未被选为新的主节点的其他用户节点之间进行点对点数据复制。
[0076]本发明的第八方面提供了一种主节点切换设备,所述设备位于用户节点上,所述设备包括:
[0077]同步单元,用于当主节点宕机时,在所述用户节点与其他用户节点之间进行数据同步,直到完成所述数据同步或达到所述数据同步的预配置时间段,其中,所述多个用户节点和所述主节点在同一集群中;
[0078]选择单元,用于与其他用户节点一起基于用户节点的最大提交序号(CSN)从多个用户节点中选择一个用户节点作为新的主节点;
[0079]接收单元,用于当用户节点未被选为新的主节点时,接收新的主节点下发的拉取请求;
[0080]传输单元,用于当用户节点未被选为新的主节点时,将所述用户节点中的数据传输至新的主节点,以响应所述新的主节点传输的所述拉取请求。
[0081]本发明的第九方面提供了一种点对点数据复制设备,所述设备位于主节点上,所述设备包括:
[00
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1