CN113704230A - 数据库扩容方法、装置、电子设备及计算机存储介质 - Google Patents
数据库扩容方法、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN113704230A CN113704230A CN202111027853.0A CN202111027853A CN113704230A CN 113704230 A CN113704230 A CN 113704230A CN 202111027853 A CN202111027853 A CN 202111027853A CN 113704230 A CN113704230 A CN 113704230A
- Authority
- CN
- China
- Prior art keywords
- sub
- new
- database
- old
- tables
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据库扩容方法、装置、电子设备及计算机存储介质,通过确定待扩容的数据库集群中所包含的旧数据库个数M和每一个所述旧数据库中所包含的S个旧分表,所述M和S的取值为大于等于1正整数;针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中,所述N的取值为大于等于2的正整数;集合所有新数据库,得到扩容后的数据库集群,所述扩容后的数据库集群包括N*M个新数据库。在本方案中,在分库分表的情况下保持总分表数不变,利用一个分段的分表数据构建一个新数据库,从而完成对数据库的扩容,实现通过简单步骤对数据库扩容、耗时少和数据迁移成本的目的。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据库扩容方法、装置、电子设备及计算机存储介质。
背景技术
随着针对存储资源和计算资源的技术不断发展,对于高速发展的中小型企业,可以通过不断地堆砌机器增加数据库集群的容量,为了应对不断增长的流量,也会通过对数据库集群的分库分表来进行数据库扩容。
但是,目前在数据库的分库分表环境里所采用的数据扩容方法,在数据量非常大的情况下执行扩容存在步骤复杂,数据迁移成本高和耗时长的问题。
发明内容
有鉴于此,本发明实施例提供一种数据库扩容方法、装置、电子设备及计算机存储介质,以解决现有数据库扩容方法步骤复杂,数据迁移成本高和耗时长的问题。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面公开了一种数据库扩容方法,所述方法包括:
确定待扩容的数据库集群中所包含的旧数据库个数M和每一个所述旧数据库中所包含的S个旧分表,所述M和S的取值为大于等于1正整数;
针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中,所述N的取值为大于等于2的正整数;
集合所有新数据库,得到扩容后的数据库集群,所述扩容后的数据库集群包括N*M个新数据库。
可选的,所述针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中,包括:
针对每一个所述旧数据库,利用mysql主从复制方式,将一个所述旧数据库复制为N个对应的新数据库,每一所述新数据库中包含S个旧分表;
将所述S个旧分表进行分段划分,得到N个新分表集群,每一个新分表集群中包括相同数量的新分表;
基于所述N个新分表集群依次确认N个新数据库中保留的旧分表的分表数据,并对所述旧分表进行重新编号。
可选的,所述基于所述N个新分表集群依次确认N个新数据库中保留的新分表的分表数据,并对所述旧分表进行重新编号,包括:
由第1个新分表集群起始,执行数据清洗,直至第N个新分表集群结束;
所述数据清洗包括:
基于当前的新分表集群中的新分表编号,保留对应的新数据库中一样编号的旧分表的分表数据,删除其他就分表的分表数据;
若所述当前的新分表集群非第1个新分表集群,则对对应的新数据库中保留的旧分表按照预设规则重新进行编号。
可选的,所述针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中,包括:
针对每一个所述旧数据库,将S个旧分表进行分段划分,得到N个新分表集群;
构建N个新数据库,将所述N个新分表集群的分表数据依次顺序迁移至对应的新数据库中。
可选的,所述构建N个新数据库,将所述N个新分表集群的分表数据依次顺序迁移至对应的新数据库中,包括:
构建N个新数据库,由第1个新分表集群起始,将新分表集群中的分表数据迁移至对应的新数据库,直至N个新分表集群中的分表数据迁移至对应的新数据库,每一新分表集群对应一个新数据库;
其中,在迁移第2个新分表集群起始,直至第N个新分表集群结束,对迁移至新数据库中的新分表按照预设规则重新进行编号。
本发明实施例第二方面公开了一种数据库扩容装置,所述装置包括:
确定模块,用于确定待扩容的数据库集群中所包含的旧数据库个数M和每一个所述旧数据库中所包含的S个旧分表,所述M和S的取值为大于等于1正整数;
扩容模块,用于针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中,所述N的取值为大于等于1的正整数;
集合模块,用于集合所有新数据库,得到扩容后的数据库集群,所述扩容后的数据库集群包括N*M个新数据库。
可选的,所述扩容模块,包括:
主从复制单元,用于针对每一个所述旧数据库,利用mysql主从复制方式,将一个所述旧数据库复制为N个对应的新数据库,每一所述新数据库中包含S个旧分表,将所述S个旧分表进行分段划分,得到N个新分表集群,每一个新分表集群中包括相同数量的新分表;
数据清洗单元,用于基于所述N个新分表集群依次确认N个新数据库中保留的旧分表的分表数据,并对所述旧分表进行重新编号。
可选的,所述扩容模块,包括:
划分单元,用于针对每一个所述旧数据库,将S个旧分表进行分段划分,得到2N个新分表集群;
数据迁移单元,用于构建N个新数据库,将所述N个新分表集群的分表数据依次顺序迁移至对应的新数据库中。
本发明实施例第三方面公开了一种电子设备,包括处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于调用并执行所述存储器中存储的计算机程序时,实现本发明实施例第一方面公开的数据库扩容方法。
本发明实施例第四方面公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现本发明实施例第一方面公开的数据库扩容方法。
上述本发明实施例提供的一种数据库扩容方法、装置、电子设备及计算机存储介质具体有如下优点或有益效果:通过确定待扩容的数据库集群中所包含的旧数据库个数M和每一个所述旧数据库中所包含的S个旧分表,所述M和S的取值为大于等于1正整数;针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中,所述N的取值为大于等于2的正整数;集合所有新数据库,得到扩容后的数据库集群,所述扩容后的数据库集群包括N*M个新数据库。在本方案中,在分库分表的情况下保持总分表数不变,利用一个分段的分表数据构建一个新数据库,从而完成对数据库的扩容,实现通过简单步骤对数据库扩容、耗时少和数据迁移成本的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种数据库扩容方法的流程示意图;
图2为本发明实施例提供的另一种数据库扩容方法的流程示意图;
图3为本发明实施例提供的一种适用数据库扩容方法进行数据库扩容的应用示例图;
图4为本发明实施例提供的针对一个旧数据库进行数据库扩容的应用示例图;
图5为本发明实施例提供的再一种数据库扩容方法的流程示意图;
图6为本发明实施例提供的一种数据库扩容装置的结构示意图;
图7为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,目前在数据库的分库分表环境里所采用的数据扩容方法,在数据量非常大的情况下执行扩容存在步骤复杂,数据迁移成本高和耗时长的问题。因此本发明实施例公开了一种在分库分表的情况下保持总分表数不变,通过简单步骤实现数据库扩容的数据库扩容方法,从而实现降低数据库扩容的耗时和降低数据迁移成本的目的。具体过程通过以下实施例进行详细说明。
如图1所示,为本发明实施例公开的一种数据库扩容方法的流程示意图,主要包括如下步骤:
S101:确定待扩容的数据库集群中所包含的旧数据库个数M和每一个所述旧数据库中所包含的S个旧分表。
在S101中,旧数据库的个数M和旧分表集群的个数S的取值均为大于等于1正整数。
通常情况下,待扩容的数据库集群中至少包含2个旧数据库,而每一个旧数据库中至少包含2个旧分表。也就是说,一个待扩容的数据库集群中至少包含2个旧数据库,总共4个旧分表。
在具体实现S101的过程中,通过确定待扩容的数据库集群中所包含的旧数据库个数和每个旧数据库中所包含的旧分表个数,可以确定后续需要处理的总的旧数据库个数M和总的旧分表个数M*S。
S102:针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中。
在S102中,N的取值为大于等于2的正整数。可选的,该N的取值可以由技术人员基于待扩容的容量进行设定,若所需的容量越大,则N的取值越大。
可选的,该N的取值与待划分的旧分表的总个数有关,通常N的取值为旧分表数可以整除的值。
在具体实现S102的过程中,针对每一个旧数据库,以N倍数的方式对旧数据库进行扩容,得到N个新数据库,并将旧数据库中的S个旧分表中的旧分表基于N倍数进行分段划分,得到N个新分表集群,每个新分表集群中至少包含S/N个旧分表,即每个新分表集群中至少包含S/N个旧分表的分表数据。
需要说明的是,若旧分表无法进行均分,则在划分的时候优先使先划分出来的新分表集群中的分表数满足均分的个数。
通过执行S102可以在保持总分表数不变的情况下,实现数据库扩容。
S103:集合所有新数据库,得到扩容后的数据库集群。
在具体实现S103的过程中,通过集合的方式,将每一个所述旧数据库扩容后得到的新数据库进行集合,得到扩容后的数据库集群。
以上述为例,扩容后的数据库集群包括N*M个新数据库,而总表数仍然是M*S。
基于本发明实施例公开的数据库扩容方法,通过确定待扩容的数据库集群中所包含的旧数据库个数M和每一个所述旧数据库中所包含的S个旧分表;针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中;集合所有新数据库,得到扩容后的数据库集群,所述扩容后的数据库集群包括N*M个新数据库。在本方案中,在分库分表的情况下保持总分表数不变,利用一个分段的分表数据构建一个新数据库,从而完成对数据库的扩容,实现通过简单步骤对数据库扩容、耗时少和数据迁移成本的目的。
基于上述本发明实施例公开的数据库扩容方法,本发明实施例还公开了另一种数据库扩容方法,如图2所示,主要包括如下步骤:
S201:确定待扩容的数据库集群中所包含的旧数据库个数M和每一个所述旧数据库中所包含的S个旧分表集群。
S201的实现原理与图1公开的S101一致,可具体参见上述对S101的说明。
S202:针对每一个所述旧数据库,利用mysql主从复制方式,将一个所述旧数据库复制为N个对应的新数据库。
在S202中,每一所述新数据库中包含S个旧分表。
mysql主从复制方式是指建立一个和主数据库完全一样的数据库环境,称为从数据库。
S203:将所述S个旧分表进行分段划分,得到N个新分表集群。
在S203中,每一个新分表集群中包括相同数量的新分表。具体的,每个新分表集群中包括S/N个旧分表。
需要说明的是,若旧分表无法进行均分,则在划分的时候优先使先划分出来的新分表集群中的新分表数满足均分的个数。
S204:基于所述N个新分表集群依次确认N个新数据库中保留的旧分表的分表数据,并对所述旧分表进行重新编号。
在具体实现S203的过程中,由第1个新分表集群起始,执行数据清洗,直至第N个新分表集群结束。
具体的,数据清洗的执行过程包括:
首先,基于当前的新分表集群中的新分表编号,保留对应的新数据库中一样编号的旧分表的分表数据,删除其他就分表的分表数据。
需要说明的是,若所述当前的新分表集群非第1个新分表集群,则对对应的新数据库中保留的旧分表按照预设规则重新进行编号。
可选的,该预设规则为参照第1个新分表集群中的分表编号重新进行编号。例如第1个新分表集群中的分表编号由000起始,则其他新分表集群中的分表编号也由000起始开始对保留的分表进行编号。
S205:集合所有新数据库,得到扩容后的数据库集群。
基于上述实施例举例说明,如图3所示,为本发明实施例公开的适用数据库扩容方法进行数据库扩容的应用示例图。
其中,该旧数据库集群中包含6个旧数据库,每个旧数据库中包含200个旧分表,该旧数据库集群总共包含1200个旧分表。
确认将每个旧数据库扩容4倍,即1个旧数据库要扩容为4个新数据库,总共扩容得到24个新数据库,但总分表数不变。以一个旧数据库为例,如图4所示:
首先,利用mysql主从复制方式,将一个旧数据库复制为4个对应的新数据库,同时,分别将200个旧分表也同步复制于新数据库中,也就是说,每个新数据库中包含200个旧分表。
其次,按照分表和扩容的倍数将200个旧分表划均分为4等分。
如图4所示,利用分表编号表示为:0000~0049、0050~0099、0100~0149和0150~0199,共4个分段旧数据表。
其次,基于当前的新分表集群中的新分表编号,保留对应的新数据库中一样编号的旧分表的分表数据,删除其他就分表的分表数据。
也就是说,新1库中保留0000~0049编号的分表数据,删除0050~0199编号的分表数据。
新2库中保留0050~0099编号的分表数据,并重新编号为0000~0049,删除0000~0049和0100~0199编号的分表数据。
新3库中保留0100~0149编号的分表数据,并重新编号为0000~0049,删除0000~0099和0150~0199编号的分表数据。
新4库中保留0150~0199编号的分表数据,并重新编号为0000~0049,删除0000~0149编号的分表数据。
最终得到24个新数据库,总共1200个新分表。该1200个新分表中的分表数据与旧分表中的分表数据一致。
通过上述对数据库进行扩容的方式,在数据安全性、数据准确性、数据一致性都能够得到可靠的保证,且整体数据迁移的时间取决由搭建mysql主从复制及数据量来决定,相对于现有技术迁移数据中使用重新洗数更为简单、快速、耗时少,且在数据验证工作上无需使用太多的数据验证,也进一步降低了数据验证的工作量。
基于本发明实施例公开的数据库扩容方法,在分库分表的情况下保持总分表数不变,利用一个分段的分表数据构建一个新数据库,从而完成对数据库的扩容,实现通过简单步骤对数据库扩容、耗时少和数据迁移成本的目的。
基于上述本发明实施例公开的数据库扩容方法,本发明实施例还公开了再一种数据库扩容方法,如图5所示,主要包括如下步骤:
S501:确定待扩容的数据库集群中所包含的旧数据库个数M和每一个所述旧数据库中所包含的S个旧分表集群。
S501的实现原理与图1公开的S101一致,可具体参见上述对S101的说明。
S502:针对每一个所述旧数据库,将S个旧分表集群进行分段划分,得到N个新分表集群。
S503:构建N个新数据库,将所述N个新分表集群的分表数据依次顺序迁移至对应的新数据库中。
在具体实现S503的过程中,构建N个新数据库,由第1个新分表集群起始,将新分表集群中的分表数据迁移至对应的新数据库,直至N个新分表集群中的分表数据迁移至对应的新数据库,每一新分表集群对应一个新数据库;
其中,在迁移第2个新分表集群起始,直至第N个新分表集群结束,对迁移至新数据库中的新分表按照预设规则重新进行编号。
可选的,该预设规则为参照第1个新分表集群中的分表编号重新进行编号。例如第1个新分表集群中的分表编号由0000起始,则其他新分表集群中的分表编号也由0000起始开始对保留的分表进行编号。
S504:集合所有新数据库,得到扩容后的数据库集群。
基于本发明实施例公开的数据库扩容方法,在分库分表的情况下保持总分表数不变,利用一个分段的分表数据构建一个新数据库,从而完成对数据库的扩容,实现通过简单步骤对数据库扩容、耗时少和数据迁移成本的目的。
基于上述本发明实施例公开的数据库扩容方法,本发明实施例还对应公开了一种数据库扩容装置,如图6所示,该数据库扩容装置具体包括:
确定模块601,用于确定待扩容的数据库集群中所包含的旧数据库个数M和每一个所述旧数据库中所包含的S个旧分表,所述M和S的取值为大于等于1正整数。
扩容模块602,用于针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中,所述N的取值为大于等于2的正整数。
可选的,该所述扩容模块602,主要包括:
主从复制单元,用于针对每一个所述旧数据库,利用mysql主从复制方式,将一个所述旧数据库复制为N个对应的新数据库,每一所述新数据库中包含S个旧分表,将所述S个旧分表进行分段划分,得到N个新分表集群,每一个新分表集群中包括相同数量的新分表。
数据清洗单元,用于基于所述N个新分表集群依次确认N个新数据库中保留的旧分表的分表数据,并对所述旧分表进行重新编号。
可选的,该数据清洗单元,具体用于由第1个新分表集群起始,执行数据清洗,直至第N个新分表集群结束。
所述数据清洗包括:
基于当前的新分表集群中的新分表编号,保留对应的新数据库中一样编号的旧分表的分表数据,删除其他就分表的分表数据,若所述当前的新分表集群非第1个新分表集群,则对对应的新数据库中保留的旧分表按照预设规则重新进行编号。
可选的,该所述扩容模块602,主要包括:
划分单元,用于针对每一个所述旧数据库,将S个旧分表进行分段划分,得到N个新分表集群。
数据迁移单元,用于构建N个新数据库,将所述N个新分表集群的分表数据依次顺序迁移至对应的新数据库中。
可选的,该数据迁移单元,具体用于构建N个新数据库,由第1个新分表集群起始,将新分表集群中的分表数据迁移至对应的新数据库,直至N个新分表集群中的分表数据迁移至对应的新数据库,每一新分表集群对应一个新数据库。
其中,在迁移第2个新分表集群起始,直至第N个新分表集群结束,对迁移至新数据库中的新分表按照预设规则重新进行编号。
集合模块603,用于集合所有新数据库,得到扩容后的数据库集群,所述扩容后的数据库集群包括N*M个新数据库。
基于本发明实施例公开的数据库扩容装置,通过确定模块确定待扩容的数据库集群中所包含的旧数据库个数M和每一个所述旧数据库中所包含的S个旧分表;利用扩容模块针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中;最后由集合模块集合所有新数据库,得到扩容后的数据库集群,所述扩容后的数据库集群包括N*M个新数据库。在本方案中,在分库分表的情况下保持总分表数不变,利用一个分段的分表数据构建一个新数据库,从而完成对数据库的扩容,实现通过简单步骤对数据库扩容、耗时少和数据迁移成本的目的。
基于上述本公开实施例公开的数据库扩容装置,上述各个模块可以通过一种由处理器和存储器构成的硬件设备实现。具体为上述各个模块作为程序单元存储于存储器中,由处理器执行存储在存储器中的上述程序单元来实现线程控制。
其中,处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现数据库扩容。
本公开实施例提供了一种计算机存储介质,存储介质包括数据库扩容程序,其中,程序被处理器执行时实现前述本发明实施例公开的数据库扩容方法。
本公开实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述实施例公开的数据库扩容方法。
本公开实施例提供了一种电子设备,如图7所示,为本公开实施例提供的一种电子设备的结构示意图。
本公开实施例中的电子设备70可以是服务器、PC、PAD、手机等。
该电子设备70包括至少一个处理器701,以及与处理器连接的至少一个存储器702,以及总线703。
处理器701、存储器702通过总线703完成相互间的通信。
处理器701,用于执行存储器中存储的程序。
存储器702,用于存储程序,该程序至少用于:确定待扩容的数据库集群中所包含的旧数据库个数M和每一个所述旧数据库中所包含的S个旧分表,所述M和S的取值为大于等于1正整数;针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中,所述N的取值为大于等于2的正整数;集合所有新数据库,得到扩容后的数据库集群,所述扩容后的数据库集群包括N*M个新数据库。
本申请还提供了一种计算机程序产品,当在电子设备上执行时,适于执行初始化有如下方法步骤的程序:
确定待扩容的数据库集群中所包含的旧数据库个数M和每一个所述旧数据库中所包含的S个旧分表,所述M和S的取值为大于等于1正整数;针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中,所述N的取值为大于等于1的正整数;集合所有新数据库,得到扩容后的数据库集群,所述扩容后的数据库集群包括N*M个新数据库。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本公开。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据库扩容方法,其特征在于,所述方法包括:
确定待扩容的数据库集群中所包含的旧数据库个数M和每一个所述旧数据库中所包含的S个旧分表,所述M和S的取值为大于等于1正整数;
针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中,所述N的取值为大于等于2的正整数;
集合所有新数据库,得到扩容后的数据库集群,所述扩容后的数据库集群包括N*M个新数据库。
2.根据权利要求1所述的方法,其特征在于,所述针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中,包括:
针对每一个所述旧数据库,利用mysql主从复制方式,将一个所述旧数据库复制为N个对应的新数据库,每一所述新数据库中包含S个旧分表;
将所述S个旧分表进行分段划分,得到N个新分表集群,每一个新分表集群中包括相同数量的新分表;
基于所述N个新分表集群依次确认N个新数据库中保留的旧分表的分表数据,并对所述旧分表进行重新编号。
3.根据权利要求2所述的方法,其特征在于,所述基于所述N个新分表集群依次确认N个新数据库中保留的新分表的分表数据,并对所述旧分表进行重新编号,包括:
由第1个新分表集群起始,执行数据清洗,直至第N个新分表集群结束;
所述数据清洗包括:
基于当前的新分表集群中的新分表编号,保留对应的新数据库中一样编号的旧分表的分表数据,删除其他就分表的分表数据;
若所述当前的新分表集群非第1个新分表集群,则对对应的新数据库中保留的旧分表按照预设规则重新进行编号。
4.根据权利要求1所述的方法,其特征在于,所述针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中,包括:
针对每一个所述旧数据库,将S个旧分表进行分段划分,得到N个新分表集群;
构建N个新数据库,将所述N个新分表集群的分表数据依次顺序迁移至对应的新数据库中。
5.根据权利要求4所述的方法,其特征在于,所述构建N个新数据库,将所述N个新分表集群的分表数据依次顺序迁移至对应的新数据库中,包括:
构建N个新数据库,由第1个新分表集群起始,将新分表集群中的分表数据迁移至对应的新数据库,直至N个新分表集群中的分表数据迁移至对应的新数据库,每一新分表集群对应一个新数据库;
其中,在迁移第2个新分表集群起始,直至第N个新分表集群结束,对迁移至新数据库中的新分表按照预设规则重新进行编号。
6.一种数据库扩容装置,其特征在于,所述装置包括:
确定模块,用于确定待扩容的数据库集群中所包含的旧数据库个数M和每一个所述旧数据库中所包含的S个旧分表,所述M和S的取值为大于等于1正整数;
扩容模块,用于针对每一个所述旧数据库,将所述旧数据库中的S个旧分表中的分表数据分段迁移至N个新数据库中,所述N的取值为大于等于1的正整数;
集合模块,用于集合所有新数据库,得到扩容后的数据库集群,所述扩容后的数据库集群包括N*M个新数据库。
7.根据权利要求6所述的装置,其特征在于,所述扩容模块,包括:
主从复制单元,用于针对每一个所述旧数据库,利用mysql主从复制方式,将一个所述旧数据库复制为N个对应的新数据库,每一所述新数据库中包含S个旧分表,将所述S个旧分表进行分段划分,得到N个新分表集群,每一个新分表集群中包括相同数量的新分表;
数据清洗单元,用于基于所述2N个新分表集群依次确认N个新数据库中保留的旧分表的分表数据,并对所述旧分表进行重新编号。
8.根据权利要求6所述的装置,其特征在于,所述扩容模块,包括:
划分单元,用于针对每一个所述旧数据库,将S个旧分表进行分段划分,得到N个新分表集群;
数据迁移单元,用于构建N个新数据库,将所述N个新分表集群的分表数据依次顺序迁移至对应的新数据库中。
9.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于调用并执行所述存储器中存储的计算机程序时,实现如权利要求1至5中任一项所述的数据库扩容方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至5中任一项所述的数据库扩容方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111027853.0A CN113704230A (zh) | 2021-09-02 | 2021-09-02 | 数据库扩容方法、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111027853.0A CN113704230A (zh) | 2021-09-02 | 2021-09-02 | 数据库扩容方法、装置、电子设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113704230A true CN113704230A (zh) | 2021-11-26 |
Family
ID=78658911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111027853.0A Pending CN113704230A (zh) | 2021-09-02 | 2021-09-02 | 数据库扩容方法、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704230A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106407308A (zh) * | 2016-08-31 | 2017-02-15 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库的扩容方法及装置 |
CN106844510A (zh) * | 2016-12-28 | 2017-06-13 | 北京五八信息技术有限公司 | 一种分布式数据库集群的数据迁移方法和装置 |
CN110222030A (zh) * | 2019-05-13 | 2019-09-10 | 福建天泉教育科技有限公司 | 数据库动态扩容的方法、存储介质 |
CN111159296A (zh) * | 2019-12-30 | 2020-05-15 | 深圳市网心科技有限公司 | 一种存储扩容方法、装置、设备及可读存储介质 |
-
2021
- 2021-09-02 CN CN202111027853.0A patent/CN113704230A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106407308A (zh) * | 2016-08-31 | 2017-02-15 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库的扩容方法及装置 |
CN106844510A (zh) * | 2016-12-28 | 2017-06-13 | 北京五八信息技术有限公司 | 一种分布式数据库集群的数据迁移方法和装置 |
CN110222030A (zh) * | 2019-05-13 | 2019-09-10 | 福建天泉教育科技有限公司 | 数据库动态扩容的方法、存储介质 |
CN111159296A (zh) * | 2019-12-30 | 2020-05-15 | 深圳市网心科技有限公司 | 一种存储扩容方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106933823B (zh) | 数据同步方法及装置 | |
CN107968810B (zh) | 一种服务器集群的资源调度方法、装置和系统 | |
US9009273B2 (en) | Address server | |
CN104869140B (zh) | 多集群系统和控制多集群系统的数据存储的方法 | |
CN110018878B (zh) | 一种分布式系统数据加载方法以及装置 | |
CN106897342B (zh) | 一种数据校验方法和设备 | |
CN109343793B (zh) | 数据迁移方法及装置 | |
CN109033365B (zh) | 一种数据处理方法及相关设备 | |
CN110737717B (zh) | 一种数据库迁移方法及装置 | |
CN115114232A (zh) | 一种历史版本对象列举方法、装置及其介质 | |
CN111679860A (zh) | 分布式信息处理方法及装置 | |
CN110688067A (zh) | 一种存储系统的分层方法、装置、设备及介质 | |
US10896056B2 (en) | Cluster expansion method and apparatus, electronic device and storage medium | |
CN113704230A (zh) | 数据库扩容方法、装置、电子设备及计算机存储介质 | |
CN109710698B (zh) | 一种数据汇聚方法、装置、电子设备及介质 | |
CN107102898B (zh) | 一种基于numa架构的内存管理、构建数据结构的方法及装置 | |
CN110059075B (zh) | 一种数据库迁移的方法、装置、设备及计算机可读介质 | |
CN105260323B (zh) | 一种存储虚拟化数据处理方法以及装置 | |
CN110020288A (zh) | 一种页面刷新方法及装置 | |
CN109101514A (zh) | 数据导入方法及装置 | |
CN110008178B (zh) | 分布式文件系统元数据的组织方法及装置 | |
CN109241027B (zh) | 数据迁移的方法、装置、电子设备及计算机可读存储介质 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
CN108459828B (zh) | 一种桌面云云磁盘重新分配方法 | |
CN110019507B (zh) | 数据同步的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |