实例迁移的方法和装置与流程

文档序号:18301596发布日期:2019-07-31 10:13阅读:200来源:国知局
实例迁移的方法和装置与流程

本发明涉及云数据库技术领域,尤其涉及一种实例迁移的方法和装置。



背景技术:

云数据库多租户,是指同一台物理机上运行不同用户的数据库实例(进程),通过某些资源隔离的方式将整机资源(磁盘容量,内存,网络带宽等)按用户购买量进行隔离和分配,用户间互不影响。

在机器过保、机器硬件损坏、实例规格升级等场景下,需要把用户的数据从一台机器搬迁到另外一台机器,一般是通过搬迁全量数据,再加上同步增量数据的方式实现,这个过程称为云数据库的实例迁移。

但是,在大实例场景下,云数据库的实例迁移是非常耗时的,因此迫切需要一种迁移的备份策略可以加快迁移进度。



技术实现要素:

为了解决上述问题,本发明提供一种实例迁移的方法和装置,可以基于历史数据统计分析,量化数据迁移的过程耗时,迁移时可据此选择更优的备份策略,加快迁移进度。

本发明提供一种实例迁移的方法,包括:

根据估算的所述实例的已有备份集的迁移时间和同步增量数据的迁移时间确定所述实例迁移所需的第一时间;

根据估算的重新备份所述实例的迁移时间和同步增量数据的迁移时间确定所述实例迁移所需的第二时间;

若所述第一时间大于所述第二时间,则采用重新备份所述实例进行实例迁移,若所述第二时间大于所述第一时间,则采用所述已有备份集进行实例迁移。

可选地,所述实例迁移所需的第一时间包括:获取所述已有备份集的时间、还原所述已有备份集的时间和所述同步增量数据的迁移时间;

所述实例迁移所需的第二时间包括:获取重新备份所述实例的时间、还原重新备份所述实例的时间和所述同步增量数据的迁移时间。

可选地,所述的方法还包括:

根据所述已有备份集的实际资源使用量估算获取所述已有备份集的时间和还原所述已有备份集的时间;

所述已有备份集的实际资源使用量包括所述已有备份集的cpu利用率和内存利用率。

可选地,所述的方法还包括:

根据所述实例的实际资源使用量估算获取重新备份所述实例的时间和还原重新备份所述实例的时间;

所述实例的实际资源使用量包括所述实例的cpu利用率和内存利用率。

可选地,所述的方法还包括:

根据所述同步增量数据的实际资源使用量估算所述同步增量数据的迁移时间;

所述同步增量数据的实际资源使用量包括所述同步增量数据的cpu利用率和内存利用率。

本申请还提供一种实例迁移的装置,包括:

第一确定模块,用于根据估算的所述实例的已有备份集的迁移时间和同步增量数据的迁移时间确定所述实例迁移所需的第一时间;

第二确定模块,用于根据估算的重新备份所述实例的迁移时间和同步增量数据的迁移时间确定所述实例迁移所需的第二时间;

第三确定模块,用于若所述第一时间大于所述第二时间,则采用重新备份所述实例进行实例迁移,若所述第二时间大于所述第一时间,则采用所述已有备份集进行实例迁移。

可选地,所述实例迁移所需的第一时间包括:获取所述已有备份集的时间、还原所述已有备份集的时间、所述同步增量数据的迁移时间和其他时间;

所述实例迁移所需的第二时间包括:获取重新备份所述实例的时间、还原重新备份所述实例的时间和所述同步增量数据的迁移时间。

可选地,所述的装置还包括:

第一估算模块,用于根据所述已有备份集的实际资源使用量估算获取所述已有备份集的时间和还原所述已有备份集的时间;

所述已有备份集的实际资源使用量包括所述已有备份集的cpu利用率和内存利用率。

可选地,所述的装置还包括:

第二估算模块,用于根据所述实例的实际资源使用量估算获取重新备份所述实例的时间和还原重新备份所述实例的时间;

所述实例的实际资源使用量包括所述实例的cpu利用率和内存利用率。

可选地,所述的装置还包括:

第三估算模块,根据所述同步增量数据的实际资源使用量估算所述同步增量数据的迁移时间;

所述同步增量数据的实际资源使用量包括所述同步增量数据的cpu利用率和内存利用率。

本发明实施例通过在实例迁移时,根据估算的所述实例的已有备份集的迁移时间和同步增量数据的迁移时间确定所述实例迁移所需的第一时间;根据估算的重新备份所述实例的迁移时间和同步增量数据的迁移时间确定所述实例迁移所需的第二时间;若第一时间大于第二时间,则采用所述已有备份集进行实例迁移,若第二时间大于第一时间,则采用重新备份所述实例进行实例迁移。可以实现基于对历史数据的资源使用量的统计分析,量化数据迁移的过程耗时,迁移时可据此选择更优的备份策略,加快迁移进度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的实例迁移的方法的流程示意图;

图2为本发明实施例采用的实例迁移所需的第一时间的示意图;

图3为本发明实施例采用的实例迁移所需的第二时间的示意图;

图4为本发明一实施例提供的实例迁移的装置结构示意图;

图5为使用已有备份集进行实例迁移的总耗时的示意图;

图6为重新备份进行实例迁移的总耗时的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

云计算(cloudcomputing)是一种基于互联网的计算方式,通常云计算服务提供方可以根据不同用户的需求,将主机(也可称为云服务器)上的资源进行划分,从而为每个用户分配大小不同的资源,这些资源可以包括cpu(centralprocessingunit,中央处理器)、内存、存储空间等,分配给每个用户的资源组成该用户的实例,或者也可称为虚拟机。通常一台主机的资源可以划分为多个实例,以供多个用户使用。

本发明实施例中实例迁移通常发生在机器过保、机器硬件损坏、实例规格升级等场景下。例如,当数据库服务器的性能参数值较大、且超出数据库服务器预先设定的性能参数阈值区间的上限值时,数据库服务器以及其上的数据库实例可能无法提供稳定的服务。这种情况下,可以采用本申请提供的实例迁移的备份策略方法,选择耗时小的实例迁移备份策略,将数据库实例迁移到其他数据库服务器中,缓解数据库服务器的工作压力,避免数据库服务器的工作压力过大甚至超出数据库服务器的负荷能力带来的风险。

下面对本发明的实例迁移的方法进行详细的说明。

图1为本发明一实施例提供的实例迁移的方法的流程示意图,如图1所示,包括:

101、在实例迁移时,根据估算的所述实例的已有备份集的迁移时间和同步增量数据的迁移时间确定所述实例迁移所需的第一时间;

通常,实例迁移都是需要通过创建空实例,当存在已有备份集,可以使用已有备份集,此时需要在空实例中使用已有备份集做全量恢复,之后与原实例搭建复制,同步增量数据等数据同步后,切换数据链路实现实例的迁移。

图2为本发明实施例采用的实例迁移所需的第一时间的示意图,如图2所示,实例迁移所需的第一时间为安装空实例的时间(t2-t1)、获取所述已有备份集的时间t0、还原所述已有备份集的时间(t3-t2)、所述同步增量数据的迁移时间和其他时间之和;

即,实例迁移所需的第一时间=安装空实例的时间+获取已有备份集的时间+还原已有备份集的时间+获取同步增量数据的迁移时间+其他时间;

正常情况下,安装空实例的时间和其他时间为常量。因此,获取已有备份集的时间、还原已有备份集的时间和所述同步增量数据的迁移时间是决定实例迁移的第一时间的大小。

需要说明的是,本发明实施例中,可以根据所述已有备份集的实际资源使用量估算获取已有备份集的时间和还原已有备份集的时间,其中,已有备份集的实际资源使用量包括但不限于已有备份集的cpu利用率和内存利用率。其中,可以通过对已有备份集的实际资源使用量进行线性回归分析,获得已有备份集获取和还原时所需的预测资源使用量。线性回归分析是一种数理统计方式,用于确定两种或两种以上变量间相互依赖的定量关系的一种分析方法,本实施例中采用线性回归分析可以根据过去一个月内每一天已有备份集的实际资源使用量,估算出已有备份集获取和还原时的预测资源使用量。

102、根据估算的重新备份所述实例的迁移时间和同步增量数据的迁移时间确定所述实例迁移所需的第二时间;

在大实例场景下,由于获取已有备份集的时间和还原已有备份集的时间通常是非常耗时,因此,可以不使用已有备份集,而是可以选在重新备份实例的策略进行实例迁移。

图3为本发明实施例采用的实例迁移所需的第二时间的示意图,如图3所示,实例迁移所需的第二时间为安装空实例的时间(t2-t1)、获取重新备份所述实例的时间(t3-t2)、还原重新备份所述实例的时间(t4-t3)、所述同步增量数据的迁移时间和其他时间之和。

即实例迁移所需的第二时间=安装空实例的时间+获取重新备份所述实例的时间+还原重新备份所述实例的时间+同步增量数据的迁移时间+其他时间;

正常情况下,安装空实例的时间和其他时间为常量。因此,获取重新备份所述实例的时间、还原重新备份所述实例的时间和所述同步增量数据的迁移时间是决定实例迁移的第二时间的大小。

需要说明的是,本发明实施例中,可以根据所述实例的实际资源使用量估算获取重新备份所述实例的时间和还原重新备份所述实例的时间,其中,所述实例的实际资源使用量包括但不限于所述实例的cpu利用率和内存利用率。其中,可以通过对每个实例的实际资源使用量进行线性回归分析,获得每个实例迁移时所需的预测资源使用量。线性回归分析是一种数理统计方式,用于确定两种或两种以上变量间相互依赖的定量关系的一种分析方法,本实施例中采用线性回归分析可以根据过去一个月内每一天实例的实际资源使用量,估算出实例迁移的预测资源使用量。

需要说明的是,上述步骤101和102中有关同步增量数据的迁移时间可以根据所述同步增量数据的实际资源使用量估算所述同步增量数据的迁移时间,所述同步增量数据的实际资源使用量包括但不限于所述同步增量数据的cpu利用率和内存利用率。其中,同步增量数据的实际资源使用量可以通过cgroups工具采集得到。

103、比较第一时间是否大于第二时间,若是,则执行步骤104、否则执行步骤105。

需要说明的是,假设第一时间等于第二时间,则可以选择步骤104或步骤105中任一个执行。

104、采用重新备份所述实例进行实例迁移。

当采用重新备份所述实例进行实例迁移所需的第二时间比较小时,说明采用重新备份所述实例可以加快实例迁移的进度。

105、采用所述已有备份集进行实例迁移。

当采用已有备份集进行实例迁移所需的第一时间比较小时,说明采用已有备份集可以加快实例迁移的进度。

本发明实施例在实例迁移时,根据估算的所述实例的已有备份集的迁移时间和同步增量数据的迁移时间确定所述实例迁移所需的第一时间;根据估算的重新备份所述实例的迁移时间和同步增量数据的迁移时间确定所述实例迁移所需的第二时间;若第一时间大于第二时间,则采用所述已有备份集进行实例迁移,若第二时间大于第一时间,则采用重新备份所述实例进行实例迁移。可以实现基于对历史数据的资源使用量的统计分析,量化数据迁移的过程耗时,迁移时可据此选择更优的备份策略,加快迁移进度。

图4为本发明一实施例提供的实例迁移的装置结构示意图,如图4所示,包括:

第一确定模块,用于根据估算的所述实例的已有备份集的迁移时间和同步增量数据的迁移时间确定所述实例迁移所需的第一时间;

第二确定模块,用于根据估算的重新备份所述实例的迁移时间和同步增量数据的迁移时间确定所述实例迁移所需的第二时间;

第三确定模块,用于若所述第一时间大于所述第二时间,则采用重新备份所述实例进行实例迁移,若所述第二时间大于所述第一时间,则采用所述已有备份集进行实例迁移。

可选地,所述实例迁移所需的第一时间包括:获取所述已有备份集的时间、还原所述已有备份集的时间和所述同步增量数据的迁移时间;

所述实例迁移所需的第二时间包括:获取重新备份所述实例的时间、还原重新备份所述实例的时间和所述同步增量数据的迁移时间;

可选地,所述的装置还包括:

第一估算模块,用于根据所述已有备份集的实际资源使用量估算获取所述已有备份集的时间和还原所述已有备份集的时间;其中第一估算模块估算的时间可以用于第一确定模块确定上述第一时间;

所述已有备份集的实际资源使用量包括所述已有备份集的cpu利用率和内存利用率。

可选地,所述的装置还包括:

第二估算模块,用于根据所述实例的实际资源使用量估算获取重新备份所述实例的时间和还原重新备份所述实例的时间;其中第二估算模块估算的时间可以用于第二确定模块确定上述第二时间;

所述实例的实际资源使用量包括所述实例的cpu利用率和内存利用率。

可选地,所述的装置还包括:

第三估算模块,根据所述同步增量数据的实际资源使用量估算所述同步增量数据的迁移时间;其中第三估算模块估算的时间可以用于第一确定模块确定上述第一时间和第二确定模块确定上述第二时间;

所述同步增量数据的实际资源使用量包括所述同步增量数据的cpu利用率和内存利用率。

本发明实施例所述的装置可以上述实施例所示的方法,其实现原理和技术效果不再赘述。

需要说明的是,在上述实施例中,实例迁移耗时时间,可以简化为:

totaltime=installemptyinstime+getbackuptime(inssize)+recoverbackuptime(backupsize)+syncincrementtime(delayseconds)+otheroperationtime;

其中,installinstime:安装空实例耗时;

getbackuptime:获取实例备份耗时;

recoverbackuptime:还原备份集耗时;

synctime:同步增量数据耗时;

other:其他步骤耗时;

在实例迁移时,当存在已有备份集时,使用已有备份集进行实例迁移的总耗时如图5所示:

totalcost2=installinstime+recoverbackuptime(backupsizebefore)+synctime(t3′-t0′)+others=installinstime+recoverbackuptime(backupsizebefore)+synctime(installinstime+recoverbackuptime(backupsizebefore)+t1′-t0′)+others。

当不使用已有的备份集时,而重新备份进行实例迁移的总耗时如图6所示:

totalcost1=installinstime+getbackuptime(inssizenow)+recoverbackuptime(backupsizenow)+synctime(t4-t3)+others=installinstime+getbackuptime(inssizenow)+recoverbackuptime(backupsizenow)+synctime(recoverbackuptime(backupsizenow))+others。

其中,installinstime,others正常情况下,可看作为常量。

对上述两者耗时比较:

totalcost1-totalcost2=getbackuptime(inssizenow)+recoverbackuptime(backupsizenow)-recoverbackuptime(backupsizebefore)+synctime(recoverbackuptime(backupsizenow))-synctime(installinstime+recoverbackuptime(backupsizebefore)+t1′-t0′);

其中,getbackuptime、recoverbackuptime与实例大小或者备份集大小有关,synctime与主备之间的延迟有关,可以由历史数据根据参数计算估值;

因此,基于历史数据的统计分析,可以计算出totalcost1-totalcost2的值,如果totalcost1-totalcost2>x(0或者某个给定常量),那么选择重新备份完成迁移;否则,使用已有备份集完成迁移。

本发明实施例中,上述实例迁移的装置的结构中包括处理器和存储器,所述存储器用于存储支持实例迁移的装置执行上述图1所示实施例中实例迁移的方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。

所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理器调用执行。

本发明实施例还提供了一种计算机存储介质,用于储存实例迁移的装置所用的计算机软件指令,所述计算机软件指令包含了用于执行上述实例迁移的方法为实例迁移的装置所涉及的程序。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1