本发明专利技术公开了一种分布式数据库集群的数据迁移方法和装置,所述集群包括m个数据库节点,所述集群还包括n个分片,每个所述数据库节点负责存储一个或多个分片的数据;所述方法包括:按设定的分配方式,将进入集群的数据分配到相应的分片上;当集群内需要数据迁移时,确定需要数据迁移的数据库节点;在确定的数据库节点管理的分片中,选择出需要迁出的分片;将选择出的分片的数据从原数据库节点迁移到指定的数据库节点。本发明专利技术所述数据迁移方案,支持了单节点扩容数据迁移、集群整体扩容数据迁移等多种场景,通用性强。
【技术实现步骤摘要】
一种分布式数据库集群的数据迁移方法和装置
本专利技术涉及数据处理
,尤其涉及一种分布式数据库集群的数据迁移方法和装置。
技术介绍
随着互联网技术的飞速发展,用户产生了越来越多的数据。而这些海量数据的可靠存储及使用则成为了计算机技术的关键所在。技术上既要保证海量数据的存储安全性,又要保证这些数据的可用性,使得海量数据的用户能够高效的、透明的使用数据。分布式系统则给出了海量数据的存储和使用解决方案。分布式系统作为海量数据存储,需要解决的一个重要问题便是决定数据在集群中的分布策略,好的分布策略应该能将数据均衡地分布到所有节点上,并且还应该能适应集群节点的变化。由此可见,数据迁移在解决分布式存储系统集群扩容、跨机房数据迁移等数据同步至关重要。数据迁移是大规模存储系统实现负载平衡的重要手段,可有效提高数据访问的性能。其应用场景包括跨机房完整数据迁移、集群扩容数据迁移、单节点扩容数据迁移和设备故障数据迁移等。目前,比较常用的数据迁移方案包括:一致性哈希方案,如图1所示,为一致性哈希方案的示意图。一致性哈希方案具有如下特点:1,一致性哈希将整个哈希值空间组织成一个虚拟的圆环;2,如图1-1所示,将各个节点使用哈希函数进行一个哈希,具体可以选择服务器的ip或主机名作为关键字进行哈希,这样每个节点就能确定其在哈希环上的位置。接下来将数据key使用相同的哈希函数计算出哈希值,根据得出的哈希值确定数据在环上的位置,从此位置沿环顺时针“行走”,第一台遇到的节点就是其应该定位到的节点。如A,B定位到S2,C定位到S3,D定位到S1;3,如图1-2所示,节点S3故障时的数据迁移:可以看到此时A、B、D不会受到影响,只有C节点被重定位到S1。由此可见,在一致性哈希算法中,如果一个节点不可用,则受影响的数据是此节点到其环空间中前一节点之间数据,其它不会受到影响4,如图1-3所示,扩容增加节点S4:原本存储在节点S2的数据A重新定位到节点S4,需要迁移数据。由此可见,在一致性哈希算法中,如果增加一个节点,将影响新增加节点和前一节点之间的数据;5,如图1-4,一致性哈希算法在实现中引入虚拟节点机制,即对每一个服务节点计算多个哈希,每个计算结果位置都放置一个服务节点,称为虚拟节点。这样避免了数据倾斜问题。然而,一致性哈希方案在数据迁移方面具有如下缺点:1,在集群整体数据量上升需要扩容时,增加一个节点只分担了原节点中一个节点的数据量,不能对整体进行均衡;这样很会造成数据分布不均衡,给整个系统引入访问瓶颈,更不能解决整体扩容的问题;倍增所有节点又带来资源的浪费;2,单个节点进行扩容数据迁移时,需要对原节点上所有的数据进行再哈希,性能显然较低;3,不能支持由于机房升级等带来的跨机房完整数据迁移。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种解决上述问题或者至少部分解决上述问题的分布式数据库集群的数据迁移方法和装置。依据本专利技术的一个方面,提供一种分布式数据库集群的数据迁移方法,所述集群包括m个数据库节点,所述集群还包括n个分片,每个所述数据库节点负责存储一个或多个分片的数据,所述n大于m;所述方法包括:按设定的分配方式,将进入集群的数据分配到相应的分片上;当集群内需要数据迁移时,确定需要数据迁移的数据库节点;在确定的数据库节点管理的分片中,选择出需要迁出的分片;将选择出的分片的数据从原数据库节点迁移到指定的数据库节点。可选地,所述按设定的分配方式,将进入集群的数据分配到相应的分片上,包括:将进入集群的数据的键key通过哈希后对n取模,将所述数据分配到分片标识与取模后的值相同的分片上。可选地,当集群整体数据量过载,需要集群内数据迁移时,指定的数据库节点为新增的数据库节点;当集群内单数据库节点数据量过载,需要集群内数据迁移时,指定的数据库节点为集群内未发生数据量过载的数据库节点中的一个或多个。可选地,当集群整体数据量过载,需要集群内数据迁移时,所述确定需要数据迁移的数据库节点,包括:统计每个分片的数据量,根据每个分片的数据量得到各数据库节点所管理的分片的数据总量;求取每个数据库节点所管理的分片的数据总量的平均值,确定出数据总量超出所述平均值的数据库节点为需要数据迁移的数据库节点。可选地,本专利技术所述方法还包括:当需要集群间数据迁移时,启动新集群内的主节点,并将新集群内的主节点设置为旧集群相应主节点的从节点;通过主从同步的方式,将旧集群中主节点的数据同步到所述新集群中的主节点;在新旧集群的主节点间同步完成后,启动新集群内的从节点,进行新集群内的主从节点的数据同步,并将旧集群的读写流量切换到新集群。可选地,所述新、旧集群内均划分有多个数据库节点组,每个数据库节点组内均设有主节点和从节点,且每个数据库节点组内的主节点负责本组内的数据同步。依据本专利技术的另一个方面,提供一种分布式数据库集群的数据迁移装置,所述集群包括m个数据库节点,所述集群还包括n个分片,每个所述数据库节点负责存储一个或多个分片的数据,所述n大于m;所述装置包括:数据分配模块,用于按设定的分配方式,将进入集群的数据分配到相应的分片上;迁移处理模块,用于当集群内需要数据迁移时,确定需要数据迁移的数据库节点,在确定的数据库节点管理的分片中,选择出需要迁出的分片,将选择出的分片的数据从原数据库节点迁移到指定的数据库节点。可选地,所述数据分配模块,具体用于将进入集群的数据的键key通过哈希后对n取模,将所述数据分配到分片标识与取模后的值相同的分片上。可选地,当集群整体数据量过载,需要集群内数据迁移时,指定的数据库节点为新增的数据库节点;当集群内单数据库节点数据量过载,需要集群内数据迁移时,指定的数据库节点为集群内未发生数据量过载的数据库节点中的一个或多个。可选地,当集群整体数据量过载,需要集群内数据迁移时,所述迁移处理模块,具体用于统计每个分片的数据量,根据每个分片的数据量得到各数据库节点所管理的分片的数据总量,求取每个数据库节点所管理的分片的数据总量的平均值,确定出数据总量超出所述平均值的数据库节点为需要数据迁移的数据库节点。可选地,所述迁移处理模块,还用于当需要集群间数据迁移时,启动新集群内的主节点,并将新集群内的主节点设置为旧集群相应主节点的从节点,通过主从同步的方式,将旧集群中主节点的数据同步到所述新集群中的主节点,并在新旧集群的主节点间同步完成后,启动新集群内的从节点,进行新集群内的主从节点的数据同步,并将旧集群的读写流量切换到新集群。可选地,所述新、旧集群内均划分有多个数据库节点组,每个数据库节点组内均设有主节点和从节点,且每个数据库节点组内的主节点负责本组内的数据同步。本专利技术有益效果如下:本专利技术所述数据迁移方案,支持了单节点扩容数据迁移、集群整体扩容数据迁移和跨机房数据迁移多种场景,通用性强;另外,本专利技术在扩容数据迁移时,支持为单节点进行扩容和整个集群进行扩容,使得扩容数据迁移更为灵活可用,可以解决集群下单个节点过载和整个集群过载两种场景的扩容问题;再者,本专利技术在集群自动扩容方面,增加节点后,自主地根据每个节点的数据量进行数据迁移,使得数据量尽可能的平均分配,这样能够很好地平衡节点数据访问量,使得分布式存储系统整体性能达到最佳效果。附图说明为了更清楚地说明本专利技术实施例或本文档来自技高网...
【技术保护点】
一种分布式数据库集群的数据迁移方法,所述集群包括m个数据库节点,其特征在于,所述集群还包括n个分片,每个所述数据库节点负责存储一个或多个分片的数据,所述n大于m;所述方法包括:按设定的分配方式,将进入集群的数据分配到相应的分片上;当集群内需要数据迁移时,确定需要数据迁移的数据库节点;在确定的数据库节点管理的分片中,选择出需要迁出的分片;将选择出的分片的数据从原数据库节点迁移到指定的数据库节点。
【技术特征摘要】
1.一种分布式数据库集群的数据迁移方法,所述集群包括m个数据库节点,其特征在于,所述集群还包括n个分片,每个所述数据库节点负责存储一个或多个分片的数据,所述n大于m;所述方法包括:按设定的分配方式,将进入集群的数据分配到相应的分片上;当集群内需要数据迁移时,确定需要数据迁移的数据库节点;在确定的数据库节点管理的分片中,选择出需要迁出的分片;将选择出的分片的数据从原数据库节点迁移到指定的数据库节点。2.如权利要求1所述的方法,其特征在于,所述按设定的分配方式,将进入集群的数据分配到相应的分片上,包括:将进入集群的数据的键key通过哈希后对n取模;将所述数据分配到分片标识与取模后的值相同的分片上。3.如权利要求1所述的方法,其特征在于,当集群整体数据量过载,需要集群内数据迁移时,指定的数据库节点为新增的数据库节点;当集群内单数据库节点数据量过载,需要集群内数据迁移时,指定的数据库节点为集群内未发生数据量过载的数据库节点中的一个或多个。4.如权利要求3所述的方法,其特征在于,当集群整体数据量过载,需要集群内数据迁移时,所述确定需要数据迁移的数据库节点,包括:统计每个分片的数据量,根据每个分片的数据量得到各数据库节点所管理的分片的数据总量;求取每个数据库节点所管理的分片的数据总量的平均值,确定出数据总量超出所述平均值的数据库节点为需要数据迁移的数据库节点。5.如权利要求1所述的方法,其特征在于,所述方法还包括:当需要集群间数据迁移时,启动新集群内的主节点,并将新集群内的主节点设置为旧集群相应主节点的从节点;通过主从同步的方式,将旧集群中主节点的数据同步到所述新集群中的主节点;在新旧集群的主节点间同步完成后,启动新集群内的从节点,进行新集群内的主从节点的数据同步,并将旧集群的读写流量切换到新集群。6.如权利要求5所述的方法,其特征在于,所述新、旧集群内均划分有多个数据库节点组,每个数据库节点组内均设有主节点和从节点,且每个数据库节点组内的主节点负责本组内的数据同步。...
【专利技术属性】
技术研发人员:黄海,
申请(专利权)人:北京五八信息技术有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。