【技术实现步骤摘要】
MySQL集群在线扩容方法、装置、设备及存储介质
[0001]本专利技术涉及数据库处理领域,尤其涉及一种MySQL集群在线扩容方法、装置、设备及存储介质。
技术介绍
[0002]MySQL作为性能卓越的单体数据库被广泛应用与各种业务。而随着数据量的不断增大,单体数据库已不再满足业务需求,一种可行的方案是由多个MySQL数据库组成一个MySQL集群,并通过水平分表的方式将一个表的数据拆分到多个表,以此来突破单个MySQL数据库的限制。Share
‑
Nothing分布式数据库一般采用这种架构,存储层由多个MySQL单体数据库节点组成节点集群,上层通过水平分表的方式将一个表的数据按照一定的规则(通常采用hash算法)分布到集群上。
[0003]随着业务的增长,现有集群规模可能不足以支撑业务的需要,单个表的数据量过大,导致计算性能降低。这时候就需要对集群进行扩展,将表数据水平的分布到更多的节点上,减少单个表的数据量,提升计算性能。
[0004]在进行水平扩容的过程中,如何尽量减少对业务的影响,并保证数据不丢失就至关重要。因此需要一种简单、高效的在线水平扩容方案,实现扩容过程对业务透明化,同时保证数据不丢失。
技术实现思路
[0005]本专利技术的主要目的在于解决数据集群在线扩容时会对业务的产生巨大影响的技术问题。
[0006]本专利技术第一方面提供了一种MySQL集群在线扩容方法,包括步骤:
[0007]获取所述MySQL集群在线扩容至N个节点的扩容指令,其中 ...
【技术保护点】
【技术特征摘要】
1.一种MySQL集群在线扩容方法,所述MySQL集群初始为M个节点,M为正整数,其特征在于,包括步骤:获取所述MySQL集群在线扩容至N个节点的扩容指令,其中N为大于M的正整数;读取所述M个节点中每个节点管理的数据量,计算出所述M个节点对应的数据总量;根据所述数据总量,计算出所述N个节点中每个节点管理的目标数据量;根据N个所述目标数据量,对所述M个节点进行数据迁移处理,将所述M个节点扩展至所述N个节点。2.根据权利要求1所述的MySQL集群在线扩容方法,其特征在于,所述读取所述M个节点中每个节点管理的数据量,计算出所述M个节点对应的数据总量包括:基于预置hash函数对所述M个节点中每个节点的每行数据进行hash值计算,得到所述M个节点对应的hash值集;统计所述hash值集中的hash值数量,得到hash值总数,以及将所述hash值总数确定为所述M个节点对应的数据总量。3.根据权利要求1所述的MySQL集群在线扩容方法,其特征在于,所述读取所述M个节点中每个节点管理的数据量,计算出所述M个节点对应的数据总量还包括:基于预置hash函数对所述M个节点中每个节点的每行数据进行hash值计算,得到所述M个节点对应的hash值集;根据所述hash值集中每个hash值,生成每个所述hash值对应的数据名称,并将每个数据名称与所述数据名称对应的hash值进行合并,生成hash值名称集;统计所述hash值名称集中的hash值数量,得到hash值总数,以及将所述hash值总数确定为所述M个节点对应的数据总量。4.根据权利要求3所述的MySQL集群在线扩容方法,其特征在于,所述根据所述数据总量,计算出所述N个节点中每个节点管理的目标数据量包括:将所述N个节点的节点数量确定为取余值;根据所述取余值,对所述hash值名称集进行取余处理,得到N个取余hash值名称集;依次统计N个取余hash值名称集中对应的取余数量,并将N个所述取余数量确定为所述N个节点中每个节点管理的目标数据量。5.根据权利要求4所述的MySQL集群在线扩容方法,其特征在于,所述根据N个所述目标数据量,对所述M个节点进行数据迁移处理,将所述M个节点扩展至所述N个节点包括:计算所述N个节点与所述M个节点之间的节点数量差值;创建所述节点数量差值的新节点,并修改所述M个节点和N
‑
M个所述新节点的节点名称;根据所述N个节点中每个节点管理的目标数据量,将所述M个节点每个节点中超过所述目标数据量的数据移动到N
‑
M个所述新节点中,直至满足所述N个节点中每个节点...
【专利技术属性】
技术研发人员:黄李强,熊志强,
申请(专利权)人:深圳市汉云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。