一种数据库扩容方法、装置和存储设备与流程

未命名 07-22 阅读:101 评论:0


1.本技术涉及数据存储技术领域,尤其涉及一种数据库扩容方法、装置和存储设备。


背景技术:

2.随着互联网技术的快速发展,数据库的数据量也在迅速增加,访问性能也在下降。目前,常通过数据库拆分技术解决性能问题。
3.近年来,一般采用分库分表的方式实现数据库的拆分。但是,在进行分库分表后,后期在对数据库进行扩容时,需要对扩容前的数据进行重新分片,并停机对扩容前的数据进行迁移,运维成本较高。


技术实现要素:

4.有鉴于此,本技术提供一种数据库扩容方法、装置和存储设备,以降低数据库扩容的运维成本。
5.本技术第一方面提供一种数据库扩容方法,所述应用于存储设备,所述存储设备上搭建有至少一个数据库集群,所述方法包括:
6.创建一个第一数据库集群;其中,所述第一数据库集群与所述至少一个数据库集群中的第一目标数据库集群一致;
7.为所述第一数据库集群配置第一哈希映射关系,以使所述第一哈希映射关系与所述第一目标数据库集群的第一目标哈希映射关系相同;其中,所述哈希映射关系表征哈希区域和集群标识的对应关系;
8.控制所述第一目标数据库集群处于下线状态,并控制所述第一数据库集群处于上线状态,以依据所述第一哈希映射关系将待写入数据写入到所述第一数据库集群。
9.本技术第二方面提供一种数据库扩容装置,所述装置应用于存储设备,所述存储设备上搭建有至少一个数据库集群,所述装置包括创建模块、配置模块和处理模块;其中,
10.所述创建模块,用于创建一个第一数据库集群;其中,所述第一数据库集群与所述至少一个数据库集群中的第一目标数据库集群的一致;
11.所述配置模块,用于为所述第一数据库集群配置第一映射关系,以使所述第一映射关系与所述第一目标数据库集群的第一目标映射关系相同;其中,所述映射关系表征存储区间和集群标识的对应关系;
12.所述处理模块,用于控制所述第一目标数据库集群处于下线状态,并控制所述第一数据库集群处于上线状态,以依据所述第一映射关系将待写入数据写入到所述第一数据库集群。
13.本技术第三方面提供一种存储设备,所述存储设备包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本技术第一方面提供的任一项所述方法的步骤。
14.本技术第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述程
序被处理器执行时实现本技术第一方面提供的任一项所述方法的步骤。
15.本技术提供的数据库扩容方法、装置和存储设备,在所述存储设备的存储空间增加时,通过创建一个与存储设备上已搭建的目标数据库集群一致的第一数据库集群,进而为所述第一数据库集群配置与所述目标数据库集群一致的第一哈希映射关系,从而控制所述第一目标数据库集群处于下线状态,并控制所述第一数据库集群处于上线状态。这样,后续即可依据所述第一哈希映射关系将待写入数据写入到所述第一数据库集群。这样,在存储设备增加存储空间后,可在数据不迁移、也不改变分库分表规则的情况下,实现扩容,运维成本较低。
附图说明
16.图1为本技术提供的数据库扩容方法实施例一的流程图;
17.图2为本技术提供的数据库扩容方法实施例二的流程图;
18.图3为本技术提供的数据库扩容方法实施例三的流程图;
19.图4为本技术一示例性实施例示出的数据库扩容方法的流程图;
20.图5为本技术一示例性实施例示出的数据库扩容装置所在存储设备的硬件结构图;
21.图6为本技术提供的数据库扩容装置实施例一的结构示意图。
具体实施方式
22.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
23.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
24.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
25.本技术提供一种数据库扩容方法,装置和存储设备,以降低数据库扩容的运维成本。
26.本技术提供的数据库扩容方法和装置,应用于存储设备,所述存储设备上搭建有至少一个数据库集群。本技术提供的提供的数据库扩容方法和装置,通过创建一个与存储设备上已搭建的目标数据库集群一致的第一数据库集群,进而为所述第一数据库集群配置与所述目标数据库集群一致的第一哈希映射关系,从而控制所述第一目标数据库集群处于下线状态,并控制所述第一数据库集群处于上线状态。这样,后续即可依据所述第一哈希映
射关系将待写入数据写入到所述第一数据库集群。这样,在存储设备增加存储空间后,可在数据不迁移、也不改变分库分表规则的情况下,实现扩容,运维成本较低。
27.下面给出几个具体的实施例,用以详细介绍本技术的技术方案,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
28.图1为本技术提供的数据库扩容方法实施例一的流程图。本实施例提供的方法应用于存储设备,存储设备上搭建有至少一个数据库集群,请参照图1,本实施例提供的方法,可以包括:
29.s101、创建一个第一数据库集群;其中,所述第一数据库集群与所述至少一个数据库集群中的第一目标数据库集群一致。
30.具体的,在存储设备的存储空间增加时,可采用本实施例提供的方法进行动态扩容。
31.需要说明的是,存储设备上搭建有至少一个数据库集群,例如,在一可能的实现方式中,存储设备上搭建有两个数据库集群,分别为数据库集群a和数据库集群b,相应的,这两个数据库集群的bdid集群标识可以为10和20。进一步的,预先搭建好的数据库集群可以是按照分库分表的方式搭建好的。例如,表1示出存储设备上已搭建的数据库集群,参见表1,在表1所述示例中,集群a中包含2个库,每个库中包括3个表,集群b中包括3个库,每个库包含2张表。
32.表1存储设备上已搭建的数据库集群
33.34.具体的,第一目标数据库集群可以是存储设备上的任一个数据库集群,本实施例中,不对此进行限定。例如,在一可能的实现方式中,第一目标数据库集群可以是存储设备上占用存储空间最大的数据库集群;再例如,在另一可能的实现方式中,第一目标数据库集群可以是存储设备上性能最差的数据库集群。
35.进一步地,两个数据库集群一致指的是这两个数据库集群包含的库的数量一致、每个库中包含的表的数量一致、且这两个数据库集群中的分库分表数据一致(即对应库的对应表中存储的数据一致)。
36.结合上面的例子,例如,在一可能的实现方式中,将集群b作为第一目标数据库,本步骤中,就创建一个和集群b一致的第一数据库集群(例如,将第一数据库集群记为集群c),此时,集群c中也包括3个库,每个库包含2个表,且集群c与集群b对应库的对应表中存储的数据相同。例如,集群c中的第一个库中的第一个表中存储的数据与集群b的第一个库中的第一表中存储的数据相同。
37.进一步地,在一种可能的实现方式中,创建一个数据库集群的步骤,可以包括:对至少一个数据库集群中的目标数据库集群执行复制操作,基于所述复制操作创建一个与所述目标数据库集群一致的数据库集群。
38.此外,在本技术另一个可能的实现方式中,该步骤的具体实现过程,可以包括:建立一个空白的空白数据库集群,并将所述至少一个数据库集群中的目标数据库集群中的数据同步到所述空白数据库集群中,以得到与所述目标数据库集群的一致的数据库集群。
39.具体实现时,结合上面的例子,例如,在一种可能的实现方式中,针对数据库集群b,建立一个空白的空白数据库集群,记为集群b0,并首先为集群b0配置与集群b一样的哈希映射关系和分库分表规则,进一步地,将集群b的历史数据同步到集群b0,同时,针对集群b0,开始双写模式(即同时写入集群b的数据和接收到的新数据),进一步地,对集群b0进行跳号设置,跳号值依据业务请求量确定。
40.进一步地,在两个集群通过一致性校验后,认为创建任务完成,此时,集群b0即为与集群b一致的新集群。
41.s102、为所述第一数据库集群配置第一哈希映射关系,以使所述第一哈希映射关系与所述第一目标数据库集群的第一目标哈希映射关系相同;其中,所述哈希映射关系表征哈希区域和集群标识的对应关系。
42.为详细介绍本步骤的具体实现过程和实现原理,下面先对哈希映射关系做详细的介绍:
43.需要说明的是,待写入的数据依据哈希映射关系写入对应的数据库集群。换言之,通过哈希映射关系,可以确定一条待写入的数据要写到那个集群上。
44.具体的,哈希映射关系表征哈希区域和集群标识的对应关系。哈希区域可以是哈希区间(哈希值构成的区间),也可以是由至少一个哈希值组成的哈希值集合。本实施例中,不对此进行限定,下面以哈希区域为哈希区间为例进行说明,结合上面的例子,例如,针对集群a和集群b,表2为其对应的哈希映射关系:
45.表2集群对应的哈希映射关系
46.集群名称哈希映射关系集群a[0-1000)对应集群a
集群b[1000-2000]对应集群b
[0047]
需要说明的是,每一条数据都会通过预设哈希运算(预设哈希运算是根据实际需要设定的,本实施例中,不对此进行限定)得到一个对应的数字,该数字即为该数据的哈希值。存储设备上的所有集群对应的哈希映射关系中的哈希区域的并集构成哈希环,即任意待写入的数据通过上述预设哈希运算后,得到的数字必然处于该哈希环内。
[0048]
结合上面的例子,例如,哈希环为0-2000时,每一条数据都会通过预设哈希运算得到一个处于0-2000的数字。结合表2所示示例,当一条数据通过预设哈希运算得到的哈希结果值为50时,此时,该数据应存储集群a;再例如,当一条数据通过预设哈希运算得到的哈希结果值为1005时,此时,该数据应存储到集群b。
[0049]
进一步的,在一种可能的实现方式中,预设哈希算法是对统一编码的数据进行hash取模,其中,hash取模的取模值是根据实际需要设定的(例如,可依据集群数和所有分库、分表的数量来确定),本实施例中,不对该取模值进行限定。例如,一可能的实现方式中,取模值可以为1000-10000中的任意值。
[0050]
此外,哈希环的具体确定原理和确定过程可以参见相关技术中的描述,此处不在赘述。
[0051]
下面介绍本步骤的实现过程:
[0052]
具体的,为第一数据库集群配置与第一目标数据库集群相同的哈希映射关系,例如,结合上面的例子,本步骤中,针对集群c,为其配置的哈希映射关系为[1000-2000]对应集群c。
[0053]
s103、控制所述第一目标数据库集群处于下线状态,并控制所述第一数据库集群处于上线状态,以依据所述第一哈希映射关系将待写入数据写入到所述第一数据库集群。
[0054]
需要说明的是,数据库集群只有在处于上线状态时,才能写入数据。相应的,当数据库集群处于下线状态时,不能写入数据。
[0055]
本步骤中,在为第一数据库集群配置好第一哈希映射关系后,此处,就将第一目标数据库集群下线状态,让第一数据库集群上线。这样,后续要写入数据后,不能写入第一目标数据库集群,而是依据所述第一哈希映射关系写入到第一数据库集群。
[0056]
本实施例提供的数据库扩容方法,通过创建一个与存储设备上已搭建的目标数据库集群一致的第一数据库集群,进而为所述第一数据库集群配置与所述目标数据库集群一致的第一哈希映射关系,从而控制所述第一目标数据库集群处于下线状态,并控制所述第一数据库集群处于上线状态。这样,后续即可依据所述第一哈希映射关系将待写入数据写入到所述第一数据库集群。这样,在存储设备增加存储空间后,可在数据不迁移、也不改变分库分表规则的情况下,实现扩容,运维成本较低。
[0057]
图2为本技术提供的数据库扩容方法实施例二的流程图。请参照图2,本实施例提供的数据库扩容方法,可以包括:
[0058]
s201、创建一个第二数据库集群;其中,所述第二数据库集群与所述至少一个数据库集群中的第二目标数据库集群的一致。
[0059]
具体的,该步骤的具体实现过程和实现原理可以参见步骤s101的描述,此处不再赘述。
[0060]
需要说明的是,第一数据库集群和第二数据库集群可以是同一个数据库集群,也
可以是不同的数据库集群,本实施例中,不对此进行限定。
[0061]
例如,一实施例中,第二目标数据库集群为集群a,创建好的第二数据库集群为集群d。
[0062]
s202、依据所述第二目标数据库集群的原始哈希映射关系,为所述第二数据库集群配置第二哈希映射关系,并将所述目标数据库集群的原始哈希映射关系更新为更新哈希映射关系,以使所述第二哈希映射关系中的哈希区域和所述更新哈希映射关系中的哈希区域的并集与所述原始哈希映射关系中的哈希区域相同。
[0063]
具体的,本步骤中,可将原始哈希映射关系中的哈希区域拆分为两部分,其中一部分作为第二哈希映射关系的哈希区域,另一部分作为更新映射关系的哈希区域。
[0064]
本实施例中,不对具体的拆分方法进行限定。例如,在一可能的实现方式中,在哈希区域为区间时,可将哈希区间拆分为四个连续的子区间,其中,第一子区间和第三子区间为第二哈希映射关系的哈希区域,第二子区间和第四子区间为更新映射关系的哈希区域。
[0065]
下面给出几个具体的例子,用以详细说明本步骤的具体实现过程。例如,结合上面的例子,集群a的哈希区域为[01000),此时,可将其拆分为[0250)、[250-500)、[500750)、[750-1000],此时,可将作为[0250)、[500750)作为第二哈希映射关系的哈希区域,将[250-500)、[750-1000]作为更新哈希映射关系的哈希区域。相应的,此时,第二哈希映射关系为[0250)、[500750)对应第二数据库集群,更新哈希映射关系为[250-500)、[750-1000]对应第二目标数据库集群,换言之,[0250)、[500750)对应集群d,[250-500)、[750-1000]对应集群a。
[0066]
s203、依据所述第二哈希映射关系和所述更新哈希映射关系进行数据写入。
[0067]
具体的,接收到待写入数据后,先依据预设哈希算法计算出该数据的哈希值,进而查找和该哈希值匹配的哈希映射关系,从而将查找到的哈希映射关系中的集群标识对应的集群确定为待写入的集群,进而将该待写入数据写入到该集群。
[0068]
需要说明的是,待写入数据依据分库分表写入对应集群中的库和表,有关分库分表的具体实现原理和实现过程可以参见相关技术中的描述,此处不在赘述。
[0069]
本实施例提供的数据库扩容方法,通过创建一个与预先建立的数据库集群中的第二目标数据库集群一致的第二数据库集群,进而依据该第二目标数据库集群的原始哈希映射关系,为所述第二数据库集群配置第二哈希映射关系,并将所述原始哈希映射关系更新为更新哈希映射关系,以使得所述第二哈希映射关系中的哈希区域和所述更新哈希映射关系中的哈希区域的并集与所述原始哈希映射关系中的哈希区域相同。这样,使得原本对应于第二目标数据库集群的哈希映射关系更新为对应第二目标数据库集群和第二数据库集群的哈希映射关系,后续即可依据所述第二哈希映射关系和所述更新哈希映射关系进行数据写入,在无需数据迁移,也不需要修改分库分表规则的情况下,便可实现动态扩容,可降低数据库扩容的运维成本。
[0070]
图3为本技术提供的数据库扩容方法实施例三的流程图。本实施例主要涉及的是步骤s202的具体实现原理和实现过程。参照图3,在上述实施例的基础上,本实施例提供的数据库扩容方法,步骤s202,可以包括:
[0071]
s301、将所述原始哈希映射关系中的哈希区间拆分为第一哈希区间和第二哈希区间;其中,所述第一哈希区间的区间长度与所述第二哈希区间的区间长度的比值为预设值。
[0072]
具体的,预设值是根据实际需要设定,本实施例中,不对预设值进行限定。例如,一实施例中,预设值可以为2、1.5等。进一步地,为了实现负载均衡,可将预设值设定为1,即第一哈希区间的区间长度和第二哈希区间的区间长度相等。
[0073]
结合上面的例子,例如,在预设值为1时,此时,可将(01000]这一哈希区间拆分为(0500]和(5001000]两个哈希区间。
[0074]
s302、将第一哈希区间与所述第二目标数据库集群的集群标识的映射关系确定为所述更新哈希映射关系。
[0075]
s303、将所述第二哈希区间与所述第二数据库集群的集群标识的映射关系确定为所述第二哈希映射关系。
[0076]
结合上面的例子,此时,更新哈希映射关系为(0500]对应集群a,第二哈希映射关系为(5001000]对应集群d。
[0077]
本实施例提供的方法,给出了一种配置哈希映射关系的方法,通过该方法,可使原本对应一集群的映射关系更新为对应原集群和新创建的集群的映射关系,可在不迁移数据,且不改变分库分表规则的情况下,实现动态扩容,可降低数据库扩容的运维成本。
[0078]
下面给出一个具体的例子,用以详细说明本技术的技术方案。
[0079]
图4为本技术一示例性实施例示出的数据库扩容方法的流程图,请参照图4,本实施例提供的方法,可以包括:
[0080]
s401、在本设备上搭建至少一个数据库集群,并针对每一个数据库集群,为该数据库集群配置哈希映射关系和分库分表规则。
[0081]
例如,一实施例中,搭建了两个数据库集群,这两个数据库集群的哈希映射关系如表2所示。
[0082]
进一步地,数据可依据分库分表规则定位集群里的库和表,即依据分库分表规则,可定位数据待存入的数据库和待存入的表。有关分库分表规则的具体实现原理和实现过程可以参见相关技术中的描述,此处不在赘述,
[0083]
s402、接收到待写入数据时,依据所述哈希映射关系和所述分库分表规则,对所述待写入数据执行写入操作。
[0084]
s403、创建一个第二数据库集群;其中,所述第二数据库集群与所述至少一个数据库集群中的第二目标数据库集群的一致。
[0085]
例如,第二目标数据库集群为集群a,创建的集群为集群d。
[0086]
s404、依据所述第二目标数据库集群的原始哈希映射关系,为所述第二数据库集群配置第二哈希映射关系,并将所述目标数据库集群的原始哈希映射关系更新为更新哈希映射关系,以使所述第二哈希映射关系中的哈希区域和所述更新哈希映射关系中的哈希区域的并集与所述原始哈希映射关系中的哈希区域相同。
[0087]
结合上面的例子,例如,经过本步骤后,更新映射关系为(0500]对应集群a,第二哈希映射关系为(5001000]对应集群d。
[0088]
s405、依据所述第二哈希映射关系和所述更新哈希映射关系进行数据写入。
[0089]
s406、依据所述第二哈希映射关系,从所述第二数据库集群中筛选与所述第二哈希映射关系不存在映射关系的数据,并将筛选出的数据删除。
[0090]
s407、依据所述更新哈希映射关系,从所述第二目标数据库集群中筛选出与所述
更新哈希映射关系不存在映射关系的数据,并将筛选出的数据删除。
[0091]
具体的,步骤s406和s407中,针对集群中已存储的数据,可依据预设哈希算法计算出哈希值,进而基于该数据的哈希值和更新后的哈希映射关系(即更新哈希映射关系和第二哈希映射关系),确定该数据是否还与该数据库存在映射关系,若不存在,则删除。
[0092]
结合上面的例子,即针对集群a,将哈希值处于(5001000]的数据删除,而对于集群d,则将哈希值处于(0500]的数据删除。
[0093]
本实施例提供的方法,通过删除多余的数据,可避免无用数据占用资源,可提高集群中数据的有效性。
[0094]
本实施例提供的方法,通过创建一个与预先建立的数据库集群中的第二目标数据库集群一致的第二数据库集群,进而依据该第二目标数据库集群的原始哈希映射关系,为所述第二数据库集群配置第二哈希映射关系,并将所述原始哈希映射关系更新为更新哈希映射关系,以使得所述第二哈希映射关系中的哈希区域和所述更新哈希映射关系中的哈希区域的并集与所述原始哈希映射关系中的哈希区域相同。这样,使得原本对应与第二目标数据库集群的哈希映射关系更新为对应第二目标数据库集群和第二数据库集群的哈希映射关系,后续即可依据所述第二哈希映射关系和所述更新哈希映射关系进行数据写入,在无需数据迁移,也不需要修改分库分表规则的情况下,便可实现动态扩容,可降低数据库扩容的运维成本。
[0095]
与前述数据库扩容方法的实施例相对应,本技术还提供了数据库扩容装置的实施例。
[0096]
本技术数据库扩容装置的实施例可以应用在存储设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在存储设备的处理器将存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本技术一示例性实施例示出的数据库扩容装置所在存储设备的硬件结构图。除了图5所示的存储器、处理器、内存和网络接口之外,实施例中装置所在的存储设备通常根据该数据库扩容装置的实际功能,还可以包括其他硬件,对此不再赘述。
[0097]
图6为本技术提供的数据库扩容装置实施例一的结构示意图。请参照图6,本实施例提供的数据库扩容装置,应用于存储设备,所述存储设备上搭建有至少一个数据库集群,所述装置包括创建模块610、配置模块620和处理模块630;其中,
[0098]
所述创建模块610,用于创建一个第一数据库集群;其中,所述第一数据库集群与所述至少一个数据库集群中的第一目标数据库集群的一致;
[0099]
所述配置模块620,用于为所述第一数据库集群配置第一哈希映射关系,以使所述第一哈希映射关系与所述第一目标数据库集群的第一目标哈希映射关系相同;其中,所述哈希映射关系表征存储区间和集群标识的对应关系;
[0100]
所述处理模块630,用于控制所述第一目标数据库集群处于下线状态,并控制所述第一数据库集群处于上线状态,以依据所述第一哈希映射关系将待写入数据写入到所述第一数据库集群。
[0101]
本实施例的装置,可用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0102]
进一步地,所述创建模块610,创建一个第二数据库集群;其中,所述第二数据库集群与所述至少一个数据库集群中的第二目标数据库集群的一致;
[0103]
所述配置模块620,依据所述第二目标数据库集群的原始哈希映射关系,为所述第二数据库集群配置第二哈希映射关系,并将所述原始哈希映射关系更新为更新哈希映射关系,以使所述第二哈希映射关系中的哈希区域和所述更新哈希映射关系中的哈希区域的并集与所述原始哈希映射关系中的哈希区域相同;
[0104]
所述处理模块630,依据所述第二哈希映射关系和所述更新哈希映射关系进行数据写入。
[0105]
进一步地,所述创建模块610,具体用于对至少一个数据库集群中的目标数据库集群执行复制操作,基于所述复制操作创建一个与所述目标数据库集群一致的数据库集群;
[0106]
或者,
[0107]
所述创建模块610,具体用于建立一个空白的空白数据库集群,并将所述至少一个数据库集群中的目标数据库集群中的数据同步到所述空白数据库集群中,以得到与所述目标数据库集群一致的数据库集群。
[0108]
进一步地,所述配置模块620,具体用于:
[0109]
将所述原始哈希映射关系中的哈希区间拆分为第一哈希区间和第二哈希区间;其中,所述第一哈希区间的区间长度与所述第二哈希区间的区间长度的比值为预设值;
[0110]
将第一哈希区间与所述第二目标数据库集群的集群标识的映射关系确定为所述更新哈希映射关系;
[0111]
将所述第二哈希区间与所述第二数据库集群的集群标识的映射关系确定为所述第二哈希映射关系。
[0112]
进一步地,所述预设值为1。
[0113]
进一步地,所述处理模块630,还用于依据所述第二哈希映射关系,从所述第二数据库集群中筛选与所述第二哈希映射关系不存在映射关系的数据,并将筛选出的数据删除;
[0114]
所述处理模块630,还用于依据所述更新哈希映射关系,从所述第二目标数据库集群中筛选出与所述更新哈希映射关系不存在映射关系的数据,并将筛选出的数据删除。
[0115]
本技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本技术提供的任一数据库扩容方法的步骤。
[0116]
具体的,适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如eprom、eeprom和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及cdrom和dvd-rom盘。
[0117]
请继续参照图5,本技术还提供一种存储设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本技术提供的任一数据库扩容方法的步骤。
[0118]
具体的,该电子设备可以是手机、pad、电脑等。
[0119]
以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。

技术特征:
1.一种数据库扩容方法,其特征在于,应用于存储设备,所述存储设备上搭建有至少一个数据库集群,所述方法还包括:创建一个第一数据库集群;其中,所述第一数据库集群与所述至少一个数据库集群中的第一目标数据库集群一致;为所述第一数据库集群配置第一哈希映射关系,以使所述第一哈希映射关系与所述第一目标数据库集群的第一目标哈希映射关系相同;其中,所述哈希映射关系表征哈希区域和集群标识的对应关系;控制所述第一目标数据库集群处于下线状态,并控制所述第一数据库集群处于上线状态,以依据所述第一哈希映射关系将待写入数据写入到所述第一数据库集群。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:创建一个第二数据库集群;其中,所述第二数据库集群与所述至少一个数据库集群中的第二目标数据库集群的一致;依据所述第二目标数据库集群的原始哈希映射关系,为所述第二数据库集群配置第二哈希映射关系,并将所述原始哈希映射关系更新为更新哈希映射关系,以使所述第二哈希映射关系中的哈希区域和所述更新哈希映射关系中的哈希区域的并集与所述原始哈希映射关系中的哈希区域相同;依据所述第二哈希映射关系和所述更新哈希映射关系进行数据写入。3.根据要求1或2所述的方法,其特征在于,创建一个数据库集群的步骤,包括:对至少一个数据库集群中的目标数据库集群执行复制操作,基于所述复制操作创建一个与所述目标数据库集群一致的数据库集群;或者,建立一个空白的空白数据库集群,并将所述至少一个数据库集群中的目标数据库集群中的数据同步到所述空白数据库集群中,以得到与所述目标数据库集群一致的数据库集群。4.根据权利要求2所述的方法,其特征在于,所述为所述第二数据库集群配置第二哈希映射关系,并将所述目标数据库集群的原始哈希映射关系更新为更新哈希映射关系之后,所述方法还包括:依据所述第二哈希映射关系,从所述第二数据库集群中筛选与所述第二哈希映射关系不存在映射关系的数据,并将筛选出的数据删除;依据所述更新哈希映射关系,从所述第二目标数据库集群中筛选出与所述更新哈希映射关系不存在映射关系的数据,并将筛选出的数据删除。5.根据权利要求2所述的方法,其特征在于,所述哈希区域为哈希区间;所述为所述第二数据库集群配置第二哈希映射关系,并将所述目标数据库集群的原始映射关系更新为更新哈希映射关系,包括:将所述原始哈希映射关系中的哈希区间拆分为第一哈希区间和第二哈希区间;其中,所述第一哈希区间的区间长度与所述第二哈希区间的区间长度的比值为预设值;将第一哈希区间与所述第二目标数据库集群的集群标识的映射关系确定为所述更新哈希映射关系;将所述第二哈希区间与所述第二数据库集群的集群标识的映射关系确定为所述第二
哈希映射关系。6.根据权利要求5所述的方法,其特征在于,所述预设值为1。7.根据要求1所述的方法,其特征在于,所述方法还包括:待写入数据依据分库分表规则写入对应集群中的库和表。8.一种数据库扩容装置,其特征在于,应用于存储设备,所述存储设备上搭建有至少一个数据库集群,所述装置包括创建模块、配置模块和处理模块;其中,所述创建模块,用于创建一个第一数据库集群;其中,所述第一数据库集群与所述至少一个数据库集群中的第一目标数据库集群的一致;所述配置模块,用于为所述第一数据库集群配置第一哈希映射关系,以使所述第一哈希映射关系与所述第一目标数据库集群的第一目标哈希映射关系相同;其中,所述哈希映射关系表征存储区间和集群标识的对应关系;所述处理模块,用于控制所述第一目标数据库集群处于下线状态,并控制所述第一数据库集群处于上线状态,以依据所述第一哈希映射关系将待写入数据写入到所述第一数据库集群。9.一种存储设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。

技术总结
本申请提供的数据库扩容方法,应用于存储设备,所述存储设备上搭建有至少一个数据库集群,所述方法还包括:创建一个第一数据库集群;其中,所述第一数据库集群与所述至少一个数据库集群中的第一目标数据库集群一致;为所述第一数据库集群配置第一哈希映射关系,以使所述第一哈希映射关系与所述第一目标数据库集群的第一目标哈希映射关系相同;控制所述第一目标数据库集群处于下线状态,并控制所述第一数据库集群处于上线状态,以依据所述第一哈希映射关系将待写入数据写入到所述第一数据库集群。本申请提供的数据库扩容方法、装置和存储设备,可降低数据库扩容的运维成本。可降低数据库扩容的运维成本。


技术研发人员:申鹏
受保护的技术使用者:北京陌陌信息技术有限公司
技术研发日:2023.04.20
技术公布日:2023/7/21
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐