CN110851427A - 数据库容量变更方法和装置 - Google Patents
数据库容量变更方法和装置 Download PDFInfo
- Publication number
- CN110851427A CN110851427A CN201911135672.2A CN201911135672A CN110851427A CN 110851427 A CN110851427 A CN 110851427A CN 201911135672 A CN201911135672 A CN 201911135672A CN 110851427 A CN110851427 A CN 110851427A
- Authority
- CN
- China
- Prior art keywords
- sub
- capacity
- database
- data
- library
- 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
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000012508 change request Methods 0.000 claims abstract description 51
- 230000005012 migration Effects 0.000 claims description 31
- 238000013508 migration Methods 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 15
- 238000013500 data storage Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 abstract description 26
- 230000008569 process Effects 0.000 description 17
- 238000012217 deletion Methods 0.000 description 13
- 230000037430 deletion Effects 0.000 description 13
- 230000006854 communication Effects 0.000 description 7
- 230000007704 transition Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000002715 modification method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000010791 quenching Methods 0.000 description 1
- 230000000171 quenching effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
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)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据库容量变更方法和装置。该方法包括:获取到容量变更请求,其中,容量变更请求用于表示第一分库的剩余容量不足或者富余。根据容量变更请求,确定M个第二分库的剩余容量,其中,M为正整数,第一分库的总容量和M个第二分库的总容量构成已有资源。基于第一分库中各个数据库各自数据对应的占用容量和M个第二分库的剩余容量,生成目标规则。按照目标规则,将第一分库中的数据迁移到M个第二分库的剩余容量中。从而,无需停止服务,便可启动数据库的容量变更。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据库容量变更方法和装置。
背景技术
随着互联网技术的高速发展,信息系统承载的业务越来越多,需要存储的数据也越来越多。例如,淬镜系统作为互联网渠道的承保对接平台,设计的承保量达到每天千万级。因此,淬镜系统通常按照业务字段进行分库存储,其原则如下:对业务字段进行哈希HASH运算,取后三位以及数据库总数计算数据存储在哪个分库中。比如,有2组库,那么000-499存储在第1组库中,500-999存储在第2组库中;如果有4组数据库,那么000-249存储在第1组库中,250-499存储在第2组库中,500-749存储在第3组库中,750-999存储在第4组库中。
然而,由于单台服务器的CPU、磁盘、内存、IO或者带宽等资源是有限的,在数据的储存容量和使用性能上很容易达到瓶颈。例如:某电商网站有几亿的用户,若将所有用户的数据均存储到一个数据库中,则会造成该数据库无法承受这么大的数据量。因此,需要对数据库进行扩容。
虽然,淬镜系统按照业务字段进行分库存储,得到的数据库具备较好的横线扩容性能,但仍存在以下问题:
一、数据库进行容量扩大或者缩小时,需要按新的数据库总数重新设置分库规则,因此,需要停止服务,迁移数据,然后再启动服务,即须将整个服务静止后才能进行扩容,如图1所示。其中,数据迁移涉及的是海量的用户数据,为了能够对迁移后的数据立即进行统一管理,现有的数据迁移做法通常是将数据库的全部用户数据一起进行迁移。这样便使得服务商需要向用户暂停一定时间的服务,在这段时间内完成数据迁移,无疑为用户使用服务带来了不便。
二、数据库按业务字段分库,在某些业务较大的情况下会出现数据热点等突发情况,比如热点商家产生了远大于其他商家的数据,会导致该热点商家所在的分库很快出现容量问题,这时需要人工干预,在业务突发高峰或节假日,往往会带来巨大的工作量。
综上,一方面,现有技术无法满足承保系统的服务级别协议(Service LevelAgreement,SLA)达到99.95%的要求。另一方面,数据库扩容时,数据库数量过多,以及为了将数据量的容量一步扩到位,会占用过多计算资源和硬件投入。又一方面,数据库扩容时所采取的数据迁移动作无疑是费时费力的,增加了数据库维护的难度,且该过程需要暂停数据库的使用,给业务运营带来影响。再一方面,突发情况下,沟通处理的成本非常高昂。
发明内容
本申请提供一种数据库容量变更方法和装置,以解决现有的数据量扩容过程中需要停止服务才能够迁移数据而导致不便,以及存在资源浪费和成本较高的问题。
第一方面,本申请提供一种数据库容量变更方法,包括:获取到容量变更请求,其中,所述容量变更请求用于表示第一分库的剩余容量不足或者富余;根据所述容量变更请求,确定M个第二分库的剩余容量,其中,M为正整数,所述第一分库的总容量和所述M个第二分库的总容量构成已有资源;基于所述第一分库中各个数据库各自数据对应的占用容量和所述M个第二分库的剩余容量,生成目标规则;按照所述目标规则,将所述第一分库中的数据迁移到所述M个第二分库中。
可选地,所述方法还包括:在数据迁移开始之前,确定切换时刻,其中,所述切换时刻为开始按照所述目标规则进行数据存储的时刻。
可选地,所述方法还包括:在数据迁移结束之后,删除所述第一分库的规则,其中,所述第一分库的规则为在所述切换时刻之前将数据存储到所述第一分库的规则。
可选地,所述方法还包括:在接收到新的业务请求时,判断当前时刻是否在所述切换时刻之内,其中,所述新的业务请求的类型与所述第一分库对应的业务请求类型相同;在当前时刻在所述切换时刻之内时,按照所述第一分库的规则,将所述新的业务请求存储到所述第一分库中;在当前时刻不在所述切换时刻之内时,按照所述目标规则,将所述新的业务请求存储到所述M个第二分库中。
可选地,所述方法还包括:确定删除时刻,其中,所述删除时刻为开始删除所述第二分库的时刻;在当前时刻在所述切换时刻之内时,。
可选地,所述方法还包括:当M大于1时,所述基于所述第一分库中各个数据库各自数据对应的占用容量和所述M个第二分库的剩余容量,生成目标规则,包括:根据所述M个第二分库的剩余容量之和以及所述M个第二分库的剩余容量,确定所述M个第二分库的分配比例;按照所述M个第二分库的分配比例,将所述第一分库中各个数据库各自数据对应的占用容量之和,分配给所述M个第二分库的剩余容量,生成所述目标规则。
可选地,所述获取所述容量变更请求,包括:从终端接收所述容量变更请求;和/或,在检测到所述第一分库的剩余容量小于第一预设量或者大于第二预设量时,生成所述容量变更请求。
第二方面,本申请提供一种数据库容量变更装置,包括:获取模块,用于获取到容量变更请求,其中,所述容量变更请求用于表示第一分库的剩余容量不足或者富余;确定模块,用于根据所述容量变更请求,确定M个第二分库的剩余容量,其中,M为正整数,所述第一分库的总容量和所述M个第二分库的总容量构成已有资源;生成模块,用于基于所述第一分库中各个数据库各自数据对应的占用容量和所述M个第二分库的剩余容量,生成目标规则;处理模块,用于按照所述目标规则,将所述第一分库中的数据迁移到所述M个第二分库中。
可选地,所述确定模块,还用于在数据迁移开始之前,确定切换时刻,其中,所述切换时刻为开始按照所述目标规则进行数据存储的时刻。
可选地,所述处理模块,还用于在数据迁移结束之后,删除所述第一分库的规则,其中,所述第一分库的规则为在所述切换时刻之前将数据存储到所述第一分库的规则。
可选地,所述处理模块,还用于在接收到新的业务请求时,判断当前时刻是否在所述切换时刻之内,其中,所述新的业务请求的类型与所述第一分库对应的业务请求类型相同;在当前时刻在所述切换时刻之内时,按照所述第一分库的规则,将所述新的业务请求存储到所述第一分库中;在当前时刻不在所述切换时刻之内时,按照所述目标规则,将所述新的业务请求存储到所述M个第二分库中。
可选地,所述确定模块,还用于确定删除时刻,其中,所述删除时刻为开始删除所述第二分库的时刻;所述处理模块,还用于在删除时刻,删除所述第二分库。
可选地,当M大于1时,所述生成模块,具体用于根据所述M个第二分库的剩余容量之和以及所述M个第二分库的剩余容量,确定所述M个第二分库的分配比例;按照所述M个第二分库的分配比例,将所述第一分库中各个数据库各自数据对应的占用容量之和,分配给所述M个第二分库的剩余容量,生成所述目标规则。
可选地,所述获取模块,具体用于从终端获取所述容量变更请求。和/或,在检测到所述第一分库的剩余容量小于第一预设量或者大于第二预设量时,生成所述容量变更请求。
上述第二方面以及上述第二方面的各可能的设计中所提供的数据库容量变更装置,其有益效果可以参见上述第一方面和第一方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第三方面,本申请提供一种电子设备,包括:存储器和处理器;
存储器用于存储程序指令;
处理器用于调用存储器中的程序指令执行第一方面及第一方面任一种可能的设计中的数据库容量变更方法。
第四方面,本申请提供一种可读存储介质,可读存储介质中存储有执行指令,当电子设备的至少一个处理器执行该执行指令时,电子设备执行第一方面及第一方面任一种可能的设计中的数据库容量变更方法。
本申请提供的数据库容量变更方法和装置,通过获取容量变更请求,可以确定出第一分库的剩余容量不足或者富余。根据获取到容量变更请求,利用已有资源(即现有资源),确定M个第二分库的剩余容量,其中,M为正整数,所述第一分库的总容量和所述M个第二分库的总容量构成已有资源,来实现第一分库的容量变更。然后,基于所述第一分库中各个数据库各自数据对应的占用容量和所述M个第二分库的剩余容量,生成目标规则。并按照目标规则,将第一分库中的数据迁移到M个第二分库的剩余容量中,实现数据从第一分库到M个第二分库的迁移过程。本申请中,利用已有资源的剩余容量,无需停止服务,便可实现数据库容量变更,解决了任意一个分库的容量不足或者富余的问题,能够随需而扩、随需而缩,提高了资源的利用率,还降低了人力和物力,节省了资源和成本。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一种现有数据库容量变更方法的流程图;
图2为本申请一实施例提供的数据库容量变更方法的流程图;
图3a为本申请一实施例提供的数据库容量变更方法的界面示意图;
图3b为本申请一实施例提供的数据库容量变更方法的界面示意图;
图4为本申请一实施例提供的数据库容量变更方法的流程图;
图5为本申请一实施例提供的数据库容量变更方法的流程图;
图6为本申请一实施例提供的数据库容量变更装置的结构示意图;
图7为本申请一实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供一种数据库容量变更方法、装置、设备及计算机存储介质,可应用于各个领域中数据库的容量扩充或者容量缩减,适合于数据库需要扩充容量或者缩减容量的各种场景中,可以通过已有资源的自动调配,利用已有资源的剩余容量,为任意一个分库进行容量分担,实现该分库的容量变更,在容量扩容时无需停止服务,能够随需而扩或者随需而缩,提高了资源的利用率。并且,可以自如地应对数据激增的突发情况,还可以自动调配已有资源,避免出现使用故障。
其中,本申请的数据库容量变更方法的执行主体为服务器。通常,服务器根据项目的类型,将现有资源划分为多个分库。本申请提及的已有资源的剩余容量可以为与该分库同一项目的资源,也可以为与该分库不同项目的资源,也可以为与该分库同一项目的资源和与该分库不同项目的资源的总和,本申请对此不做限定。
也就是说,每个分库对应一个项目。其中,每个分库中可以包括一个数据库或者多个数据库。针对任意一个分库而言,每个数据库可以存储同一项目中相同类型的业务请求,也可以存储同一项目中不同类型的业务请求。另外,服务器还可以监控各个分库的容量使用情况,将容量使用完的数据库下线,且在接入新的资源后,将现有资源恢复正常使用,避免出现使用故障。
其中,本申请可以根据实际情况,对项目和业务请求进行划分。例如,本申请将任意一个购物平台的数据划分为一个项目,该项目可以包括该收藏业务请求、聊天业务请求、购买业务请求、物流业务请求以及个人信息业务请求等。那么,一个分库对应一个购物平台的数据,分库中的一个或者多个数据库分别对应该收藏业务请求、聊天业务请求、购买业务请求、物流业务请求以及个人信息业务请求等。又如,本申请将任意一个企业的数据划分为一个项目,该项目可以包括:保险业务请求、咨询业务请求以及个人信息业务请求等。那么,一个分库对应一个企业的数据,分库中的一个或者多个数据库分别对应保险业务请求、咨询业务请求以及个人信息业务请求等。
并且,本申请可以根据项目所需的容量大小,将已有资源按需分配给各个项目或者均分给各个项目。例如,若项目1所需的容量大小大于项目2所需的容量大小,则项目1对应的分库在已有资源中的容量大于项目2对应的分库在已有资源中的容量。又如,若已有资源等分成多个相同容量的分库,则项目1的分库在已有资源中的容量等于项目2对应的分库在已有资源中的容量。
下面,以服务器为执行主体,通过具体实施例,对数据库容量变更方法的具体实现过程进行详细说明。
图2为本申请一实施例提供的数据库容量变更方法的流程图,如图2所示,本申请的数据库容量变更方法可以包括:
S101、获取到容量变更请求,其中,容量变更请求用于表示第一分库的剩余容量不足或者富余。
本申请中,服务器在获取到容量变更请求时,可以确定第一分库(即旧的分库)的剩余容量不足或者富余,有需求为第一分库进行容量变更。其中,服务器可以采用多种方式,获取容量变更请求。下面,采用两种可行的实现方式,对服务器获取容量变更请求的具体过程进行举例说明。
一种可行的实现中,当用户监测到第一分库的剩余容量不足或者富余时,用户可以通过终端向服务器发送容量变更请求,以便服务器获取到容量变更请求,从而手动启动数据库容量变更。
另一种可行的实现中,当用户监测到第一分库的剩余容量不足或者富余时,用户可以通过在服务器上键入,以便服务器获取到容量变更请求,从而手动启动数据库容量变更。例如,服务器上设置有硬件按钮,用户通过按下该按钮,使得服务器获取到容量变更请求。又如,服务器包括显示屏,用户通过点击显示屏上的按钮,使得服务器获取到容量变更请求。
另一种可行的实现方式中,服务器可以实时检测第一分库的剩余容量。在检测到第一分库的剩余容量小于等于第一预设量或者大于第二预设量时,服务器可以生成容量变更请求,以便服务器获取到容量变更请求,从而自动启动数据库容量变更。
其中,第一预设量和第二预设量可以根据实际情况进行设置,本申请对此不做限定。
可选地,第一预设量可以表征第一分库的剩余容量的最小值。例如,第一预设量设置为10TB,则服务器在第一分库的剩余容量小于等于10TB时,生成容量变更请求。
可选地,第一预设量可以表征第一分库的剩余容量按照当前增长量所支撑的最小时长。例如,第一预设量设置为6小时,服务器计算出第一分库的剩余容量Y除以当前增长量X的商值Z,判断商值Z是否小于等于6。若是,则服务器生成容量变更请求。
可选地,第二预设量可以表征第一分库的剩余容量在预设时长内的最小值。例如,第二预设量设置为第一分库总容量的一半,则服务器在第一分库的剩余容量在预设时长内是否大于等于第二预设量。若是,则服务器生成容量变更请求。
可选地,第二预设量可以表征第一分库每小时数据增长量的最小值。例如,第二预设量设置为60小时每KB,在第一分库每小时数据增长量小于等于60小时每KB时,服务器生成容量变更请求。
另外,本申请可以采用多种方式,检测到第一分库的剩余容量不足或者富余的方式,本申请对此不做限定。
S102、根据容量变更请求,确定M个第二分库的剩余容量,其中,M为正整数,第一分库的总容量和M个第二分库的总容量构成已有资源。
本申请中,在数据迁移开始之前,服务器可以从已有资源中,确定M个第二分库的剩余容量,以实现第一分库的容量变更。其中,任意一个第二分库对应的业务请求类型与第一分库对应的业务请求类型可以相同或者不同,本申请对此不做限定。
S103、基于第一分库中各个数据库各自数据对应的占用容量和M个第二分库的剩余容量,生成目标规则。
为了合理将第一分库的数据复制到M个第二分库的剩余容量中,服务器可以基于第一分库中各个数据库各自数据对应的占用容量和M个第二分库的剩余容量,生成目标规则,以便合理使用M个第二分库的剩余容量。
本申请中,服务器可以采用现有技术,也可以采用其他技术,生成目标规则,本申请对此不做限定。为了便于说明,下面采用具体实施例对目标规则的实现形式进行举例。
当M大于1时,服务器根据M个第二分库的剩余容量之和以及M个第二分库的剩余容量,确定M个第二分库的分配比例。接着,服务器按照M个第二分库的分配比例,将第一分库中各个数据库各自数据对应的占用容量之和,分配给M个第二分库的剩余容量,从而生成目标规则。
例如,本申请可以对业务请求对应的业务字段(如商户号)进行HASH运算,取后三位(十进制数)以及容量变更后的数据库总数计算目标规则。比如,有2组库,那么000-499存储在第1组库中,500-999存储在第2组库中;如果有4组数据库,那么000-249存储在第1组库中,250-499存储在第2组库中,500-749存储在第3组库中,750-999存储在第4组库中。其中,后三位(十进制数)为业务号段。
假设M个第二分库包括:X1、X2、……、XM,其中,Xi,i取遍1到M,M为正整数,预先设置好的第一分库中各个数据库包括:Y1(存储的业务号段为As1-Ae1)、Y2(存储的业务号段为As2-Ae2)、……、Ym(存储的业务号段为Asm-Aem)m≤M。
首先,计算X1、X2、……、XM的剩余容量分别为X1L、X2L、……、XnL。然后,计算M个第二分库的分配比例分别为X1L/(X1L+X2L+……+XnL)、X2L/(X1L+X2L+……+XnL)、……、XnL/(X1L+X2L+……+XnL)。接下来,计算各个数据库各自数据对应的占用容量之和,即Y1、Y2、……、Ym所有的业务号段之和为:(Ae1-As1)+(Ae2-As2)+……+(Aem-Asm),然后将业务段之和按上述M个第二分库的分配比例将业务段号依次分配给X1L、X2L、……、XnL,形成目标规则。
当M为1时,M个第二分库的剩余容量之和即该第二分库的剩余容量,且该第二分库的剩余容量大于第一分量的总容量,因此,服务器可以直接将第一分库中各个数据库各自数据对应的占用容量之和,直接分配给第二分库的剩余容量,从而生成目标规则。
S104、按照目标规则,将第一分库中的数据迁移到M个第二分库的剩余容量中。
本申请中,服务器可以将数据按照目标规则从第一分库复制到M个第二分库的剩余容量中,实现数据的迁移过程。此时,数据同时在旧规则对应的第一分库和新规则对应的M个第二分库中存储,便于在这个过渡期进行数据查询。
在一个具体的实施例中,运维人员已配置好服务器的已有资源,该已有资源包括分库A和分库B,且根据该服务器的资源和IP地址配置好分库A。结合图3a和图3b所示的服务器,采用本申请的数据库容量变更方法,对扩充分库A的容量的具体实现过程进行说明,具体步骤包括:
步骤1、运维人员点击图3a中服务器上的“启动扩容”按钮,使得服务器生成容量变更请求。
步骤2、服务器在获取到容量变更请求时,确定分库B的剩余容量。
步骤3、服务器基于分库A中各个数据库各自数据对应的占用容量和分库B的剩余容量,生成目标规则。
步骤4、服务器开始启动过渡期,实现按照目标规则,将分库A的数据复制到分库B的剩余容量中。
步骤5、服务器将自动运行,并在数据迁移完成后,结束过渡期。另外,服务器还可以通知相关人员分库A扩容完成。且在数据迁移过程中,运维人员还可以通过服务器查看数据迁移的进度,如图3b所示。
一方面,现有技术中,数据库容量变更(扩容或者缩减)前期需要相关人员进行大量渠道沟通,以协调多方时间。且数据迁移过程常常在凌晨业务量较少的时段进行,且为了以防万一,需要相关人员坚守现场,费时费力。而本申请中,无需上述过程,可以随时且方便的实现数据库的容量变更,降低了大量的人力和物力,节省了成本。
另一方面,现有技术中,数据库容量扩容需要考虑较大的裕量,实际情况往往使用不上或者,资源的利用率较低,且数据库容量缩减常常无法实现。而本申请中,能够随需而扩或者随需而缩,提升资源的利用率。
另一方面,现有技术中,无法应对数据激增的突发情况,需要相关人员马上介入处理。而本申请中,不仅可以自如地应对数据激增的突发情况,还可以自动调配现有资源,避免出现使用故障。
本申请提供的数据库容量变更方法,通过获取容量变更请求,可以确定出第一分库的剩余容量不足或者富余。根据获取到容量变更请求,利用已有资源(即现有资源),确定M个第二分库的剩余容量,其中,M为正整数,第一分库的总容量和M个第二分库的总容量构成已有资源,来实现第一分库的容量变更。然后,基于第一分库中各个数据库各自数据对应的占用容量和M个第二分库的剩余容量,生成目标规则。并按照目标规则,将第一分库中的数据迁移到M个第二分库的剩余容量中,实现数据从第一分库到M个第二分库的迁移过程。本申请中,利用已有资源的剩余容量,无需停止服务,便可实现数据库容量变更,解决了任意一个分库的容量不足或者富余的问题,能够随需而扩、随需而缩,提高了资源的利用率,还降低了人力和物力,节省了资源和成本。
在S104中的数据迁移开始之前,服务器可以确定切换时刻,其中,该切换时刻为开始按照目标规则进行数据存储的时刻。从而,在手工启动数据库容量变更的情况下,服务器可以在切换时刻启动数据迁移,按照目标规则,将数据从第一分库复制到M个第二分库的剩余容量中。
其中,本申请可以根据实际情况,对切换时刻进行设置。例如,切换时刻可以为从获取到容量变更请求开始,经过预设时长后的时刻。该预设时长可以为一天,也可以为10小时,本申请对此不做限定。
另外,在自动启动数据库容量变更的情况下,服务器也可以确定切换时刻,具体实现过程可参见上述具体内容,此处不做赘述。其中,手工启动数据库容量变更的情况的切换时刻和自动启动数据库容量变更的情况的切换时刻可以相同,也可以不同,本申请对此不做限定。
为了节省服务器的现有资源,可选地,在S104执行的数据迁移结束之后,服务器可以删除第一分库的规则,其中,该第一分库的规则为在切换时刻之前将数据存储到第一分库的规则。
本申请中,在数据迁移过程中,服务器也会收到很多业务请求。如图4所示,当服务器接收到与第一分库对应的业务请求类型相同的新的业务请求|时,服务器需要将新的业务请求存储到第一分库中或者存储到M个第二分库的剩余容量中。
为了辨别新的业务请求是存储到第一分库中还是M个第二分库的剩余容量中,继续结合图4,服务器可以判断当前时刻是否在切换时刻之内。若当前时刻在切换时刻之内,则在数据迁移的过程中,服务器可以按照第一分库的规则,将新的业务请求存储到第一分库中。若当前时刻不在切换时刻之内,则服务器可以按照目标规则,将新的业务请求存储到M个第二分库的剩余容量中。
为了节省服务器的现有资源,可选地,服务器可以确定删除时刻,其中,删除时刻为开始删除第一分库的时刻,且该删除时刻晚于数据迁移结束的时刻,避免在数据迁移的过程中相关人员查询不到数据的现象。从而,在删除时刻,服务器可以删除第一分库。
现有技术中,数据库变更容量时需要停止服务,以便完成数据迁移。而本申请的数据库容量变更方法无需停止服务,如图5所示,具体实现过程可以包括如下步骤:
步骤1、启动容量变更
服务器在获取到容量变更请求时,启动容量变更。
步骤2、确定M个第二分库的剩余容量
步骤3、生成目标规则
服务器基于第一分库中各个数据库各自数据对应的占用容量和M个第二分库的剩余容量,生成目标规则。
步骤4、启动过渡期,且设置切换时刻T
服务器将开始数据库容量变更到结束数据量容量变更的时间段作为过渡期,且设置切换目标规则(新规则)和第一分库的规则(旧规则)的切换时刻T
步骤5、启动数据迁移
服务器在切换时刻T,开始数据迁移,且按照目标规则,将第一分库中的数据迁移到M个第二分库的剩余容量中。服务器在此过程中,通过判断第一分库中的每个数据库是否还有数据,确定是否结束过期。
步骤6、结束过渡期
服务器在第一分库中的数据全部复制到M个第二分库的剩余容量中时,完成数据迁移,从而结束过渡期。
步骤7、设置删除时刻TD,且启动删除操作
服务器设置删除第一分库的删除时刻TD。且服务器在删除时刻TD,删除第一分库。
步骤8、容量变更结束
服务器完成数据库的容量变更过程。
另外,在步骤4-步骤6的时间段内,服务器在接收到与第一分库对应的业务请求类型相同的新的业务请求时,判断当前时刻是否在切换时刻之内。若是,则服务器按照第一分库的规则,将新的业务请求存储到第一分库中。若否,则服务器按照目标规则,将新的业务请求存储到M个第二分库的剩余容量中。
示例性地,本申请还提供一种数据库容量变更装置。图6为本申请一实施例提供的数据库容量变更装置的结构示意图。如图6所示,本申请的数据库容量变更装置60包括:获取模块61、确定模块62、生成模块63和处理模块64。
获取模块61,用于获取到容量变更请求,其中,容量变更请求用于表示第一分库的剩余容量不足或者富余。确定模块62,用于根据容量变更请求,确定M个第二分库的剩余容量,其中,M为正整数,第一分库的总容量和M个第二分库的总容量构成已有资源。生成模块63,用于基于第一分库中各个数据库各自数据对应的占用容量和M个第二分库的剩余容量,生成目标规则。处理模块64,用于按照目标规则,将第一分库中的数据迁移到M个第二分库中。
可选地,确定模块62,还用于在数据迁移开始之前,确定切换时刻,其中,切换时刻为开始按照目标规则进行数据存储的时刻。
可选地,处理模块64,还用于在数据迁移结束之后,删除第一分库的规则,其中,第一分库的规则为在切换时刻之前将数据存储到第一分库的规则。
可选地,处理模块64,还用于在接收到新的业务请求时,判断当前时刻是否在切换时刻之内,其中,新的业务请求的类型与第一分库对应的业务请求类型相同;在当前时刻在切换时刻之内时,按照第一分库的规则,将新的业务请求存储到第一分库中;在当前时刻不在切换时刻之内时,按照目标规则,将新的业务请求存储到M个第二分库中。
可选地,确定模块62,还用于确定删除时刻,其中,删除时刻为开始删除第二分库的时刻;处理模块,还用于在删除时刻,删除第二分库。
可选地,当M大于1时,生成模块63,具体用于根据M个第二分库的剩余容量之和以及M个第二分库的剩余容量,确定M个第二分库的分配比例;按照M个第二分库的分配比例,将第一分库中各个数据库各自数据对应的占用容量之和,分配给M个第二分库的剩余容量,生成目标规则。
可选地,获取模块61,具体用于从终端获取容量变更请求。和/或,在检测到第一分库的剩余容量小于第一预设量或者大于第二预设量时,生成容量变更请求。
本申请提供的数据库容量变更装置,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本申请此处不再赘述。
本申请中可以根据上述方法示例对数据库容量变更装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请各实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图7为本申请一实施例提供的电子设备的硬件结构示意图。如图7所示,该电子设备70,用于实现上述任一方法实施例中对应于服务器的操作,本申请的电子设备70可以包括:存储器71和处理器72;
存储器71,用于存储计算机程序;
处理器72,用于执行存储器存储的计算机程序,以实现上述实施例中的数据库容量变更方法。具体可以参见前述方法实施例中的相关描述。
可选地,存储器71既可以是独立的,也可以跟处理器72集成在一起。
当存储器71是独立于处理器72之外的器件时,电子设备70还可以包括:
总线73,用于连接存储器71和处理器72。
可选地,本申请还包括:通信接口74,该通信接口74可以通过总线73与处理器72连接。处理器72可以控制通信接口73来实现电子设备70的上述的接收和发送的功能。
本申请提供的电子设备可用于执行上述的数据库容量变更方法,其实现方式和技术效果类似,本申请此处不再赘述。
本申请还提供一种计算机可读存储介质,计算机可读存储介质包括计算机程序,计算机程序用于实现如上实施例中的数据库容量变更方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种数据库容量变更方法,其特征在于,包括:
获取到容量变更请求,其中,所述容量变更请求用于表示第一分库的剩余容量不足或者富余;
根据所述容量变更请求,确定M个第二分库的剩余容量,其中,M为正整数,所述第一分库的总容量和所述M个第二分库的总容量构成已有资源;
基于所述第一分库中各个数据库各自数据对应的占用容量和所述M个第二分库的剩余容量,生成目标规则;
按照所述目标规则,将所述第一分库中的数据迁移到所述M个第二分库的剩余容量中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在数据迁移开始之前,确定切换时刻,其中,所述切换时刻为开始按照所述目标规则进行数据存储的时刻。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在数据迁移结束之后,删除所述第一分库的规则,其中,所述第一分库的规则为在所述切换时刻之前将数据存储到所述第一分库的规则。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在接收到新的业务请求时,判断当前时刻是否在所述切换时刻之内,其中,所述新的业务请求的类型与所述第一分库对应的业务请求类型相同;
若是,则按照所述第一分库的规则,将所述新的业务请求存储到所述第一分库中;
若否,则按照所述目标规则,将所述新的业务请求存储到所述M个第二分库中。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定删除时刻,其中,所述删除时刻为开始删除所述第一分库的时刻;
在删除时刻,删除所述第一分库。
6.根据权利要求1所述的方法,其特征在于,当M大于1时,所述基于所述第一分库中各个数据库各自数据对应的占用容量和所述M个第二分库的剩余容量,生成目标规则,包括:
根据所述M个第二分库的剩余容量之和以及所述M个第二分库的剩余容量,确定所述M个第二分库的分配比例;
按照所述M个第二分库的分配比例,将所述第一分库中各个数据库各自数据对应的占用容量之和,分配给所述M个第二分库的剩余容量,生成所述目标规则。
7.根据权利要求1所述的方法,其特征在于,所述获取所述容量变更请求,包括:
从终端接收所述容量变更请求;和/或,
在检测到所述第一分库的剩余容量小于第一预设量或者大于第二预设量时,生成所述容量变更请求。
8.一种数据库容量变更装置,其特征在于,包括:
获取模块,用于获取到容量变更请求,其中,所述容量变更请求用于表示第一分库的剩余容量不足或者富余;
确定模块,用于根据所述容量变更请求,确定M个第二分库的剩余容量,其中,M为正整数,所述第一分库的总容量和所述M个第二分库的总容量构成已有资源;
生成模块,用于基于所述第一分库中各个数据库各自数据对应的占用容量和所述M个第二分库的剩余容量,生成目标规则;
处理模块,用于按照所述目标规则,将所述第一分库中的数据迁移到所述M个第二分库中。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的数据库容量变更方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一项所述的数据库容量变更方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911135672.2A CN110851427A (zh) | 2019-11-19 | 2019-11-19 | 数据库容量变更方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911135672.2A CN110851427A (zh) | 2019-11-19 | 2019-11-19 | 数据库容量变更方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110851427A true CN110851427A (zh) | 2020-02-28 |
Family
ID=69602325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911135672.2A Pending CN110851427A (zh) | 2019-11-19 | 2019-11-19 | 数据库容量变更方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110851427A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111339105A (zh) * | 2020-03-27 | 2020-06-26 | 泰康保险集团股份有限公司 | 数据存储方法、装置及服务器 |
CN113448950A (zh) * | 2021-07-26 | 2021-09-28 | 安徽清博大数据科技有限公司 | 一种基于数据量的本地化硬件部署方法 |
CN113449042A (zh) * | 2021-07-14 | 2021-09-28 | 中国银行股份有限公司 | 数据自动分库方法及装置 |
CN113641670A (zh) * | 2021-07-09 | 2021-11-12 | 北京百度网讯科技有限公司 | 数据存储及数据检索方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473365A (zh) * | 2013-09-25 | 2013-12-25 | 北京奇虎科技有限公司 | 一种基于hdfs的文件存储方法、装置及分布式文件系统 |
CN107357896A (zh) * | 2017-07-13 | 2017-11-17 | 北京小度信息科技有限公司 | 数据库集群的扩容方法、装置、系统和数据库集群系统 |
CN108319596A (zh) * | 2017-01-16 | 2018-07-24 | 阿里巴巴集团控股有限公司 | 一种数据库的扩容方法和装置 |
CN110222064A (zh) * | 2019-06-19 | 2019-09-10 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
US20190311040A1 (en) * | 2018-04-09 | 2019-10-10 | Oracle International Corporation | Database migration between computing platforms using virtual backups |
CN110321339A (zh) * | 2019-07-04 | 2019-10-11 | 深圳乐信软件技术有限公司 | 一种数据迁移方法、装置、设备和存储介质 |
-
2019
- 2019-11-19 CN CN201911135672.2A patent/CN110851427A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473365A (zh) * | 2013-09-25 | 2013-12-25 | 北京奇虎科技有限公司 | 一种基于hdfs的文件存储方法、装置及分布式文件系统 |
CN108319596A (zh) * | 2017-01-16 | 2018-07-24 | 阿里巴巴集团控股有限公司 | 一种数据库的扩容方法和装置 |
CN107357896A (zh) * | 2017-07-13 | 2017-11-17 | 北京小度信息科技有限公司 | 数据库集群的扩容方法、装置、系统和数据库集群系统 |
US20190311040A1 (en) * | 2018-04-09 | 2019-10-10 | Oracle International Corporation | Database migration between computing platforms using virtual backups |
CN110222064A (zh) * | 2019-06-19 | 2019-09-10 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN110321339A (zh) * | 2019-07-04 | 2019-10-11 | 深圳乐信软件技术有限公司 | 一种数据迁移方法、装置、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
任友理: "《大数据技术与应用》", 31 May 2019, 西北工业大学出版社 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111339105A (zh) * | 2020-03-27 | 2020-06-26 | 泰康保险集团股份有限公司 | 数据存储方法、装置及服务器 |
CN111339105B (zh) * | 2020-03-27 | 2023-08-15 | 泰康保险集团股份有限公司 | 数据存储方法、装置及服务器 |
CN113641670A (zh) * | 2021-07-09 | 2021-11-12 | 北京百度网讯科技有限公司 | 数据存储及数据检索方法、装置、电子设备及存储介质 |
CN113641670B (zh) * | 2021-07-09 | 2023-08-11 | 北京百度网讯科技有限公司 | 数据存储及数据检索方法、装置、电子设备及存储介质 |
CN113449042A (zh) * | 2021-07-14 | 2021-09-28 | 中国银行股份有限公司 | 数据自动分库方法及装置 |
CN113448950A (zh) * | 2021-07-26 | 2021-09-28 | 安徽清博大数据科技有限公司 | 一种基于数据量的本地化硬件部署方法 |
CN113448950B (zh) * | 2021-07-26 | 2024-03-15 | 北京清博智能科技有限公司 | 一种基于数据量的本地化硬件部署方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110851427A (zh) | 数据库容量变更方法和装置 | |
US8412899B2 (en) | Real time backup storage node assignment | |
CN109558215A (zh) | 虚拟机的备份方法、恢复方法、装置及备份服务器集群 | |
CN110321339B (zh) | 一种数据迁移方法、装置、设备和存储介质 | |
US20120323821A1 (en) | Methods for billing for data storage in a tiered data storage system | |
CN104636286A (zh) | 用于数据访问的方法和设备 | |
CN112579692B (zh) | 一种数据同步方法、装置、系统、设备及存储介质 | |
EP3739450A1 (en) | Data processing method and apparatus, and computing device | |
CN111880967A (zh) | 云场景下的文件备份方法、装置、介质和电子设备 | |
CN113806300A (zh) | 数据存储方法、系统、装置、设备及存储介质 | |
EP3370166A1 (en) | Method and apparatus for model parameter fusion | |
CN112099991A (zh) | 数据备份及访问源数据的方法、装置、系统、存储介质 | |
CN115756955A (zh) | 一种数据备份、数据恢复的方法、装置及计算机设备 | |
CN111192070B (zh) | 存储服务计量方法及系统、计算机系统和可读存储介质 | |
CN114070847B (zh) | 服务器的限流方法、装置、设备及存储介质 | |
CN112631994A (zh) | 数据迁移方法及系统 | |
CN112486664A (zh) | 一种节点扩容方法、系统、终端及存储介质 | |
CN109150593B (zh) | 云数据系统中资源的管理方法和装置 | |
CN115695210A (zh) | 云服务器部署方法和装置、电子设备和存储介质 | |
CN110716690A (zh) | 数据回收方法和系统 | |
CN111754117B (zh) | 任务下发方法、装置、电子设备及存储介质 | |
CN106888244B (zh) | 一种业务处理方法及装置 | |
CN108848136B (zh) | 一种云服务集群的共享存储方法 | |
CN115080220A (zh) | 云资源分配方法及设备 | |
CN112817742A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200228 |