本发明实施例涉及数据迁徙技术领域,尤其涉及一种动态数据备份方法及装置。
背景技术:
随着大数据时代的到来,对于大数据的应用需求不断增加。在大数据的应用中,数据量随时间的推移不断增加,随着数据量的增加,对硬件设备和网络结构的处理能力也提出了更高的要求。为了满足不断扩充的数据量和不断提高的数据处理能力,必须不断对硬件设备进行升级改造。
在兼顾容量、数据处理能力和实现成本的情况下,对硬件设备进行升级改造时,分布式处理系统称为首选的系统,因为分布式处理系统具有良好的数据处理能力和升级扩展能力,适合用来作为大数据系统的硬件架构。但分布式处理系统所遭遇的问题同样巨大,当分布式处理系统进行数据升级时,数据迁徙十分困难。这是由于分布式处理系统中的数据分布在数个节点上,而在进行升级之后,节点的数量会增加,如何对数据进行合理的分配成为一个难题。如果数据是动态变化的,那问题将变得更加棘手。现有技术中多数的备份方式采用单一的备份路径,即数据源(数据库)与备份目标(磁带)之间仅有单一的备份路径,数据只能以串行的方式进行备份,因此,海量数据的迁徙需要占用很长的时间,在这段时间内,原来的处理系统上的数据又发生了变化,导致原处理系统和新处理系统上的数据不一致,这将给系统升级和过渡带来很大的困难。对此,现有技术并没有稳定可靠的解决方案。
综上,现有技术中亟需一种动态数据备份方法,实现分布式处理系统在动态数据备份时进行稳定可靠的数据迁徙。
技术实现要素:
本发明实施例提供一种动态数据备份方法及装置,用以实现分布式处理系统在动态数据备份时进行稳定可靠的数据迁徙。
本发明实施例提供一种动态数据备份方法,包括:
将第一数据库的第一节点上的存量数据复制至第一节点的目标存储介质上,所述第一节点上的存量数据为备份启动时第一节点上已存储的承载所述第一节点的第一处理器的运行数据,所述第一数据库中包括n个第一节点,任两个第一节点的目标存储介质不同或者部分第一节点的目标存储介质相同;
将所述第一节点的目标存储介质上的存量数据,分发至第二数据库中与所述第一节点对应的第二节点,所述第二数据库中包括p个第二节点,所述第一节点对应的第二节点至少为1个,p大于n。
本发明实施例提供一种动态数据备份装置,包括:
第一处理单元,用于将第一数据库的第一节点上的存量数据复制至第一节点的目标存储介质上,所述第一节点上的存量数据为备份启动时第一节点上已存储的承载所述第一节点的第一处理器的运行数据,所述第一数据库中包括n个第一节点,任两个第一节点的目标存储介质不同或者部分第一节点的目标存储介质相同;
第二处理单元,用于将所述第一节点的目标存储介质上的存量数据,分发至第二数据库中与所述第一节点对应的第二节点,所述第二数据库中包括p个第二节点,所述第一节点对应的第二节点至少为1个,p大于n。
上述实施例中,通过将第一数据库分为多个分区数据库,即n个第一节点,将第二数据库分为多个分区数据库,即p个第二节点,并且预先设置了任一第一节点对应的第二节点,这样在进行数据备份时,通过将第一数据库中任一个第一节点上的存量数据复制至第一节点的目标存储介质上,并将该第一节点的目标存储介质上的存量数据分发至第二数据库中与所述第一节点对应的第二 节点上,即通过n条复制路径将第一数据库的存量数据复制到第二数据库中,这n条复制路径可以同时进行,互不干扰,与现有技术中只通过一条复制路径进行大批量存量数据的备份相比,n条复制路径的高可用性,大大缩短了数据备份的时间,提高了整个系统数据备份的效率,而且因预先设置了第一节点与第二节点之间的映射关系,使得数据备份时,只将指定第一节点上存储的数据按照指定路径复制给与指定第一节点存在映射关系的第二节点,而不会分发给与指定第一节点不存在映射关系的第二节点,避免出现迁徙后的存量数据在多个节点上难以合理分配的问题,也避免了系统升级前后原处理系统和新处理系统上的数据不一致问题,因此本发明实施例提高了数据迁徙的高可靠性。
附图说明
图1为本发明实施例提供的一种动态数据备份方法的流程图;
图2为本发明实施例提供的一种第一节点与第二节点之间的映射方式的示意图;
图3为本发明实施例提供的一种第一节点与第二节点之间的映射方式的示意图;
图4为本发明实施例提供的一种第一节点与第二节点之间的映射方式的示意图;
图5为本发明实施例提供的一种第一节点与第二节点之间的映射方式的示意图;
图6a、图6b、图6c为本发明实施例提供的在服务器上架设第二节点的结构示意图;
图7为本发明实施例提供的一种动态数据备份装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发 明作进一步地详细描述。
为了实现分布式处理系统在动态数据备份时能够进行稳定可靠的数据迁徙,本发明实施例提供了如图1所示的一种动态数据备份方法,具体流程包括:
步骤101,将第一数据库的第一节点上的存量数据复制至第一节点的目标存储介质上,第一节点上的存量数据为备份启动时第一节点上已存储的承载第一节点的第一处理器的运行数据,第一数据库中包括n个第一节点,任两个第一节点的目标存储介质不同或者部分第一节点的目标存储介质相同;
步骤102,将第一节点的目标存储介质上的存量数据,分发至第二数据库中与第一节点对应的第二节点,第二数据库中包括p个第二节点,第一节点对应的第二节点至少为1个,p大于n。
上述步骤101中,n为大于1的正整数,p为大于或者等于n的正整数。第一节点上的存量数据可根据第一标记识别,第一标记可以为时间戳,第一标记的时间戳为开始对该第一节点上存储的数据进行备份的时间,第一节点上的存量数据是指在第一标记的时间戳之前存储在第一节点上的数据,该第一节点上存储的数据是指承载该第一节点的处理器的运行数据。
其中,第二数据库用于存储新的分布式处理系统的运行数据,第一数据库用于存储原有的分布式处理系统的运行数据,新的分布式处理系统是对原有的分布式处理系统的升级和扩充,因此通常来说,第二数据库中的第二节点的数量会多于第一数据库中的第一节点的数量。第一节点为第一数据库的分区数据库,第二节点为第二数据库的分区数据库。在进行数据分发时,需要按照一定的规则将原先分布在各个第一节点上的数据重新分发到第二节点上。
按照上述方法将第一数据库中的存量数据备份至第二数据库的过程包括多个备份路径,具体实现体现在两个方面,一个方面设置第一节点与第二节点的映射关系,每个第一节点对应一个或多个第二节点,第一数据库中有多少个第一节点,就有多少个备份路径,在进行数据备份时,只将指定的第一节点的存量数据分发到指定的该第一节点对应的第二节点上。另一方面,任一个第一 节点与该第一节点对应的第二节点之间的数据的迁徙和分发,是通过第一节点对应的目标存储介质进行转发而实现的,每一个第一节点对应一个目标存储介质,也就是一个备份路径映射一个目标存储介质,具体实现中,令任两个第一节点的目标存储介质不同,也就是n个第一节点,对应n个目标存储介质,也可以一部分第一节点对应同一个目标存储介质,以建立多个第一节点至多个介质的多个备份路径。也可以建立多个第一节点至一个存储介质的多个备份路径,这一个存储介质可以分为n个存储分区,n个第一节点对应n个存储分区,进而实现n个备份路径。
第一节点的目标存储介质为实体存储介质或者为一个实体存储介质的一个存储分区。存储介质可以选用任何一种现有的介质来实现。在实际的应用中,存储介质的选择主要会以实现成本来考量。从成本的角度看,容量大、成本低的磁带是较好的选择。但随着技术的发展,可能其他存储介质会更加合适,或者会出现更新的存储介质,但这应当被视为在本发明的范畴之内。本发明在数据备份时考虑的是选择一种最具有性价比的介质。将数据备份到磁带上可以通过多种现有的技术来实现,但现有技术中多数的备份方式采用单一的备份路径,即数据源(数据库)与备份目标(磁带)之间仅有单一的备份路径,数据只能以串行的方式进行备份。对于具有多个节点的分布式处理系统来说,这种单一备份路径的备份方式显然效率太低,本发明将第一数据库中的存量数据备份至第二数据库的过程包括多个备份路径,实现分布式处理系统多节点数据备份的高效性。
值得说明的是,本发明实施例中n个第一节点与p个第二节点之间有多种映射策略,第二数据库中第二节点的数量p是第一数据库中第一节点的数量n的整数倍n,每个第一节点对应的第二节点为n个,第二数据库中第二节点的数量p也可以是第一数据库中第一节点的数量n的非整数倍。但并不局限于本发明实施例所列举的几种实例。
下面针对本发明n个第一节点与p个第二节点之间的映射方式进行详述。
如图2所示的本发明实施例提供的一种n个第一节点与p个第二节点之间的映射方式。按照最普通的分布式系统的节点数量设计,n和p都是2的n次幂。第一节点的数量m=32,第二节点的数量n=128。第二节点的数量相对于第一节点的数量进行4倍的扩充。图2所示的实施例中,n个第一节点对应的p个第二节点采用下述4行×32列的矩阵来体现。4行×32列的矩阵包括共128个第二节点。第一行的编号顺序为1-32、第二行为33-64、第三行为65-96、第四行为97-128。每一列的4个第二节点与一个第一节点对应。第一行的32个第二节点依次对应成一行排列的32个第一节点,每一个第一节点对应位于矩阵同一列中的4个第二节点,即编号为1的第一节点对应编号为1、33、65和97的四个第二节点。通过图2所示的矩阵,完成了由32个第一节点至128个第二节点的映射扩充。这128个第二节点在实现分布式处理系统时是被架设在数台服务器上。架设所使用的服务器的性能可以都相同,例如每一个服务器具有四个处理器,那么每四个节点被架设在同一台服务器上。一种典型的设置是每一列的四个第二节点对应于同一个第一节点,这四个第二节点被架设在一台服务器上,每一个第二节点对应四个处理器中的一个处理器。在图2中,用虚线框表示第二节点所在的服务器。
在实际应用中,选用性能相同的数台服务器,以2的n次幂的数量来配置节点数量是最常规的选择,因此都可以采用图2所展示的矩阵的方式来实现节点扩充。归纳而言,新的分布式处理系统中的节点数量将会是旧的分布式处理系统中的节点数量的2n倍。矩阵的第一行的编号与旧的分布式系统中的第一节点对应,而整个矩阵中的编号与新的分布式系统中的第二节点对应。每一个旧的第一节点对应处于同一列中的多个(一般是2n个)新的第二节点。每一列上的多个新的第二节点被架设在同一个服务器上,该服务器具有相应数量的处理器,每一个处理器能够处理一个第二节点。
图3所示的本发明实施例提供的一种n个第一节点与p个第二节点之间的映射方式。第一节点的数量为36个,而第二节点的数量为108个。第一节点 的数量和第二节点的数量都不是2的n次幂,但第二节点的数量是第一节点的数量的整数倍。第二节点的数量相对于第一节点的数量进行3倍的扩充。在图3所示的实施例中,n个第一节点对应的p个第二节点采用下述3行×36列的矩阵来体现。第一行第二节点的编号顺序为1-36、第二行第二节点的编号顺序37-72、第三行第二节点的编号顺序为73-96。每一列的3个第二节点与一个第一节点对应。第一行的36个节点1-36可以理解为是对应的36个第一节点,每一个第一节点对应位于同一列中的3个第二节点,即编号为1的第一节点对应编号为1、37和73的三个第二节点。通过图3所示的矩阵,完成了由36个第一节点至96个第二节点的映射扩充。图3所示的方式中,96个第二节点在实现分布式处理系统时是被架设在36台服务器上。架设所使用的服务器的性能都是相同的,每一个服务器具有三个处理器,每三个节点被架设在同一台服务器上。在图3中,用虚线框表示第二节点所在的服务器。
虽然图3所示的映射方式中,第一节点及第二节点的数量为非2的n次幂的配置并不是很常见,但本发明也可以适用于这种情况。
图4所示的本发明实施例提供的一种n个第一节点与p个第二节点之间的映射方式。第一节点的数量为19个,而第二节点的数量为45个,第二节点的数量是第一节点的数量的非整数倍。在这种情况下,n个第一节点对应的p个第二节点采用下述3行×19列的矩阵来实现。第一行第二节点的编号顺序为1-19、第二行第二节点的编号顺序为20-38、第三行第二节点的编号顺序为39-45。需要注意的是,第一行和第二行都具有19个第二节点,而第三行仅具有7个第二节点,其余12个第二节点为空闲,并不进行编号。每一列中的第二节点与一个第一节点对应。前7列中,三个第二节点对应一个第一节点,在后12列中,两个第二节点对应一个第一节点。第一行的19个第二节点1-19可以理解为是对应的19个第一节点,每一个第一节点对应位于同一列中的第二节点,部分第一节点对应三个第二节点,部分第一节点对应两个第二节点。通过图4所示的矩阵,完成了由19个第一节点至57个第二节点的映射扩充。
图4所示的映射方式中,57个第二节点在实现分布式处理系统时是被架设在19台服务器上。架设所使用的服务器的性能都是相同的,每一个服务器具有三个处理器,每一个列的第二节点被架设在同一台服务器上,部分服务器上由于只有两个第二节点,因此只承载两个第二节点的服务器会出现部分空闲的处理器。在图4中,用虚线框表示第二节点所在的服务器。
图4提供的一种n个第一节点与p个第二节点之间的映射方式在实际应用中应该是很罕见的,但这说明本发明也可以被应用于该种情况。
基于上述n个第一节点与p个第二节点之间的三种映射方式,本发明实施例提供的一种动态数据备份方法可以被应用于任何的节点扩充的场合。原来的n个第一节点被扩充为p个第二节点(p>n),在进行扩充时,建立一个m行n列的矩阵,m的取值满足以下条件:m×n<p<(m+1)×n。如果p不是n的整数倍,那么在这个m行n列的矩阵中会有部分的第二节点空闲,空闲的第二节点可以位于除了第一行以外的任何位置,并不一定要被限制在最后一行。在建立了矩阵形式的扩充映射之后,n个第一节点与p个第二节点建立了对应关系:每一个第一节点与处于同一列中的第二节点相对应。
上述实施例中,优选的,承载第二节点的服务器的性能都是一致的,并且处于同一列中的第二节点都被架设在同一个服务器上。
在实际应用中,并非都是如上述的理想状态。可能部分的服务器会出现故障,此时用于替换故障服务器的新服务器不能保证与原来的服务器具有一致的性能。又比如,服务器也需要更新换代,出于成本的考虑,服务器的更新会是分批进行,这就会出现不同批用于架设第二节点的数台服务器具有不同的性能的情况。
值得说明的是,上述实施例中与第一节点对应的第二节点有多种配置策略,但并不局限于本发明实施例所列举的几种实例。例如与同一第一节点对应的第二节点可以部署在一个服务器上,也可以部署在多个服务器上。
例如,如图5所示的一种n个第一节点与p个第二节点之间的映射方式, 第一节点的数量m=32,第二节点的数量n=128。采用的矩阵与图2所示的实施例相一致,区别在于架设128个第二节点的服务器有所不同。第一列的四个第二节点被架设在一台具有四个处理器的服务器上。第二列的四个第二节点被架设在两台具有两个处理器的服务器上,并且承载2号和34号节点的服务器的处理能力较弱,而承载66号和98号节点的服务器的处理能力较强。第三列和第四列的8个节点被承载于一个具有八个处理器的服务器上,一个处理器对应一个第二节点,处理器的运行数据将来会存储在对应的第二节点中。其他列的第二节点的架设可以采用与前面三列的架设方式,也可以采用其他架设方式,如每4列架设在一个多处理器的服务器上,也可以某两个列中的部分第二节点架设在同一多处理器的服务器上,在图5中,同样用虚线框表示第二节点所在的服务器。
同样,图3和图4中的多个第二节点也可以被架设在具有不同处理能力服务器上,此处不再赘述。但本领域的技术人员可以参照图2和图5,对图3和图4中第二节点的部署方式进行改动,将第二节点分布在性能不同的服务器上。
在实际的应用中,在服务器上架设第二节点可以采用多种方式,并不局限于图5所示的方式,需要说明的是,图5所列举的方是为了说明用于承载第二节点的服务器或者处理器的处理能力不同,而不是为了限制第二节点的架设方式。
下面以图6a、图6b和图6c说明在服务器上架设第二节点的不同方式。
如图6a所示,在具有4个处理器的单台服务器606上架设位于同一列中的编号分别为32、64、96、128的4个第二节点。每一个第二节点602是第二数据库中的一个分区数据库,每一个分区数据库架设在一个处理器604上。在服务器606中,在4个处理器604与4个分区数据库602之间通过存储器608进行数据的存取,存储器608是共用的,4个处理器604和4个分区数据库602共享同一个存储器608。
如图6b所示,在多台具有单个处理器的服务器616上架设多个第二节点。 每一个第二节点612同样是一个分区数据库,每一个分区数据库架设在一台服务器616上,该服务器616具有自己的处理器614和存储器618。在处理器614与第二节点612之间通过各自的存储器618进行数据的存取。多台服务器616架设在一个统一的平台610上,以组成一个分布式处理系统。
如图6c所示,在多台具有多个处理器的服务器上架设多个第二节点。图6c可以认为是对于图6a的一种扩充,在一个平台620上架设多台服务器626组成一个新的分布式系统。每一台服务器626具有多个处理器624,在每一台服务器626上架设多个分区数据库622,每一个分区数据库622就是一个第二节点,每一个分区数据库622架设在一个处理器624上。针对每一台服务器626,在多个处理器624与多个分区数据库622之间通过存储器628进行数据的存取,存储器628是共用的,多个处理器624和多个分区数据库622共享同一个存储器628。
基于上述几种在服务器上架设第二节点的实例,第二数据库中的p个第二节点在服务器上的架设也包括多种部署方式,第二数据库中的p个第二节点中部署在多个性能相同或性能不同的服务器上,也可以全部部署在同一服务器上,而每个服务器上包括至少一个处理器,因为每个第二节点对应一个承载该第二节点的处理器。
在步骤102进行数据分发时,依据上述实施例中第一节点与第二节点之间的扩充映射关系,将第一节点上的存量动态数据从存储介质上恢复并分发至各个第一节点对应的第二节点上。具体的,在将第一节点的目标存储介质上的存量数据,分发至第二数据库中与第一节点对应的第二节点上时,采用如下的规则:
首先,原先保存在一个第一节点上的数据被分发至与该第一节点对应的数个第二节点上,即在矩阵中处于同一个列中的第二节点上。对于同一个第一节点,该第一节点上的数据始终在矩阵与该第一节点对应的一个列中进行分发,不会出现跨列数据分发,进而提高数据分发的效率。原先保存在各个第一节点 上的数据量不同,在分发时在各个列内进行分发的数据总量也会有所不同。
其次,在每一个列内,按照承载各个第二节点的服务器的处理能力来进行数据分发。处理能力强的第二节点会被分到更多的数据,而处理能力弱的第二节点会被分到较少的数据,由此进行更合理的负载分配,以获得更好的数据处理速度。
具体的,若承载与第一节点对应的第二节点的服务器或者处理器的处理能力相同,则步骤102具体包括:将第一节点的目标存储介质上的存量数据,平均地分发给第二数据库中与第一节点对应的第二节点。
若承载与第一节点对应的第二节点的服务器或者处理器的处理能力不同,则步骤102具体包括:将第一节点的目标存储介质上的存量数据,按照承载与第一节点对应的第二节点的服务器或者处理器的处理能力,按需地分发给第二数据库中与第一节点对应的第二节点。
例如,承载第二节点的服务器的性能相同时,采用图2-图4所示的方式,在每一个列内的数个第二节点会被平均分发数据。以图2所示的方式为例,原先保存在一个第一节点上的数据会被平均地分配到4个第二节点上。
如果承载节点的服务器的性能是不同的,那么分发到第二节点的数据将依据节点的处理能力来决定。例如采用图5所示的方式,第一列中编号为1、33、65和97的四个第二节点架设在一台具有四个处理器的服务器上,这四个节点的处理能力相同,因此原先属于编号为1的第一节点的数据将在这四个第二节点中平均地分发。类似的情况也应用于第三列、第四列的第二节点上,虽然第三列和第四列的8个节点是由同一台服务器实现,但是对于每一个列中的第二节点来说,在一个列内各个第二节点的处理能力还是相同的,因此在编号为3、35、67和99的第二节点内将平均分发原本属于编号为3的第一节点的数据。在编号为4、36、68和100的第二节点内将平均分发原本属于编号为4的第一节点的数据。在第二列中,第二列的四个第二节点被架设在两台具有两个处理器的服务器上,承载2号和34号节点的服务器的处理能力较弱,而承载66号 和98号节点的服务器的处理能力较强。因此,在第二列中第二节点的数据分发并不是平均的,具有较强处理能力的66号和99号节点将被分发到更多的数据,而处理能力较弱的2号和34号节点将被分发到较少的数据。
同样的,如果图3和图4所示的方式中的第二节点被架设在具有不同处理能力服务器上,在对第二节点进行数据分发时也会考虑节点的数据处理能力,依据节点处理能力的强弱来进行负载的均衡,以达到最佳的整体性能。
至此,已经完成了存量的动态数据在新的分布式系统上的迁徙和分发。
步骤102之后,还包括步骤103和步骤104。
步骤103,将第一数据库的第一节点上的增量数据直接导入到与第一节点对应的第二节点中;其中,第一节点上的增量数据为从备份启动至第一节点上的存量数据全部分发至与第一节点对应的第二节点的时间段内存储在第一节点上的第一处理器的运行数据;
步骤104,启动第二节点接收承载第二节点的第二处理器的运行数据。
其中,针对同一第一节点,该第一节点上的增量数据可由第一标记和第二标记识别,第一标识和第二标记可以为时间戳,第二标识的时间戳晚于第一标记的时间戳。第一标记的时间戳为开始进行备份的时间,用于标记该第一节点上的存量数据,第二标识的时间戳是该第一节点上的存量数据全部分发至对应的第二节点上的时间,则该第一节点的增量数据,是指在第一标识的时间戳与第二标识的时间戳之间在该第一节点上新增加的数据。
需要说明的是,虽然在此处以时间戳作为第一标记和第二标记的实例进行说明,但本领域的技术人员也可以采用其他的标记来对存量数据和增量数据进行区分。但存量数据和增量数据的产生原理在此处已经做了揭示:存量数据是指开始实现本发明的方法之前已经存在的数据,而增量数据是指在对前述的存量数据进行备份和分发的过程中新产生的数据。
与存量数据相比,增量数据的数据量会小很多,因此没有必要采用与存量数据类似的方法来进行迁徙。对于增量数据来说,能够在两个数据库(或者分 布式处理系统)之间进行快速的数据移动的方法是比较好的选择。在一种实现方式中,选择远程的数据库游标(简称远程游标)来实现增量数据的迁徙,即使用远程游标将增量的动态数据从第一数据库导入到第二数据库中。
一种优选的实现方式如下:首先在第一数据库(原分布式处理系统中)识别出增量数据,比如通过时间戳识别出具有介于第一标记和第二标记之间的时间戳的数据为增量数据。这些增量数据会分布在各个第一节点上。在各个第一节点上设置游标,然后建立第一数据库和第二数据库之间的数据转移路径,也称为网络管道,这些网络管道的两端分别是第一节点和与第一节点对应的第二节点。在进行增量数据的迁徙时也会利用到前述的映射扩充方式和数据分发规则,一个第一节点上的增量数据只会被导入到与之相对应的第二节点上(即在映射扩充的矩阵中处于同一列中的第二节点)。可以建立一个第一节点和数个第二节点之间的数个网络管道来进行增量数据的导入,在进行增量数据的导入和分发时,也会考虑第二节点的数据处理能力,根据数据处理能力来决定分发的数据量。
通过远程游标的方法,可以从第一数据库(源端数据库)抽取数据存储在第二数据库(目标端数据库),这个方法的好处在于中间数据不用落于磁盘或者其他存储介质上,从而能够节省大量的数据读写时间,而且使用起来简单。
完成增量数据的转移之后,就完成了将动态数据从第一数据库向第二数据库的备份。需要说明的是,虽然增量数据的量不大,但进行增量数据的转移也需要一定的时间,在这段时间内,还会产生新的数据,对于这部分的新数据,由于其数据量十分小,可以采用步骤104来解决,具体为:在完成存量数据备份后(即第二标记所在的时间点),第二数据库即开始工作,正常接受并产生自第二标记所对应的时间开始产生的数据,这样,将具有第一标记和第二标记之间的时间戳的数据追平至第二数据库中后,第二数据库中的数据就能保持完整。
综上,本发明的动态数据的备份方法具有较好的可扩展性,能够根据需求 灵活对第二数据库的多个第二节点进行扩充,并根据扩充后的第二节点进行数据分发。该动态数据的备份方法能够以较低的成本和较快的速度完成分布式处理系统上的大量动态数据的迁徙和备份。
上述方法流程中,通过将第一数据库分为多个分区数据库,即n个第一节点,将第二数据库分为多个分区数据库,即p个第二节点,并且预先设置了任一第一节点对应的第二节点,这样在进行数据备份时,通过将第一数据库中任一个第一节点上的存量数据复制至第一节点的目标存储介质上,并将该第一节点的目标存储介质上的存量数据分发至第二数据库中与第一节点对应的第二节点上,即通过n条复制路径将第一数据库的存量数据复制到第二数据库中,这n条复制路径可以同时进行,互不干扰,与现有技术中只通过一条复制路径进行大批量存量数据的备份相比,n条复制路径的高可用性,大大缩短了数据备份的时间,提高了整个系统数据备份的效率,而且因预先设置了第一节点与第二节点之间的映射关系,使得数据备份时,只将指定第一节点上存储的数据按照指定路径复制给与指定第一节点存在映射关系的第二节点,而不会分发给与指定第一节点不存在映射关系的第二节点,避免出现迁徙后的存量数据在多个节点上难以合理分配的问题,也避免了系统升级前后原处理系统和新处理系统上的数据不一致问题,因此本发明实施例提高了数据迁徙的高可靠性。
上述实施例是提供给本领域内的专业技术人员来实现或使用本发明的,熟悉本领域的人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。
基于本发明的上述方法流程,本发明实施例还提供一种动态数据备份装置,这些装置的具体内容参见上述方法部分,此处不再累述。
如图7所示的一种动态数据备份装置,包括:
第一处理单元701,用于将第一数据库的第一节点上的存量数据复制至第一节点的目标存储介质上,第一节点上的存量数据为备份启动时第一节点上已 存储的承载第一节点的第一处理器的运行数据,第一数据库中包括n个第一节点,任两个第一节点的目标存储介质不同或者部分第一节点的目标存储介质相同;
第二处理单元702,用于将第一节点的目标存储介质上的存量数据,分发至第二数据库中与第一节点对应的第二节点,第二数据库中包括p个第二节点,第一节点对应的第二节点至少为1个,p大于n。
进一步地,还包括第三处理单元;
第三处理单元,用于在第二处理单元702将第一节点的目标存储介质上的存量数据,分发至第二数据库中与第一节点对应的第二节点之后,将第一数据库的第一节点上的增量数据直接导入到与第一节点对应的第二节点中,并启动第二节点接收承载第二节点的第二处理器的运行数据;其中,第一节点上的增量数据为从备份启动至第一节点上的存量数据全部分发至与第一节点对应的第二节点的时间段内存储在第一节点上的第一处理器的运行数据。
进一步地,第一节点的目标存储介质为实体存储介质或者为一个实体存储介质的一个存储分区。
进一步地,若第二数据库中第二节点的数量p是第一数据库中第一节点的数量n的整数倍n,则每个第一节点对应的第二节点为n个。
进一步地,第一节点对应的第二节点部署在一个服务器上;或者,第一节点对应的第二节点部署在多个服务器上。
进一步地,第二处理单元702具体用于:
若承载与第一节点对应的第二节点的服务器或者处理器的处理能力相同,则将第一节点的目标存储介质上的存量数据,平均地分发给第二数据库中与第一节点对应的第二节点;
若承载与第一节点对应的第二节点的服务器或者处理器的处理能力不同,则将第一节点的目标存储介质上的存量数据,按照承载与第一节点对应的第二节点的服务器或者处理器的处理能力,按需地分发给第二数据库中与第一节点 对应的第二节点。
上述实施例中,通过将第一数据库分为多个分区数据库,即n个第一节点,将第二数据库分为多个分区数据库,即p个第二节点,并且预先设置了任一第一节点对应的第二节点,这样在进行数据备份时,通过将第一数据库中任一个第一节点上的存量数据复制至第一节点的目标存储介质上,并将该第一节点的目标存储介质上的存量数据分发至第二数据库中与第一节点对应的第二节点上,即通过n条复制路径将第一数据库的存量数据复制到第二数据库中,这n条复制路径可以同时进行,互不干扰,与现有技术中只通过一条复制路径进行大批量存量数据的备份相比,n条复制路径的高可用性,大大缩短了数据备份的时间,提高了整个系统数据备份的效率,而且因预先设置了第一节点与第二节点之间的映射关系,使得数据备份时,只将指定第一节点上存储的数据按照指定路径复制给与指定第一节点存在映射关系的第二节点,而不会分发给与指定第一节点不存在映射关系的第二节点,避免出现迁徙后的存量数据在多个节点上难以合理分配的问题,也避免了系统升级前后原处理系统和新处理系统上的数据不一致问题,因此本发明实施例提高了数据迁徙的高可靠性。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。