CN109388627A - 一种数据库访问的控制方法、装置及电子设备 - Google Patents

一种数据库访问的控制方法、装置及电子设备 Download PDF

Info

Publication number
CN109388627A
CN109388627A CN201710669923.XA CN201710669923A CN109388627A CN 109388627 A CN109388627 A CN 109388627A CN 201710669923 A CN201710669923 A CN 201710669923A CN 109388627 A CN109388627 A CN 109388627A
Authority
CN
China
Prior art keywords
database
user
subdata base
gray value
access request
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.)
Granted
Application number
CN201710669923.XA
Other languages
English (en)
Other versions
CN109388627B (zh
Inventor
马亚洲
段新法
陈希
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Singapore Holdings Pte Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710669923.XA priority Critical patent/CN109388627B/zh
Publication of CN109388627A publication Critical patent/CN109388627A/zh
Application granted granted Critical
Publication of CN109388627B publication Critical patent/CN109388627B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据库访问的控制方法、装置及电子设备。所述方法包括:获得第一数据库中用户标识对应的第m1个子数据库,及用户访问迁移后用户标识对应的第二数据库的第m2个子数据库;获得第二数据库包含的子数据库的数量k2;根据k2获得用户访问迁移过程中的灰度值;根据m1、m2及所述灰度值,将所述用户标识对应的用户访问请求从第一数据库逐步移到第二数据库的指定子数据库。在上述技术方案中,基于用户标识对应的第一数据库和第二数据库的子数据库及灰度值,将用户访问请求迁移到指定子数据库,从而解决了现有技术中用户访问迁移过程的正确性难以验证的技术问题,提高了用户访问迁移过程的可控性。

Description

一种数据库访问的控制方法、装置及电子设备
技术领域
本申请涉及数据库领域,特别涉及一种数据库访问的控制方法、装置及电子设备。
背景技术
随着互联网技术的不断发展,信息量呈爆炸式增长,一段时间之后数据库需要进行扩容或者数据迁移,相应的用户访问请求也随着迁移,以更好的满足需求。
为了在非停机状态下进行平稳、安全、可控的用户访问迁移,通常通过灰度的方式逐步完成迁移,如图1所示:在灰度内的用户迁移到新的数据库,该用户的用户访问请求迁移到新的数据库进行访问;在灰度外的用户的用户访问请求依然访问旧的数据库。
现有技术中,用户访问迁移过程中的灰度方案通常是依据用户ID来实现。用户ID按灰度值取模,取模结果小于灰度值的用户进入灰度内,对应的用户访问请求迁移至新的数据库,访问新的数据库;取模结果大于等于灰度值的用户ID排除在灰度外,对应的用户访问请求继续访问旧库。这种用户ID按灰度值取模的方案,用户和用户访问请求离散分布在各个数据库中,灰度值逐渐增大的过程中,数据库的用户读写流量变化无法确定,难以验证迁移过程的正确性。
发明内容
本申请实施例提供一种数据库访问的控制方法、装置及电子设备,用于解决现有技术中难以验证数据迁移过程的正确性的技术问题。
第一方面,本申请实施例提供一种数据库访问的控制方法,所述方法包括:
获得第一数据库中用户标识对应的第m1个子数据库,及用户访问迁移后所述用户标识对应的第二数据库的第m2个子数据库;
获得所述第二数据库包含的子数据库的数量k2
根据k2获得用户访问迁移过程中的灰度值;
根据m1、m2及所述灰度值,将所述用户标识对应的用户访问请求从所述第一数据库逐步移到所述第二数据库的指定子数据库。
可选的,所述根据m1、m2及所述灰度值,将所述用户表示对应的用户访问请求所访问的的数据库从所述第一数据库逐步迁移到所述第二数据库的指定子数据库,包括:
步骤1:根据m1、m2及所述灰度值,将所述第一数据库的第1个子数据库中的所述用户标识对应的用户访问请求分n3次迁移至所述指定子数据库,1<n3≤k2
步骤2:根据m1、m2及所述灰度值,将所述第一数据库的第j个子数据库中的所有所述用户标识对应的用户访问请求一次迁移至所述指定子数据库,1<j≤k1,k1为所述第一数据库包含的子数据库的数量。
可选的,所述方法还包括:
在执行步骤1的过程中,获得每次用户访问请求迁移后,所述第一数据库的用户读写流量的减少量和所述第二数据库的用户读写流量的增加量;
判断所述减少量与所述增加量是否相等;
若所述减少量与所述增加量相等,确认当前的所述灰度值正确;
若所述减少量与所述增加量不相等,确认当前的所述灰度值不正确,终止数据迁移,将已迁移的所述用户标识对应的用户访问请求回迁至所述第一数据库的第1个子数据库。
可选的,所述方法还包括:
在执行步骤2的过程中,在每次用户访问请求迁移后,获得所述第j个子数据库是否存在用户读写流量;
若所述第j个子数据库不存在用户读写流量,确定当前的所述灰度值对应的数据迁移是彻底的。
可选的,根据k2获得用户访问迁移过程中的灰度值,包括:
获得n1×k2+n2作为所述灰度值,n1、n2为自然数、初始值为1,所述灰度值在迁移过程中逐步增大;
所述根据m1、m2及所述灰度值,将所述用户标识对应的用户访问请求从所述第一数据库分批迁移到所述第二数据库的指定子数据库,包括:
若m1×k2+m2<n1×k2+n2,将所述用户标识对应的用户访问请求从所述第一数据库的第m1个子数据库迁移至所述第二数据库的第m2个子数据库。
可选的,所述获得n1×k2+n2作为所述灰度值,包括:
在用户访问迁移过程的步骤1中,n1=1,n2从所述初始值逐次增加,直到n2=k2+1;
在用户访问迁移过程的步骤2中,n2=k2+1,n1从所述初始值逐次增加,直到n1=k1,k1为所述第一数据库包含的子数据库的数量。
第二方面、本说明书实施例提供一种数据库访问的控制装置,所述装置包括:
第一获取单元,用于获得第一数据库中用户标识对应的第m1个子数据库,及用户访问迁移后所述用户标识对应的第二数据库的第m2个子数据库;
第二获取单元,用于获得所述第二数据库包含的子数据库的数量k2
第三获取单元,用于根据k2获得用户访问迁移过程中的灰度值;
迁移单元,用于根据m1、m2及所述灰度值,将所述用户标识对应的用户访问请求从所述第一数据库逐步移到所述第二数据库的指定子数据库。
可选的,所述迁移单元,用于:
步骤1:根据m1、m2及所述灰度值,将所述第一数据库的第1个子数据库中的所述用户标识对应的用户访问请求分n3次迁移至所述指定子数据库,1<n3≤k2
步骤2:根据m1、m2及所述灰度值,将所述第一数据库的第j个子数据库中的所有所述用户标识对应的用户访问请求一次迁移至所述指定子数据库,1<j≤k1,k1为所述第一数据库包含的子数据库的数量。
可选的,所述装置还包括:
第一监控单元,用于在执行步骤1的过程中,获得每次用户访问请求迁移后,所述第一数据库的用户读写流量的减少量和所述第二数据库的用户读写流量的增加量;判断所述减少量与所述增加量是否相等;若所述减少量与所述增加量相等,确认当前的所述灰度值正确;若所述减少量与所述增加量不相等,确认当前的所述灰度值不正确,终止数据迁移,将已迁移的所述用户标识对应的用户访问请求回迁至所述第一数据库的第1个子数据库。
可选的,所述装置还包括:
第二监控单元,用于在执行步骤2的过程中,在每次用户访问请求迁移后,获得所述第j个子数据库是否存在用户读写流量;若所述第j个子数据库不存在用户读写流量,确定当前的所述灰度值对应的数据迁移是彻底的。
可选的,所述第三获取单元用于:获得n1×k2+n2作为所述灰度值,n1、n2为自然数、初始值为1,所述灰度值在迁移过程中逐步增大;
所述迁移单元用于:若m1×k2+m2<n1×k2+n2,将所述用户标识对应的用户访问请求从所述第一数据库的第m1个子数据库迁移至所述第二数据库的第m2个子数据库。
可选的,所述迁移单元还用于:
在用户访问迁移过程的步骤1中,n1=1,n2从所述初始值逐次增加,直到n2=k2+1;
在用户访问迁移过程的步骤2中,n2=k2+1,n1从所述初始值逐次增加,直到n1=k1,k1为所述第一数据库包含的子数据库的数量。
第三方面、本说明书实施提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
获得第一数据库中用户标识对应的第m1个子数据库,及用户访问迁移后所述用户标识对应的第二数据库的第m2个子数据库;
获得所述第二数据库包含的子数据库的数量k2
根据k2获得用户访问迁移过程中的灰度值;
根据m1、m2及所述灰度值,将所述用户标识对应的用户访问请求从所述第一数据库逐步移到所述第二数据库的指定子数据库。
第四方面,本说明书实施例提供一种电子设备,包括:存储器以及一个或者一个以上的程序,其中,一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获得第一数据库中用户标识对应的第m1个子数据库,及用户访问迁移后所述用户标识对应的第二数据库的第m2个子数据库;
获得所述第二数据库包含的子数据库的数量k2
根据k2获得用户访问迁移过程中的灰度值;
根据m1、m2及所述灰度值,将所述用户标识对应的用户访问请求从所述第一数据库逐步移到所述第二数据库的指定子数据库。
本申请实施例中的上述一个或多个技术方案,至少具有如下技术效果:
本申请实施例提供一种数据库访问的控制方法,通过获得第一数据库中用户标识对应的第m1个子数据库,及用户访问迁移后用户标识对应的第二数据库的第m2个子数据库;获得第二数据库包含的子数据库的数量k2;根据k2获得用户访问迁移过程中的灰度值;根据m1、m2及灰度值,将所述用户标识对应的用户访问请求从所述第一数据库逐步移到所述第二数据库的指定子数据库,即用户访问所要迁移到的目标位置是第二数据库的指定子数据库,为此,每次用户访问迁移后可以通过指定子数据库的用户读写流量的增量来确定数据迁移是否正确,从而解决了现有技术中数据迁移过程中因用户访问请求离散分布导致数据迁移过程的正确性难以验证的技术问题,以便根据验证结果对用户访问迁移过程进行调控,提高了用户访问迁移过程的可控性。
附图说明
图1为现有技术中的用户访问迁移方法的示意图;
图2为本申请实施例提供的一种数据库访问的控制方法流程图;
图3为本申请实施例提供的步骤1对应的用户访问迁移过程的示意图;
图4为本申请实施例提供的步骤2对应的用户访问迁移过程的示意图;
图5为本申请实施例提供的一种数据库访问的控制装置的示意图;
图6为本申请实施例提供的一种电子设备的示意图。
具体实施方式
下面结合附图对本申请实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。
实施例
请参考图2,本申请实施例提供一种数据库访问的控制方法,应用于用户数据分库存储的用户访问迁移,该方法包括:
S21:获得第一数据库中用户标识对应的第m1个子数据库,及用户访问迁移后所述用户标识对应的第二数据库的第m2个子数据库。
S22:获得所述第二数据库包含的子数据库的数量k2
S23:根据k2获得用户访问迁移过程中的灰度值。
S24:根据m1、m2及所述灰度值,将所述用户标识对应的用户访问请求从所述第一数据库逐步移到所述第二数据库的指定子数据库。
具体实施过程中,本申请实施例提供的一种数据库访问的控制方法,用于确定用户访问迁移的先后顺序,适用于采用任一用户数据存储方式的数据库的用户访问迁移。用户数据存储方式即各个用户数据在第一数据库迁移到第二数据库时存储位置的变迁方式。用户数据存储位置的不同,该用户的用户标识对应的子数据库也就不同,本申请实施例并不限制用户访问迁移时,用户标识对应的子数据库。其中,用户标识即为用户ID,可以是用户名称、用户账号等。
首先执行S21和S22,其中,S21和S22在执行时不分先后。在执行S21、S22的同时还可以获得第一数据库包含的子数据库的数量k1。执行S21时根据已确认的用户数据存储方式,获得第一数据库中用户标识对应的第m1个子数据库,及用户访问迁移后该用户标识对应的第二数据库的第m2个子数据库,其中,1≤m1≤k1,1≤m2≤k2
接着,执行S23:根据k2获得用户访问迁移过程中的灰度值。具体的,用户访问迁移过程中的灰度值N=n1×k2+n2,n1、n2为自然数、初始值为1,所述灰度值在迁移过程中逐步增大。其中,n1可以看作是第一数据库的灰度值,n2可以看作第二数据库的灰度值。
进一步的,执行S24:根据m1、m2及获得的灰度值N,将用户标识对应的用户访问请求从第一数据库逐步移到第二数据库的指定子数据库。具体的数据迁移方案如下:
(1)、若m1×k2+m2<n1×k2+n2,将m1、m2对应的用户标识的用户访问请求从第一数据库的第m1个子数据库迁移至第二数据库的第m2个子数据库。此时,m1、m2对应的用户标识在灰度内,访问第二数据库。若数据迁移过程正确无误,迁移后第一数据库的第m1个子数据库读写流量减少量和第二数据库的第m2个子数据库的读写流量增加量是相当的。
(2)、若m1×k2+m2≥n1×k2+n2,不对m1、m2对应的用户标识的用户访问请求进行迁移。此时,m1、m2对应的用户在灰度外,访问第一数据库。
具体实施过程中,执行S14时,可以分两步执行:
步骤1、小步试探:根据m1、m2及灰度值N,将第一数据库的第1个子数据库中的用户标识对应的用户访问请求分n3次迁移至指定子数据库中,1<n3≤k2。其中,n3越小每次迁移的用户越多。反之,n3越大每次迁移的数据越少,在数据迁移的初期,有利于对用户访问迁移过程是否正确进行验证。
具体的:在步骤1中,n1=1保持不变,n2从初始值1逐次增加,直到n2=k2+1,即可完成第一数据库的第1个子数据库中的用户标识的用户访问请求分n3次迁移至指定子数据库m2。n2每次的增量可以为1、2、5等任一小于k2的值。每次n2的增加,用户标识对应的用户访问请求迁入的指定子数据库m2为:增加前的n2到增加后的n2-1。即在步骤1中,每次用户访问迁入的目标子数据库可以根据第二数据库的灰度值n2的变化来确定。
例1:如图3所示,n2每次的增量均为1;
当n2=1时,不进行用户访问请求迁移;
当n2=2时,m2=1,对第一数据库的第1个子数据库中需要迁移到第二数据库的第1个子数据库中的用户访问请求进行迁移;
当n2=3时,m2=2,对第一数据库的第1个子数据库中需要迁移到第二数据库的第2个子数据库中的用户访问请求进行迁移,依次列推。
例2:n2每次的增量均为2;
当n2=1时,不进行用户访问请求迁移;
当n2=3时,m2=1、2,对第一数据库的第1个子数据库中需要迁移到第二数据库的第1个子数据库和第2个子数据库中的用户访问请求进行迁移;
当n2=5时,m2=3、4,对第一数据库的第1个子数据库中需要迁移到第二数据库的第3个子数据库和第4个子数据库中的用户访问请求进行迁移,以此类推。
通过步骤1的小步试探,将第一数据库的第1个子数据库中的用户访问请求分多次进行迁移,每次迁移的用户访问请求较少,有利于进行用户访问迁移过程中的灰度值、数据迁移位置等情况的正确性进行验证。如:在执行步骤1的过程中,获得每次用户访问请求迁移后,第一数据库的用户读写流量的减少量和第二数据库的用户读写流量的增加量;判断所述减少量与所述增加量是否相等;若所述减少量与所述增加量相等,确认当前的所述灰度值正确;若所述减少量与所述增加量不相等,确认当前的所述灰度值不正确,终止用户访问请求迁移,将已迁移的所述用户标识对应的用户访问请求回迁至所述第一数据库的第1个子数据库中。
步骤2、大步前进:根据m1、m2及灰度值N,将第一数据库的第j个子数据库中的所有用户标识对应的用户访问请求一次迁移至指定子数据库中,1<j≤k1,k1为第一数据库包含的子数据库的数量。具体的,在步骤2中,n2=k2+1保持不变,n1从初始值1逐次增加,直到n1=k1。每次n1的增加,第二数据库中的每个子数据库均有用户访问请求的迁入,即此时m2为1~k2,如图4所示。每次n1增加后,第一数据库的第1~n1-1个子数据库中的用户访问请求被全部迁出。若n1每次增加1,那么步骤2中每次迁出1个子数据库对应的用户访问请求。同样的,在步骤2中,每次用户访问请求从哪一个子数据库迁出可以根据第一数据库的灰度值n1的变化来确定。
通过步骤2的大步前进,将第一数据库的第j个子数据库中的所有用户标识的用户访问请求迁移到第二数据库,可以监控被迁移后的的子数据库中是否还有用户读写流量来验证当前数据迁移采用的灰度值对应的数据迁移的彻底性。如:在执行步骤2的过程中,在每次用户访问请求迁移后,获得已进行数据迁移的第j个子数据库是否存在用户读写流量;若该第j个子数据库不存在用户读写流量,确定当前的灰度值对应的数据迁移是彻底的。反之,则能够确定当前的灰度值对应的数据迁移是不彻底的,需要进行调节。
下面通过一个具体的分库迁移实例,对本申请实施提供的数据库访问控制方法的实施过程进行完整说明。需要说明的是,本申请实施例并不限制子数据库的具体形式,可以是分库的形式,也可以是分表、分库和分表结合使用的形式。
第一数据库为旧库,包含8个子数据库:旧库1~8。第二数据库为新库,包含64个子数据库:新库1~64。此时,k2=64,数据迁移方法为:
(1)m1×64+m2<n1×64+n2,进行用户访问请求对应的访问位置迁移,对应用户访问新库;
(2)m1×64+m2≥n1×64+n2,不进行用户访问请求对应的访问位置迁移,对应用户访问旧库。
基于用户标识对应的分库的灰度实施过程如下:
步骤1:小步试探。灰度值初始值为n1=1、n2=1,所有的用户及其对应的用户标识都在灰度外,访问旧库。灰度过程中(如图3所示),n1=1保持不变,n2从1逐步增大到65,n2每增大1,旧库1减少1/(8×64)用户的读写流量,新库n2-1则增加1/(8×64)用户的读写流量。n2=65时落在旧库1的所有用户对应的用户标识都灰度到新库1-64上,完成旧库1的用户访问请求迁移。
步骤二:大步前进。灰度过程中(如图4所示),灰度值n2=65保持不变,n1从1逐步增大到8,n1每增大1,旧库n1减少1/8用户读写流量,即减少至0,新库1-64每库均增大1/(8×64)用户读写流量,完成对旧库n1库的用户数据迁移。n1=8时将所有用户标识对应的用户访问请求从旧库迁移到新库上。
通过上述实施方案进行数据迁移,能够达到如下有益效果:
(1)、小范围验证迁移正确性,在实施的步骤1中,灰度粒度为1/(8×64)约为千分之二,可以在较小范围内验证用户访问迁移的正确性;(2)、方便验证灰度彻底性,在实施的步骤2中,从监控上方便验证小于旧库灰度值的旧库是否还有用户读写流量;(3)方便监控,在灰度的过程中,灰度值每次变化都会明显体现在特定旧库读写流量的减少和新库读写流量的增大。
请参考图5,基于上述实施例提供的一种数据库访问的控制方法,本申请实施例还对应提供一种数据库访问的控制装置,包括:
第一获取单元51,用于:获得第一数据库中用户标识对应的第m1个子数据库,及用户访问迁移后所述用户标识对应的第二数据库的第m2个子数据库;
第二获取单元52,用于获得所述第二数据库包含的子数据库的数量k2
第三获取单元53,用于根据k2获得用户访问迁移过程中的灰度值;
迁移单元54,用于根据m1、m2及所述灰度值,将所述用户标识对应的用户访问请求从所述第一数据库逐步移到所述第二数据库的指定子数据库。
其中,所述迁移单元54用于分步进行数据迁移:步骤1:根据m1、m2及所述灰度值,将所述第一数据库的第1个子数据库中的所述用户标识对应的用户访问请求分n3次迁移至所述指定子数据库中,1<n3≤k2;步骤2:根据m1、m2及所述灰度值,将所述第一数据库的第j个子数据库中的所有所述用户标识对应的用户访问请求一次迁移至所述指定子数据库中,1<j≤k1,k1为所述第一数据库包含的子数据库的数量。
在具体实施过程中,所述装置还包括:第一监控单元55和/或第二监控单元56。
第一监控单元55用于:在执行步骤1的过程中,获得每次用户标识对应的访问请求迁移后,所述第一数据库的用户读写流量的减少量和所述第二数据库的用户读写流量的增加量;判断所述减少量与所述增加量是否相等;若所述减少量与所述增加量相等,确认当前的所述灰度值正确;若所述减少量与所述增加量不相等,确认当前的所述灰度值不正确,终止用户访问迁移,将已迁移的所述用户标识对应的用户访问请求回迁至所述第一数据库的第1个子数据库中。
第二监控单元56用于:在执行步骤2的过程中,在每次用户标识对应的访问请求迁移后,获得所述第j个子数据库是否存在用户读写流量;若所述第j个子数据库不存在用户读写流量,确定当前的所述灰度值对应的用户访问迁移是彻底的。
进一步的,所述第三获取单元53用于:获得n1×k2+n2作为所述灰度值,n1、n2为自然数、初始值为1,所述灰度值在迁移过程中逐步增大;所述迁移单元54用于:若m1×k2+m2<n1×k2+n2,将所述用户标识对应用户访问请求从所述第一数据库的第m1个子数据库迁移至所述第二数据库的第m2个子数据库。所述迁移单元54在获得n1×k2+n2作为所述灰度值时,还用于:在数据迁移过程的步骤1中,n1=1,n2从所述初始值逐次增加,直到n2=k2+1;在数据迁移过程的步骤2中,n2=k2+1,n1从所述初始值逐次增加,直到n1=k1,k1为所述第一数据库包含的子数据库的数量。
关于上述实施例中的装置,其中各个单元、模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种用于实现数据存储和/或处理方法的电子设备800的框图。例如,电子设备800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图6,电子设备800可以包括以下一个或多个组件:处理器802,存储器804,以及输入/输出(I/O)的接口806。处理器802通常控制电子设备800的整体操作。处理器802可以包括一个或多个,以完成上述的方法的全部或部分步骤。存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在电子设备800上操作的任何应用程序或方法的指令,可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。I/O接口806为处理器802和外围接口模块之间提供接口,该外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
在示例性实施例中,当存储器804中的指令由电子设备的处理器执行时,使得电子设备能够执行一种数据迁移方法,所述方法包括:
获得第一数据库中用户标识对应的第m1个子数据库,及用户访问迁移后所述用户标识对应的第二数据库的第m2个子数据库;获得所述第二数据库包含的子数据库的数量k2;根据k2获得用户访问迁移过程中的灰度值;根据m1、m2及所述灰度值,将所述用户标识对应的用户访问请求从所述第一数据库逐步移到所述第二数据库的指定子数据库。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种数据库访问的控制方法,其特征在于,所述方法包括:
获得第一数据库中用户标识对应的第m1个子数据库,及用户访问迁移后所述用户标识对应的第二数据库的第m2个子数据库;
获得所述第二数据库包含的子数据库的数量k2
根据k2获得用户访问迁移过程中的灰度值;
根据m1、m2及所述灰度值,将所述用户标识对应的用户访问请求从所述第一数据库逐步移到所述第二数据库的指定子数据库。
2.如权利要求1所述的方法,其特征在于,所述根据m1、m2及所述灰度值,将所述用户标识对应的用户访问请求从所述第一数据库逐步迁移到所述第二数据库的指定子数据库,包括:
步骤1:根据m1、m2及所述灰度值,将所述第一数据库的第1个子数据库中的所述用户标识对应的用户访问请求分n3次迁移至所述指定子数据库,其中,1<n3≤k2
步骤2:根据m1、m2及所述灰度值,将所述第一数据库的第j个子数据库中的所有所述用户标识对应的用户访问请求一次迁移至所述指定子数据库,其中,1<j≤k1,k1为所述第一数据库包含的子数据库的数量。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
在执行步骤1的过程中,获得每次用户标识对应的用户访问请求迁移后,所述第一数据库的用户读写流量的减少量和所述第二数据库的用户读写流量的增加量;
判断所述减少量与所述增加量是否相等;
若所述减少量与所述增加量相等,确认当前的所述灰度值正确;
若所述减少量与所述增加量不相等,确认当前的所述灰度值不正确,终止数据迁移,将已迁移的所述用户标识对应的用户访问请求回迁至所述第一数据库的第1个子数据库。
4.如权利要求2所述的方法,其特征在于,所述方法还包括:
在执行步骤2的过程中,在每次用户标识对应的访问请求迁移后,获得所述第j个子数据库是否存在用户读写流量;
若所述第j个子数据库不存在用户读写流量,确定当前的所述灰度值对应的数据迁移是彻底的。
5.如权利要求1~4任一所述的方法,其特征在于,根据k2获得用户访问迁移过程中的灰度值,包括:
获得n1×k2+n2作为所述灰度值,n1、n2为自然数、初始值为1,所述灰度值在迁移过程中逐步增大;
所述根据m1、m2及所述灰度值,将所述用户标识对应的用户访问请求从所述第一数据库分批迁移到所述第二数据库的指定子数据库,包括:
若m1×k2+m2<n1×k2+n2,将所述用户标识对应的用户访问请求从所述第一数据库的第m1个子数据库迁移至所述第二数据库的第m2个子数据库。
6.如权利要求5所述的方法,其特征在于,所述获得n1×k2+n2作为所述灰度值,包括:
在用户访问迁移过程的步骤1中,n1=1,n2从所述初始值逐次增加,直到n2=k2+1;
在用户访问迁移过程的步骤2中,n2=k2+1,n1从所述初始值逐次增加,直到n1=k1,k1为所述第一数据库包含的子数据库的数量。
7.一种数据库访问的控制装置,其特征在于,所述装置包括:
第一获取单元,用于获得第一数据库中用户标识对应的第m1个子数据库,及用户访问迁移后所述用户标识对应的第二数据库的第m2个子数据库;
第二获取单元,用于获得所述第二数据库包含的子数据库的数量k2
第三获取单元,用于根据k2获得用户访问迁移过程中的灰度值;
迁移单元,用于根据m1、m2及所述灰度值,将所述用户标识对应的用户访问请求从所述第一数据库逐步移到所述第二数据库的指定子数据库。
8.如权利要求7所述的装置,其特征在于,所述迁移单元,用于:
步骤1:根据m1、m2及所述灰度值,将所述第一数据库的第1个子数据库中的所述用户标识对应的用户访问请求分n3次迁移至所述指定子数据库,1<n3≤k2
步骤2:根据m1、m2及所述灰度值,将所述第一数据库的第j个子数据库中的所有所述用户标识对应的用户访问请求一次迁移至所述指定子数据库,1<j≤k1,k1为所述第一数据库包含的子数据库的数量。
9.如权利要求8所述的装置,其特征在于,所述装置还包括:
第一监控单元,用于在执行步骤1的过程中,获得每次用户标识对应的访问请求迁移后,所述第一数据库的用户读写流量的减少量和所述第二数据库的用户读写流量的增加量;判断所述减少量与所述增加量是否相等;若所述减少量与所述增加量相等,确认当前的所述灰度值正确;若所述减少量与所述增加量不相等,确认当前的所述灰度值不正确,终止数据迁移,将已迁移的所述用户标识对应的用户访问请求回迁至所述第一数据库的第1个子数据库。
10.如权利要求8所述的装置,其特征在于,所述装置还包括:
第二监控单元,用于在执行步骤2的过程中,在每次用户标识的用户访问请求迁移后,获得所述第j个子数据库是否存在用户读写流量;若所述第j个子数据库不存在用户读写流量,确定当前的所述灰度值对应的数据迁移是彻底的。
11.如权利要求7~10任一所述的装置,其特征在于,所述第三获取单元用于:获得n1×k2+n2作为所述灰度值,n1、n2为自然数、初始值为1,所述灰度值在迁移过程中逐步增大;
所述迁移单元用于:若m1×k2+m2<n1×k2+n2,将所述用户标识对应的用户访问请求从所述第一数据库的第m1个子数据库迁移至所述第二数据库的第m2个子数据库。
12.如权利要求11所述的装置,其特征在于,所述迁移单元还用于:
在用户访问迁移过程的步骤1中,n1=1,n2从所述初始值逐次增加,直到n2=k2+1;
在用户访问迁移过程的步骤2中,n2=k2+1,n1从所述初始值逐次增加,直到n1=k1,k1为所述第一数据库包含的子数据库的数量。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现以下步骤:
获得第一数据库中用户标识对应的第m1个子数据库,及用户访问迁移后所述用户标识对应的第二数据库的第m2个子数据库;
获得所述第二数据库包含的子数据库的数量k2
根据k2获得用户访问迁移过程中的灰度值;
根据m1、m2及所述灰度值,将所述用户标识对应的用户访问请求从所述第一数据库逐步移到所述第二数据库的指定子数据库。
14.一种电子设备,其特征在于,包括:存储器以及一个或者一个以上的程序,其中,一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获得第一数据库中用户标识对应的第m1个子数据库,及用户访问迁移后所述用户标识对应的第二数据库的第m2个子数据库;
获得所述第二数据库包含的子数据库的数量k2
根据k2获得用户访问迁移过程中的灰度值;
根据m1、m2及所述灰度值,将所述用户标识对应的用户访问请求从所述第一数据库逐步移到所述第二数据库的指定子数据库。
CN201710669923.XA 2017-08-08 2017-08-08 一种数据库访问的控制方法、装置及电子设备 Active CN109388627B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710669923.XA CN109388627B (zh) 2017-08-08 2017-08-08 一种数据库访问的控制方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710669923.XA CN109388627B (zh) 2017-08-08 2017-08-08 一种数据库访问的控制方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN109388627A true CN109388627A (zh) 2019-02-26
CN109388627B CN109388627B (zh) 2022-08-09

Family

ID=65412584

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710669923.XA Active CN109388627B (zh) 2017-08-08 2017-08-08 一种数据库访问的控制方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN109388627B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110209650A (zh) * 2019-05-05 2019-09-06 苏宁易购集团股份有限公司 数据规整迁移方法、装置、计算机设备和存储介质

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331993A (zh) * 2011-06-23 2012-01-25 北京新媒传信科技有限公司 分布式数据库的数据迁移方法和分布式数据库迁移系统
CN102495857A (zh) * 2011-11-21 2012-06-13 北京新媒传信科技有限公司 一种分布式数据库的负载均衡方法
CN103166860A (zh) * 2011-12-19 2013-06-19 中兴通讯股份有限公司 一种p2p叠加网络数据迁移的方法和装置
CN103176790A (zh) * 2011-12-26 2013-06-26 阿里巴巴集团控股有限公司 应用发布方法和系统
CN103379138A (zh) * 2012-04-17 2013-10-30 深圳市腾讯计算机系统有限公司 实现负载均衡的方法及系统和灰度发布的方法及装置
US20140173229A1 (en) * 2012-12-17 2014-06-19 International Business Machines Corporation Method and Apparatus for Automated Migration of Data Among Storage Centers
US20140359128A1 (en) * 2013-05-29 2014-12-04 International Business Machines Corporation Coordinating Application Migration Processes
CN104598463A (zh) * 2013-10-31 2015-05-06 阿里巴巴集团控股有限公司 用于切换数据库的方法和装置
CN104834635A (zh) * 2014-02-07 2015-08-12 中国移动通信集团广东有限公司 一种数据处理方法和装置
CN105099988A (zh) * 2014-04-24 2015-11-25 阿里巴巴集团控股有限公司 用于支持灰度发布的方法、访问方法以及装置和系统
CN105718570A (zh) * 2016-01-20 2016-06-29 北京京东尚科信息技术有限公司 用于数据库的数据迁移方法和装置
US20160308726A1 (en) * 2015-04-14 2016-10-20 SkyKick, Inc. Server load management for data migration
CN106100927A (zh) * 2016-06-20 2016-11-09 浪潮电子信息产业股份有限公司 一种实现ssr灰度发布的方法
CN106844510A (zh) * 2016-12-28 2017-06-13 北京五八信息技术有限公司 一种分布式数据库集群的数据迁移方法和装置

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331993A (zh) * 2011-06-23 2012-01-25 北京新媒传信科技有限公司 分布式数据库的数据迁移方法和分布式数据库迁移系统
CN102495857A (zh) * 2011-11-21 2012-06-13 北京新媒传信科技有限公司 一种分布式数据库的负载均衡方法
CN103166860A (zh) * 2011-12-19 2013-06-19 中兴通讯股份有限公司 一种p2p叠加网络数据迁移的方法和装置
CN103176790A (zh) * 2011-12-26 2013-06-26 阿里巴巴集团控股有限公司 应用发布方法和系统
CN103379138A (zh) * 2012-04-17 2013-10-30 深圳市腾讯计算机系统有限公司 实现负载均衡的方法及系统和灰度发布的方法及装置
US20140173229A1 (en) * 2012-12-17 2014-06-19 International Business Machines Corporation Method and Apparatus for Automated Migration of Data Among Storage Centers
US20140359128A1 (en) * 2013-05-29 2014-12-04 International Business Machines Corporation Coordinating Application Migration Processes
CN104598463A (zh) * 2013-10-31 2015-05-06 阿里巴巴集团控股有限公司 用于切换数据库的方法和装置
CN104834635A (zh) * 2014-02-07 2015-08-12 中国移动通信集团广东有限公司 一种数据处理方法和装置
CN105099988A (zh) * 2014-04-24 2015-11-25 阿里巴巴集团控股有限公司 用于支持灰度发布的方法、访问方法以及装置和系统
US20160308726A1 (en) * 2015-04-14 2016-10-20 SkyKick, Inc. Server load management for data migration
CN105718570A (zh) * 2016-01-20 2016-06-29 北京京东尚科信息技术有限公司 用于数据库的数据迁移方法和装置
CN106100927A (zh) * 2016-06-20 2016-11-09 浪潮电子信息产业股份有限公司 一种实现ssr灰度发布的方法
CN106844510A (zh) * 2016-12-28 2017-06-13 北京五八信息技术有限公司 一种分布式数据库集群的数据迁移方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110209650A (zh) * 2019-05-05 2019-09-06 苏宁易购集团股份有限公司 数据规整迁移方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN109388627B (zh) 2022-08-09

Similar Documents

Publication Publication Date Title
CN106415559B (zh) 健康数据聚合器
CN108334439B (zh) 一种压力测试方法、装置、设备和存储介质
CN106096352A (zh) 一种移动终端的防沉迷控制方法、装置及移动终端
CN104142781B (zh) 输入时间相关数据的方法和系统
CN103945430B (zh) 一种移动终端类型推荐方法及装置
CN102750486A (zh) 一种登录控件更新登录信息的方法和装置
CN109492024A (zh) 数据处理方法、装置、计算机设备以及存储介质
CN110795175A (zh) 模拟控制智能终端的方法、装置及智能终端
CN107943466A (zh) 数据库访问语句生成方法、装置及设备
CN109614271A (zh) 多个集群数据一致性的控制方法、装置、设备及存储介质
CN106897345A (zh) 一种数据存储的方法及装置
CN105654344A (zh) 一种控制广告播放频次的方法及装置
CN109388627A (zh) 一种数据库访问的控制方法、装置及电子设备
CN109948050A (zh) 信息处理方法和装置,存储介质和电子设备
CN103699291B (zh) 一种控制电子设备的方法及电子设备
CN109299859A (zh) 数据的评测方法、装置、设备及存储介质
CN115794570A (zh) 压力测试方法、装置、设备及计算机可读存储介质
TWI231451B (en) Program testing system and method
CN108037968A (zh) 执行进度的显示方法、装置、存储介质和电子设备
CN110990779A (zh) 游戏资源的转移方法、服务器及存储介质
CN107562786A (zh) 文件存储方法、终端和计算机可读存储介质
CN105204774B (zh) 一种数据处理方法及电子设备
CN116168403A (zh) 医疗数据分类模型训练方法、分类方法、装置及相关介质
US11918903B2 (en) Apparatus, method, and computer-readable recording medium for enhancing memory
CN110175450A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240206

Address after: # 01-21, Lai Zan Da Building 1, 51 Belarusian Road, Singapore

Patentee after: Alibaba Singapore Holdings Ltd.

Country or region after: Singapore

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: ALIBABA GROUP HOLDING Ltd.

Country or region before: United Kingdom