分布式数据库的数据迁移方法与装置
技术领域
本发明涉及分布式数据库技术领域,特别是涉及一种分布式数据库的数据迁移方法与装置。
背景技术
分布式数据库是指数据分存在计算机网络中的各台计算机(即服务节点)上的数据库。分布式数据库利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的服务节点上,以获取更大的存储容量和更高的并发访问量。近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展,传统的关系型数据库开始从集中式模型向分布式架构发展,基于关系型的分布式数据库在保留了传统数据库的数据模型和基本特征下,从集中式存储走向分布式存储,从集中式计算走向分布式计算。
随着分布式数据库处理的业务量的增大,使用过程中时常会出现分布式数据库中某一服务节点的磁盘容量不够或者某一服务节点数据处理压力过载的情况,此时,则需要将该服务节点上的数据迁移到其他的或者新增的服务节点上,以实现对该服务节点的扩容。
而现有的将服务节点上的数据进行迁移时,需要技术人员手动进行数据迁移。即,技术人员需要确定待扩容的服务节点(源端服务节点),使用硬盘等存储介质将数据从该服务节点中导出,然后再通过硬盘等存储介质将导出的数据导入至其他的或者新增的服务节点(即目标端服务节点)上。
可见,现有的这种手动进行数据迁移的方案,整个数据迁移过程中都需技术人员参与,因此,会占用大量的人力资源。不仅如此,由于所迁移的数据需要先经历从源端服务节点中导出的阶段、再经历导入目标端服务节点的阶段,所耗费的时间长,最终导致数据迁移的效率低。
发明内容
鉴于现有的数据迁移方案在进行数据迁移时,存在占用大量人力资源以及数据迁移效率低的问题,提出了本发明以便提供一种克服上述问题的分布式数据库的数据迁移方法与装置。
依据本发明的一个方面,提供了一种分布式数据库的数据迁移方法,包括:获取数据迁移参数,其中,所述数据迁移参数包括:待迁移的业务表分片信息、源端服务节点信息以及目标端服务节点信息;以及依据所述数据迁移参数,控制源端服务节点与目标端服务节点之间的数据迁移。
优选地,依据所述配置文件控制源端服务节点与目标端服务节点之间的数据迁移的步骤,进一步包括:依据所述源端服务节点信息确定源端服务节点,依据所述目标端服务节点信息确定目标端服务节点;控制所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点。
优选地,所述控制所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点的步骤,进一步包括:远程释放所述源端服务节点上、所述业务表分片信息对应的业务表分片的服务进程;指示所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点,以及指示所述目标端服务节点接收所述源端服务节点发送的所述业务表分片信息对应的数据;远程恢复所述业务表分片信息所对应的业务表分片在所述目标端服务节点上的服务进程。
优选地,所述远程释放所述源端服务节点上、所述业务表分片信息所对应的业务表分片的服务进程的步骤,进一步包括:向所述源端服务节点发送用于释放所述业务表分片的服务进程的第一指令,以供所述源端服务节点依据所述指示释放所述业务表分片的服务进程。
优选地,所述指示所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点的步骤,进一步包括:向所述源端服务节点发送数据迁移指令,其中,所述数据迁移指令中携带有所述业务表分片信息、以及所述目标端服务节点信息。
优选地,所述指示所述目标端服务节点接收所述源端服务节点发送的所述业务表分片信息对应的数据的步骤,进一步包括:向所述目标端服务节点发送数据接收指令,其中,所述数据接收指令中携带有所述业务表分片信息、以及所述源端服务节点信息。
优选地,所述远程恢复所述业务表分片信息所对应的业务表分片在所述目标端服务节点上的服务进程的步骤,进一步包括:向所述目标端服务节点发送用于恢复所述业务表分片的服务进程的第二指令,以供所述目标端服务节点依据所述指示建立所述业务表分片的服务进程。
优选地,所述方法还包括:检查在所述目标端服务节点上存储的所述业务表分片对应的线上服务是否正常;若正常,则返回用于指示所述业务表分片迁移成功的信息。
优选地,所述检查所述业务表分片对应的线上服务是否正常的步骤,进一步包括:检查所述业务表分片对应的主服务进程是否正常;检查所述所述业务表分片对应的同步进程是否正常,其中,所述同步进程用于表示与所述业务表分片对应的主服务进程和从服务进程同步的进程;若均正常,则确定所述业务表分片的线上服务正常。
优选地,所述获取数据迁移参数的步骤,进一步包括:从配置文件中提取业务表分片信息、源端服务节点信息以及目标端服务节点信息,作为所述数据迁移参数。
优选地,所述业务表分片信息对应的数据包括:业务表分片的数据、业务表分片对应的日志信息。
优选地,所述源端服务节点信息为源端服务节点号,所述目标端服务节点信息为目标端服务节点号。
依据本发明的另一个方面,提供了一种分布式数据库的数据迁移装置,包括:获取模块,用于获取数据迁移参数,其中,所述数据迁移参数包括:待迁移的业务表分片信息、源端服务节点信息以及目标端服务节点信息;以及控制模块,用于依据所述数据迁移参数,控制源端服务节点与目标端服务节点之间的数据迁移。
优选地,所述控制模块包括:服务节点确定模块,用于依据所述源端服务节点信息确定源端服务节点,依据所述目标端服务节点信息确定目标端服务节点;迁移控制模块,用于控制所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点。
优选地,所述迁移控制模块包括:释放子模块,用于远程释放所述源端服务节点上、所述业务表分片信息对应的业务表分片的服务进程;指示子模块,用于指示所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点,以及指示所述目标端服务节点接收所述源端服务节点发送的所述业务表分片信息对应的数据;恢复子模块,用于远程恢复所述业务表分片信息所对应的业务表分片在所述目标端服务节点上的服务进程。
优选地,所述释放子模块具体用于:向所述源端服务节点发送用于释放所述业务表分片的服务进程的第一指令,以供所述源端服务节点依据所述指示释放所述业务表分片的服务进程。
优选地,所述指示子模块指示所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点时:向所述源端服务节点发送数据迁移指令,其中,所述数据迁移指令中携带有所述业务表分片信息、以及所述目标端服务节点信息。
优选地,所述指示子模块指示所述目标端服务节点接收所述源端服务节点发送的所述业务表分片信息对应的数据时:向所述目标端服务节点发送数据接收指令,其中,所述数据接收指令中携带有所述业务表分片信息、以及所述源端服务节点信息。
优选地,所述恢复子模块具体用于:向所述目标端服务节点发送用于恢复所述业务表分片的服务进程的第二指令,以供所述目标端服务节点依据所述指示建立所述业务表分片的服务进程。
优选地,所述装置还包括:检查模块,用于检查在所述目标端服务节点上存储的所述业务表分片对应的线上服务是否正常;信息返回模块,用于若所述检查模块的检查结果为正常时,则返回用于指示所述业务表分片迁移成功的信息。
优选地,所述检查模块包括:主服务进程检查子模块,用于检查所述业务表分片对应的主服务进程是否正常;同步进程检查子模块,用于检查所述所述业务表分片对应的同步进程是否正常,其中,所述同步进程用于表示与所述业务表分片对应的主服务进程和从服务进程同步的进程;确定子模块,用于若均正常,则确定所述业务表分片的线上服务正常。
优选地,所述获取模块具体用于:从配置文件中提取业务表分片信息、源端服务节点信息以及目标端服务节点信息,作为所述数据迁移参数。
优选地,所述业务表分片信息对应的数据包括:业务表分片的数据、业务表分片对应的日志信息。
优选地,所述源端服务节点信息为源端服务节点号,所述目标端服务节点信息为目标端服务节点号。
本发明实施例提供的分布式数据库的数据迁移方案,由登录的任意一台分布式数据库中的服务节点调用自动迁移脚本,由自动迁移脚本控制服务节点来自动完成数据迁移。本发明实施例提供的分布式数据库的数据迁移方案,由于是由登录的服务节点自动完成数据的迁移,在数据迁移的过程中无需技术人员参与,因此,能够节省大量的人力资源。
此外,本发明实施例提供的分布式数据库的数据迁移方案,直接将待迁移的数据从源服务节点中导入至目标服务节点,相较于现有的数据迁移方案需要将迁移的数据导入存储介质中,再由存储介质中将迁移的数据导入目标端服务节点能够缩短数据迁移的时间,因此,能够提升数据迁移的效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种分布式数据库的数据迁移方法的步骤流程示意图;
图2示出了根据本发明一个实施例的一种分布式数据库的数据迁移方法的步骤流程示意图;
图3示出了根据本发明一个实施例的一种分布式数据库的数据迁移方法的步骤流程示意图;
图4示出了根据本发明一个实施例的一种分布式数据库的数据迁移方法的步骤流程示意图;
图5示出了根据本发明一个实施例的一种分布式数据库的数据迁移装置的结构示意图;以及
图6示出了根据本发明一个实施例的一种分布式数据库的数据迁移装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
参照图1,示出了本发明实施例一的一种分布式数据库的数据迁移方法的步骤流程图。
本发明实施例的分布式数据库的数据迁移方法包括以下步骤:
步骤101:获取数据迁移参数。
其中,数据迁移参数具体可以包括:待迁移的业务表分片信息、源端服务节点信息以及目标端服务节点信息。
源端服务节点信息可以为源端服务节点号、可以为源端服务节点标识还可以为源端服务节点名称。相应地,目标端服务节点信息可以为目标端服务节点号、可以为目标端服务节点标识还可以为目标端服务节点名称。在具体实现过程中,可以由本领域技术人员根据实际需求设置服务节点信息所指代的具体含义。
待迁移的业务表分片信息可以由本领域技术人员根据实际需求进行设置,例如:可以为业务表分片对应的标识,可以为业务表分片所在的业务表标识以及该分片对应的标识,还可以为业务表分片所在服务节点标识、分片所在的业务表标识以及该分片对应的标识组成的标识集合。
步骤102:依据数据迁移参数,控制源端服务节点与目标端服务节点之间的数据迁移。
进行数据迁移时,控制源端服务节点将待迁移的业务表分片对应的数据迁移至目标端服务节点中。
通过本发明实施例提供的分布式数据库的数据迁移方法,由于是由登录的服务节点自动完成数据的迁移,在数据迁移的过程中无需技术人员参与,因此,能够节省大量的人力资源。此外,本发明实施例提供的分布式数据库的数据迁移方案,直接将待迁移的数据从源服务节点中导入至目标服务节点,相较于现有的数据迁移方案需要将迁移的数据导入存储介质中,再由存储介质中将迁移的数据导入目标端服务节点能够缩短数据迁移的时间,因此,能够提升数据迁移的效率。
实施例二
参照图2,示出了本发明实施例二的一种分布式数据库的数据迁移方法的步骤流程图。
本发明实施例的分布式数据库的数据迁移方法具体包括以下步骤:
步骤201:获取数据迁移参数。
其中,数据迁移参数具体可以包括:待迁移的业务表分片信息、源端服务节点信息以及目标端服务节点信息。
优选地,将源端服务节点信息为源端服务节点号,目标端服务节点信息配置为目标端服务节点号。
本发明实施例中,选择服务器集群中的任意一台服务节点进行登录,然后通过登录后的服务节点执行数据自动迁移流程。登录的服务节点首先获取数据迁移参数,其中,可以配置多套数据迁移参数,每套数据迁移参数对应一个待迁移的业务表分片。当仅配置有一套数据迁移参数时,登录的服务节点则直接获取该套数据迁移参数即可,当配置有多套数据迁移参数时,则需要定位到某一套数据迁移参数并获取该数据迁移参数,对该数据迁移参数对应的待迁移的业务表分片进行迁移。
步骤202:依据源端服务节点信息确定源端服务节点,依据目标端服务节点信息确定目标端服务节点。
其中,服务节点信息可以为服务节点号、服务节点名称还可以为服务节点标识。
当服务节点信息为服务节点号时,则通过服务器集群中存储的服务节点号与服务节点名称的对应关系,即可确定服务节点号对应的服务节点名称,在确定了服务节点名称后,即可确定名称所对应的具体服务节点。
当服务节点信息为服务节点名称时,则可通过服务节点名称直接确定服务节点。
当服务节点信息为服务节点标识时,通过服务节点标识与服务节点名称的对应关系,确定服务节点标识对应的服务节点名称,在确定了服务节点名称后,即可确定服务节点名称所对应的服务节点。
步骤203:控制源端服务节点将业务表分片信息对应的数据迁移至目标端服务节点。
通过上述步骤已经确定了源端服务节点、目标端服务节点。通过待迁移的业务表分片信息即可确定源端服务节点中存储的待迁移的业务表分片,因此,登录的服务节点即可通过确定的上述信息,控制源端服务节点将业务表分片信息对应的数据迁移至目标端服务节点。
业务表分片信息对应的数据具体可以包括:业务表分片的数据、业务表分片对应的日志信息。
当配置有多套数据迁移参数时,当迁移完当前业务表分片对应的数据时,则返回执行步骤201获取下一套数据迁移参数,对该套数据迁移参数对应的业务表分片进行迁移。循环执行上述流程直至配置的各套数据迁移参数对应的业务表分片均迁移完毕。
通过本发明实施例提供的分布式数据库的数据迁移方法,由于是由登录的服务节点自动完成数据的迁移,在数据迁移的过程中无需技术人员参与,因此,能够节省大量的人力资源。此外,本发明实施例提供的分布式数据库的数据迁移方法,直接将待迁移的数据从源服务节点中导入至目标服务节点,相较于现有的数据迁移方案需要将迁移的数据导入存储介质中,再由存储介质中将迁移的数据导入目标端服务节点能够缩短数据迁移的时间,因此,能够提升数据迁移的效率。
实施例三
参照图3,示出了本发明实施例三的一种分布式数据库的数据迁移方法的步骤流程图。
本发明实施例的分布式数据库的数据迁移方法具体包括以下步骤:
步骤301:获取数据迁移参数。
其中,数据迁移参数具体可以包括:待迁移的业务表分片信息、源端服务节点信息以及目标端服务节点信息。
在执行数据迁移时,首先登录服务器集群中的任意一个服务节点,由登录的该服务节点调用自动迁移脚本,由自动迁移脚本控制登录的该服务节点自动执行数据迁移流程。
登录的服务节点首先需要获取数据迁移参数,优选地,登录的服务节点可以从配置文件中提取业务表分片信息、源端服务节点信息以及目标端服务节点信息,作为数据迁移参数。
在配置文件中可以配置多个待迁移的业务表分片信息,并且在配置文件中每个业务表分片信息对应有源端服务节点信息以及目标端服务节点信息。本发明实施例中以仅配置有一个待迁移的业务表分片信息为例对后续流程进行说明。
步骤302:依据源端服务节点信息确定源端服务节点,依据目标端服务节点信息确定目标端服务节点。
在具体实现过程中,可以将源端服务节点信息为源端服务节点号,将目标端服务节点信息为目标端服务节点号。将服务节点信息设置为服务节点号具有以下有益效果,首先,服务节点号通过各服务节点的配置文件即可获取得到获取途径简单便捷;其次,服务节点号规律简单相较于服务节点名称更易于区分,因此,在配置数据迁移参数时优选的将源服务节点信息设置为源服务节点号,将目标端服务节点信息设置为目标端服务节点号。
步骤303:远程释放源端服务节点上、待迁移的业务表分片信息对应的业务表分片的服务进程。
源端服务节点上存储有多个业务表并且每个业务表包含至少一个业务表分片。在源端服务节点上的各业务表分片均对应有服务进程。
本步骤中,登录的服务节点远程控制源端服务节点,将步骤301中获取到的数据迁移参数中包含的业务表分片信息对应的业务表分片的服务进程释放。
一种优选的远程释放源端服务节点上、待迁移的业务表分片信息对应的业务表分片的服务进程的方式为:登录的服务节点向源端服务节点发送用于释放待迁移的业务表分片的服务进程的第一指令,以供源端服务节点依据第一指示释放待迁移的业务表分片的服务进程。
步骤304:指示源端服务节点将待迁移的业务表分片信息对应的数据迁移至目标端服务节点。
一种优选的指示源服务节点将待迁移的业务表分片信息对应的数据迁移至目标端服务节点的方式为:
登录的服务节点向源端服务节点发送数据迁移指令;其中,数据迁移指令中携带有待迁移的业务表分片信息、以及目标端服务节点信息。源端服务节点接收到迁移指令后,响应该迁移指令在自身磁盘空间中查找业务表分片信息对应的数据,将查找到的数据发送至目标端服务节点信息对应的目标端服务节点。其中,业务表分片信息对应的数据包括:业务表分片的数据、业务表分片对应的日志信息。
步骤305:指示目标端服务节点接收源端服务节点发送的待迁移的业务表分片信息对应的数据。
在指示目标端服务节点接收源端服务节点发送的待迁移的业务表分片信息对应的数据时,可以由登录的服务节点向目标端服务节点发送数据接收指令;其中,数据接收指令中携带有业务表分片信息、以及源端服务节点信息。目标端服务节点接收到接收指令后,响应该接收指令接收源端服务节点发送的数据,并存储在自身磁盘中。
需要说明的是,步骤305并不局限于在步骤304之后执行,步骤305还可以与步骤304并行执行或者在步骤304之前执行,只要能保证源端服务节点发送的待迁移的业务表分片信息对应的数据能够被源端服务节点接收即可。
步骤306:远程恢复待迁移的业务表分片信息所对应的业务表分片在目标端服务节点上的服务进程。
在远程恢复待迁移的业务表分片信息所对应的业务表分片在目标端服务节点上的服务进程时,可以由登录的服务节点向目标端服务节点发送用于恢复待迁移的业务表分片的服务进程的第二指令,以供目标端服务节点依据第二指示建立待迁移的业务表分片的服务进程。
步骤307:检查在目标端服务节点上的迁移过来的所述业务表分片对应的线上服务是否正常。
一种优选的检查迁移至目标端服务节点上的业务表分片对应的线上服务是否正常的方式如下:
检查该业务表分片对应的主服务进程是否正常;检查该业务表分片对应的同步进程是否正常;其中,同步进程用于表示与该业务表分片对应的主服务进程和从服务进程同步的进程;若均正常,则确定该业务表分片的线上服务正常。当然,若有一个检查结果为不正常,则确定该业务表分片的线上服务不正常。
步骤308:线上服务正常时,则返回用于指示所述业务表分片迁移成功的信息。
通过迁移成功的信息技术人员即可确定当前迁移的业务表分片已迁移成功。
通过本发明实施例提供的分布式数据库的数据迁移方法,由于是由登录的服务节点自动完成数据的迁移,在数据迁移的过程中无需技术人员参与,因此,能够节省大量的人力资源。此外,本发明实施例提供的分布式数据库的数据迁移方案,直接将待迁移的数据从源服务节点中导入至目标服务节点,相较于现有的数据迁移方案需要将迁移的数据导入存储介质中,再由存储介质中将迁移的数据导入目标端服务节点能够缩短数据迁移的时间,因此,能够提升数据迁移的效率。
实施例四
参照图4,示出了本发明实施例三的一种分布式数据库的数据迁移方法的步骤流程图。
本发明实施例的分布式数据库的数据迁移方法具体包括以下步骤:
步骤401:登陆集群中的任意一个服务节点。
分布式数据库对应的服务器集群中包含多个服务节点,本步骤中任意登录一个服务节点即可。
步骤402:调用API,指定待迁移的源端服务节点和目标端服务节点的节点号、待迁移个业务表分片信息。
登录的服务节点通过操作系统留给自动迁移脚本的API(Application ProgramInterface,应用程序接口)调用自动迁移脚本,由自动迁移脚本控制登录的该服务节点自动完成业务表分片的迁移。
进行数据迁移时,首先需要从配置的待迁移的业务表分片中指定一个业务表分片,作为当前所要迁移的业务表分片。
需要说明的是,对待迁移的业务表分片进行配置时,可以进行单次操作配置,即仅配置一个待迁移的业务表分片,当然,也可以进行批量操作配置,即配置多个待迁移的业务表分片。
配置的每个待迁移的业务表分片对应有源端服务节点号、目标端服务节点号、待迁移个业务表分片信息。其中,业务表分片信息包含业务表名称息以及具体的待删除的分片的信息。业务表名称和业务表分片的信息可以是字符串、数值等类型,在实际应用过程中,业务表名称和业务表分片的信息类型可以由用户指定。
本发明实施例中以对多个待迁移的业务表分片进行迁移为例,对后续的步骤进行说明。
步骤403:利用节点号从node mnesia表中提取对应的源端服务节点名称和目标端服务节点名称。
其中,node mnesia表即节点记忆表,在node mnesia表中存储有节点号与节点名称的对应关系。那么,通过节点号以及该对应关系,即可确定节点名称。
本步骤中利用源端服务节点的节点号即可确定源端服务节点名称,利用目标端服务节点的节点号即可确定目标端服务节点名称。在确定了节点名称后即可通过节点名称定位服务节点。
步骤404:远程释放掉源端服务节点上的当前待迁移的业务表分片的服务进程。
远程释放可以由当前登录的服务节点向源端服务节点发送用于释放当前待迁移的业务表分片的服务进程的指令来实现。源端服务节点接收到指令后,即可依据指令释放掉自身上维护的当前待迁移的业务表分片的服务进程。
步骤405:将当前待迁移的业务表分片的数据、binlog日志迁移到目标端服务节点上。
登录的服务节点控制源端服务节点向目标端服务节点发送当前待迁移的业务表分片的数据、binlog日志等信息。同时控制目标端服务节点接收源端服务节点发送的数据。
其中,binlog日志为二进制日志,它记录了对服务节点上存储的当前待迁移的业务表分片的全部历史操作,以及各次操作的触发时间等。服务节点的磁盘中存储的各业务表分片均对应有独立于其它分片的binlog日志。
步骤406:远程恢复当前待迁移的业务表分片在目标端服务节点上的服务进程。
远程恢复可以由当前登录的服务节点向目标端服务节点发送用于恢复当前待迁移的业务表分片的服务进程的指令来实现。目标端服务节点接收到指令后,即可依据指令创建当前待迁移的业务表分片的服务进程。
步骤407:检查线上服务是否正常;若正常则开始下一个业务表分片的迁移,返回执行步骤402,若不正常,则执行步骤408。
检查线上服务是否正常即检查目标端服务节点上迁移得到的所述当前待迁移的业务表分片对应的线上服务是否正常。当迁移的该业务表分片对应的线上服务正常时,则返回执行步骤402继续下一个待迁移的业务表分片的迁移。
检查线上服务是否正常时,可以通过判断当前待迁移的业务表分片对应的主服务进程是否正常,以及当前待迁移的业务表分片对应的主服务进程和从服务进程的同步进程是否正常来进行判断,当二者均正常时,则确定线程服务正常。
步骤408:若不正常,则终止对当前待迁移的业务表分片的迁移流程。
在数据迁移过程中,若一切正常,则迁移完成后,每个迁移的业务表分片都对应显示为success,且正常返回对下一个待迁移的业务表分片的迁移流程。若迁移过程中有异常,则在异常发生时终止,以避免异常导致更多数据的错误操作。优选的,在终止数据迁移流程后还显示异常出现的原因和具体位置,以便排错和下次继续进行数据迁移。
本发明实施例提供的数据迁移方法,可以在服务器集群中的任何一个服务节点上,实现业务表分片服务在集群内的任意服务节点间的自动化迁移。并且,通过配置不同的迁移参数,可以定制业务表分片迁移的具体行为。如可以配置单次操作某个业务表分片的迁移参数,也可以配置批量操作多个业务表分片的迁移参数。相应地,当配置单次操作时,则自动执行一次业务表分片对应的数据的迁移;当配置批量操作时,则依次执行各业务表分片对应的数据的迁移。
实施例五
参照图5,示出了本发明实施例五的一种分布式数据库的数据迁移装置的结构示意图。
本发明实施例的分布式数据库的数据迁移装置具体可以包括:获取模块501,用于获取数据迁移参数,其中,所述数据迁移参数具体可以包括:待迁移的业务表分片信息、源端服务节点信息以及目标端服务节点信息;以及控制模块502,用于依据所述数据迁移参数,控制源端服务节点与目标端服务节点之间的数据迁移。
通过本发明实施例提供的分布式数据库的数据迁移装置,能够自动完成数据的迁移,在数据迁移的过程中无需技术人员参与,因此,能够节省大量的人力资源。此外,本发明实施例提供的分布式数据库的数据迁移装置,直接控制源服务节点将待迁移的数据从源服务节点中导入至目标服务节点,相较于现有的数据迁移方案需要将迁移的数据导入存储介质中,再由存储介质中将迁移的数据导入目标端服务节点能够缩短数据迁移的时间,因此,能够提升数据迁移的效率。
实施例六
参照图6,示出了本发明实施例六的一种分布式数据库的数据迁移装置的结构示意图。
本发明实施例是对实施例五中的分布式数据库的数据迁移装置的进一步优化,优化后的分布式数据库的数据迁移装置,具体可以包括:获取模块601,用于获取数据迁移参数,其中,所述数据迁移参数具体可以包括:待迁移的业务表分片信息、源端服务节点信息以及目标端服务节点信息;以及控制模块602,用于依据所述数据迁移参数,控制源端服务节点与目标端服务节点之间的数据迁移。需要说明的是,分布式数据库的数据迁移装置可以设置在登录的服务节点上,控制服务节点自动执行数据迁移。
优选地,所述控制模块602具体可以包括:服务节点确定模块6021,用于依据所述源端服务节点信息确定源端服务节点,依据所述目标端服务节点信息确定目标端服务节点;迁移控制模块6022,用于控制所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点。
优选地,所述迁移控制模块6022具体可以包括:释放子模块60221,用于远程释放所述源端服务节点上、所述业务表分片信息对应的业务表分片的服务进程;指示子模块60222,用于指示所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点,以及指示所述目标端服务节点接收所述源端服务节点发送的所述业务表分片信息对应的数据;恢复子模块60223,用于远程恢复所述业务表分片信息所对应的业务表分片在所述目标端服务节点上的服务进程。
优选地,所述释放子模块60221具体用于:向所述源端服务节点发送用于释放所述业务表分片的服务进程的第一指令,以供所述源端服务节点依据所述指示释放所述业务表分片的服务进程。
优选地,所述指示子模块60222指示所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点时:向所述源端服务节点发送数据迁移指令,其中,所述数据迁移指令中携带有所述业务表分片信息、以及所述目标端服务节点信息。
优选,所述指示子模块60222指示所述目标端服务节点接收所述源端服务节点发送的所述业务表分片信息对应的数据时:向所述目标端服务节点发送数据接收指令,其中,所述数据接收指令中携带有所述业务表分片信息、以及所述源端服务节点信息。
优选地,所述恢复子模块60223具体用于:向所述目标端服务节点发送用于恢复所述业务表分片的服务进程的第二指令,以供所述目标端服务节点依据所述指示建立所述业务表分片的服务进程。
优选地,所述装置还可以包括:检查模块603,用于检查在所述目标端服务节点上存储的所述业务表分片对应的线上服务是否正常;信息返回模块604,用于若所述检查模块的检查结果为正常时,则返回用于指示所述业务表分片迁移成功的信息。
优选地,所述检查模块603具体可以包括:主服务进程检查子模块6031,用于检查所述业务表分片对应的主服务进程是否正常;同步进程检查子模块6032,用于检查所述所述业务表分片对应的同步进程是否正常,其中,所述同步进程用于表示与所述业务表分片对应的主服务进程和从服务进程同步的进程;确定子模块6033,用于若均正常,则确定所述业务表分片的线上服务正常。
优选地,所述获取模块601具体用于:从配置文件中提取业务表分片信息、源端服务节点信息以及目标端服务节点信息,作为所述数据迁移参数。
优选地,所述业务表分片信息对应的数据具体可以包括:业务表分片的数据、业务表分片对应的日志信息。
优选地,所述源端服务节点信息可以为源端服务节点号,所述目标端服务节点信息为目标端服务节点号。
本发明实施例的分布式数据库的数据迁移装置用于实现前述实施例一至实施例四中相应的分布式数据库的数据迁移方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的分布式数据库的数据迁移方法与装置不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的分布式数据库的数据迁移方法与装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种分布式数据库的数据迁移方法,包括:
获取数据迁移参数,其中,所述数据迁移参数包括:待迁移的业务表分片信息、源端服务节点信息以及目标端服务节点信息;以及
依据所述数据迁移参数,控制源端服务节点与目标端服务节点之间的数据迁移。
A2、根据A1所述的方法,其中,依据所述配置文件控制源端服务节点与目标端服务节点之间的数据迁移的步骤,进一步包括:
依据所述源端服务节点信息确定源端服务节点,依据所述目标端服务节点信息确定目标端服务节点;
控制所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点。
A3、根据A2所述的方法,其中,所述控制所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点的步骤,进一步包括:
远程释放所述源端服务节点上、所述业务表分片信息对应的业务表分片的服务进程;
指示所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点,以及指示所述目标端服务节点接收所述源端服务节点发送的所述业务表分片信息对应的数据;
远程恢复所述业务表分片信息所对应的业务表分片在所述目标端服务节点上的服务进程。
A4、根据A3所述的方法,其中,所述远程释放所述源端服务节点上、所述业务表分片信息所对应的业务表分片的服务进程的步骤,进一步包括:
向所述源端服务节点发送用于释放所述业务表分片的服务进程的第一指令,以供所述源端服务节点依据所述指示释放所述业务表分片的服务进程。
A5、根据A3所述的方法,其中,所述指示所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点的步骤,进一步包括:
向所述源端服务节点发送数据迁移指令,其中,所述数据迁移指令中携带有所述业务表分片信息、以及所述目标端服务节点信息。
A6、根据A3所述的方法,其特征在于,所述指示所述目标端服务节点接收所述源端服务节点发送的所述业务表分片信息对应的数据的步骤,进一步包括:
向所述目标端服务节点发送数据接收指令,其中,所述数据接收指令中携带有所述业务表分片信息、以及所述源端服务节点信息。
A7、根据A3所述的方法,其中,所述远程恢复所述业务表分片信息所对应的业务表分片在所述目标端服务节点上的服务进程的步骤,进一步包括:
向所述目标端服务节点发送用于恢复所述业务表分片的服务进程的第二指令,以供所述目标端服务节点依据所述指示建立所述业务表分片的服务进程。
A8、根据A3所述的方法,其中,所述方法还包括:
检查在所述目标端服务节点上存储的所述业务表分片对应的线上服务是否正常;
若正常,则返回用于指示所述业务表分片迁移成功的信息。
A9、根据A8所述的方法,其中,所述检查所述业务表分片对应的线上服务是否正常的步骤,进一步包括:
检查所述业务表分片对应的主服务进程是否正常;
检查所述所述业务表分片对应的同步进程是否正常,其中,所述同步进程用于表示与所述业务表分片对应的主服务进程和从服务进程同步的进程;
若均正常,则确定所述业务表分片的线上服务正常。
A10、根据A1所述的方法,其中,所述获取数据迁移参数的步骤,进一步包括:
从配置文件中提取业务表分片信息、源端服务节点信息以及目标端服务节点信息,作为所述数据迁移参数。
A11、根据A3所述的方法,其中,所述业务表分片信息对应的数据包括:业务表分片的数据、业务表分片对应的日志信息。
A12、根据A1所述的方法,其中,所述源端服务节点信息为源端服务节点号,所述目标端服务节点信息为目标端服务节点号。
本发明还公开了B13、一种分布式数据库的数据迁移装置,包括:
获取模块,用于获取数据迁移参数,其中,所述数据迁移参数包括:待迁移的业务表分片信息、源端服务节点信息以及目标端服务节点信息;以及
控制模块,用于依据所述数据迁移参数,控制源端服务节点与目标端服务节点之间的数据迁移。
B14、根据B13所述的装置,其中,所述控制模块包括:
服务节点确定模块,用于依据所述源端服务节点信息确定源端服务节点,依据所述目标端服务节点信息确定目标端服务节点;
迁移控制模块,用于控制所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点。
B15、根据B14所述的装置,其中,所述迁移控制模块包括:
释放子模块,用于远程释放所述源端服务节点上、所述业务表分片信息对应的业务表分片的服务进程;
指示子模块,用于指示所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点,以及指示所述目标端服务节点接收所述源端服务节点发送的所述业务表分片信息对应的数据;
恢复子模块,用于远程恢复所述业务表分片信息所对应的业务表分片在所述目标端服务节点上的服务进程。
B16、根据B15所述的装置,其中,所述释放子模块具体用于:
向所述源端服务节点发送用于释放所述业务表分片的服务进程的第一指令,以供所述源端服务节点依据所述指示释放所述业务表分片的服务进程。
B17、根据B15所述的装置,其中,所述指示子模块指示所述源端服务节点将所述业务表分片信息对应的数据迁移至所述目标端服务节点时:
向所述源端服务节点发送数据迁移指令,其中,所述数据迁移指令中携带有所述业务表分片信息、以及所述目标端服务节点信息。
B18、根据B15所述的装置,其中,所述指示子模块指示所述目标端服务节点接收所述源端服务节点发送的所述业务表分片信息对应的数据时:
向所述目标端服务节点发送数据接收指令,其中,所述数据接收指令中携带有所述业务表分片信息、以及所述源端服务节点信息。
B19、根据B15所述的装置,其中,所述恢复子模块具体用于:
向所述目标端服务节点发送用于恢复所述业务表分片的服务进程的第二指令,以供所述目标端服务节点依据所述指示建立所述业务表分片的服务进程。
B20、根据B15所述的装置,其中,所述装置还包括:
检查模块,用于检查在所述目标端服务节点上存储的所述业务表分片对应的线上服务是否正常;
信息返回模块,用于若所述检查模块的检查结果为正常时,则返回用于指示所述业务表分片迁移成功的信息。
B21、根据B20所述的装置,其中,所述检查模块包括:
主服务进程检查子模块,用于检查所述业务表分片对应的主服务进程是否正常;
同步进程检查子模块,用于检查所述所述业务表分片对应的同步进程是否正常,其中,所述同步进程用于表示与所述业务表分片对应的主服务进程和从服务进程同步的进程;
确定子模块,用于若均正常,则确定所述业务表分片的线上服务正常。
B22、根据B13所述的装置,其中,所述获取模块具体用于:
从配置文件中提取业务表分片信息、源端服务节点信息以及目标端服务节点信息,作为所述数据迁移参数。
B23、根据B15所述的装置,其中,所述业务表分片信息对应的数据包括:业务表分片的数据、业务表分片对应的日志信息。
B24、根据B13所述的装置,其中,所述源端服务节点信息为源端服务节点号,所述目标端服务节点信息为目标端服务节点号。