System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及云计算,尤其涉及一种数据迁移方法及系统。
技术介绍
1、在云计算场景下,随着应用的变化,其后端的存储服务(例如,数据库)存在数据迁移的可能。为此,一些云服务厂商提供了相关的云服务,例如,关系型数据库服务(relational database service,rds)和数据库迁移服务(database migration service,dms)。但是,利用上述云服务进行数据迁移时会导致应用中断。
技术实现思路
1、本申请提供了一种数据迁移方法及系统,能够在不中断应用的情况下实现其后端存储服务的数据迁移。
2、第一方面,本申请提供了一种数据迁移方法。该方法可以用于数据迁移系统。数据迁移系统包括迁移模块、缓存模块和存储接口模块。存储接口模块接收来自应用的数据操作请求,将该数据操作请求发送至源存储实例,并将该数据操作请求缓存至缓存模块。迁移模块迁移源存储实例中的数据至目标存储实例,将缓存模块中的数据操作请求发送至目标存储实例。存储接口模块停止向源存储实例发送来自业务的、新的数据操作请求,并向目标存储实例发送该新的数据操作请求。
3、本申请提供的技术方案中,数据迁移系统可以通过存储接口模块实现应用与源存储实例之间的隔离,而且在迁移源存储实例中的数据至目标存储实例的过程中,存储接口模块可以将来自应用的数据操作请求发送至源存储实例,使得应用仍可以对源存储实例进行写入操作,因此可以保证数据迁移过程中应用不会被中断。也即是说,通过上述数据迁移系统可以在不中断应用
4、在第一方面的一种可能实现方式中,上述方法还包括:当缓存模块中的数据操作请求满足预设条件时,存储接口模块挂起(suspend)新的数据操作请求。其中,预设条件包括以下任一个或多个:缓存模块中的数据操作请求的数量小于第一阈值,缓存模块中的数据操作请求的数据量小于第二阈值。挂起新的数据操作请求是指存储接口模块接收到来自应用的、新的数据操作请求后,不将该数据操作请求发送至源存储实例,也不将该数据操作请求缓存至缓存模块。应理解,当缓存模块中的数据操作请求满足预设条件时,说明当前缓存模块中的数据操作请求很少,那么新的数据操作请求被挂起的时间就会很短。由于存储接口模块隔离了应用和源存储实例,因此对于应用而言未被中断。
5、在第一方面的一种可能实现方式中,上述存储接口模块向目标存储实例发送新的所述数据操作请求,包括:当缓存模块中的数据操作请求的数量和/或数据量为0时,存储接口模块向目标存储实例发送新的数据操作请求。应理解,当缓存模块中的数据操作请求的数量和/或数据量为0时,说明源存储实例中的所有数据已经全部迁移至目标存储实例,此时目标存储实例可以代替源存储实例,因此,存储接口模块可以直接将新的数据操作请求发送至目标存储实例。
6、在第一方面的一种可能实现方式中,源存储实例和目标存储实例为异构数据库。也即是说,本申请提供的技术方案支持异构数据库之间的数据迁移。
7、在第一方面的一种可能实现方式中,上述数据迁移系统还包括管理模块。管理模块支持接收租户的配置,以及支持向租户展示数据迁移的状态。其中,租户的配置包括以下任一项或多项:源存储实例的标识、目标存储实例的标识、数据迁移策略。数据迁移策略指示以下任一项或多项操作:将源存储实例中的数据的格式转换为目标存储实例支持的格式,并将格式转换后的数据迁移至目标存储实例;将缓存模块中的数据操作请求的格式转换为目标存储实例支持的格式,并将格式转换后的数据操作请求发送至目标存储实例;将新的数据操作请求的格式转换为目标存储实例支持的格式,并将格式转换后的、新的数据操作请求发送至目标存储实例。数据迁移的状态是指本次数据迁移任务的完成情况,例如,缓存模块中的数据操作请求的数量或数据量,当前已经从源存储实例中迁移了多少数据,预计需要多久才能完成数据迁移等。通过上述实现方式中,租户可以根据实际的业务需求灵活地配置数据迁移任务,也可以实时查看数据迁移任务的进展。
8、在第一方面的一种可能实现方式中,上述存储接口模块向目标存储实例发送新的数据操作请求,包括:存储接口模块根据数据迁移策略将新的数据操作请求的格式转换为目标存储实例支持的格式,将格式转换后的、新的数据操作请求发送至目标存储实例。应理解,上述实现方式中,存储接口模块具有数据库协议的适配和转换功能,从而可以实现异构数据库之间的数据迁移。
9、第二方面,本申请提供了另一种数据迁移方法。该方法可以用于数据迁移系统。数据迁移系统包括迁移模块、缓存模块和存储接口模块。存储接口模块接收来自应用的数据操作请求,将该数据操作请求发送至源存储实例,并将该数据操作请求缓存至缓存模块。迁移模块迁移源存储实例中的数据至目标存储实例,将缓存模块中的数据操作请求发送至目标存储实例。存储接口模块向源存储实例和目标存储实例发送来自业务的、新的数据操作请求。
10、本申请提供的技术方案中,数据迁移系统可以通过存储接口模块实现应用与源存储实例之间的隔离,而且在迁移源存储实例中的数据至目标存储实例的过程中,存储接口模块可以将来自应用的数据操作请求发送至源存储实例,使得应用仍可以对源存储实例进行写入操作,因此可以保证数据迁移过程中应用不会被中断。也即是说,通过上述数据迁移系统可以在不中断应用的情况下,将源存储实例中的数据迁移至目标存储实例。
11、在第二方面的一种可能实现方式中,上述方法还包括:当缓存模块中的数据操作请求满足预设条件时,存储接口模块挂起新的数据操作请求。其中,预设条件包括以下任一个或多个:缓存模块中的数据操作请求的数量小于第一阈值,缓存模块中的数据操作请求的数据量小于第二阈值。挂起新的数据操作请求是指存储接口模块接收到来自应用的、新的数据操作请求后,不将该数据操作请求发送至源存储实例,也不将该数据操作请求缓存至缓存模块。应理解,当缓存模块中的数据操作请求满足预设条件时,说明当前缓存模块中的数据操作请求很少,那么新的数据操作请求被挂起的时间就会很短。由于存储接口模块隔离了应用和源存储实例,因此对于应用而言未被中断。
12、在第二方面的一种可能实现方式中,目标存储实例是源存储实例的分表。也即是说,本申请提供的技术方案支持分表场景下之间的数据迁移。
13、在第二方面的一种可能实现方式中,上述存储接口模块向源存储实例和目标存储实例发送新的所述数据操作请求,包括:当缓存模块中的数据操作请求的数量和/或数据量为0时,存储接口模块向源存储实例和目标存储实例发送新的数据操作请求。应理解,当缓存模块中的数据操作请求的数量和/或数据量为0时,说明源存储实例中符合迁移要求数据已经全部迁移至目标存储实例,即完成了对源存储实例的拆分。因此,存储接口模块可以直接将新的数据操作请求发送至源存储实例和目标存储实例。
14、在第二方面的一种可能实现方式中,上述数据迁移系统还包括管理模块。管理模块支持接收租户的配置,以及支持向租户展示数据迁移的状本文档来自技高网...
【技术保护点】
1.一种数据迁移方法,其特征在于,所述方法用于数据迁移系统,所述系统包括迁移模块、缓存模块和存储接口模块,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述存储接口模块向所述目标存储实例发送新的所述数据操作请求,包括:
4.根据权利要求1至3任一项所述的方法,其特征在于,所述源存储实例和所述目标存储实例为异构数据库。
5.根据权利要求4所述的方法,其特征在于,所述系统还包括管理模块,所述管理模块支持接收租户的配置,以及支持向所述租户展示数据迁移的状态;
6.根据权利要求5所述的方法,其特征在于,所述存储接口模块向所述目标存储实例发送新的所述数据操作请求,包括:
7.一种数据迁移方法,其特征在于,所述方法用于数据迁移系统,所述系统包括迁移模块、缓存模块和存储接口模块,所述方法包括:
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
9.根据权利要求8所述的方法,其特征在于,所述存储接口模块向所述源存储实例和
10.根据权利要求7至9任一项所述的方法,其特征在于,所述目标存储实例是所述源存储实例的分表。
11.根据权利要求10所述的方法,其特征在于,所述系统还包括管理模块,所述管理模块支持接收租户的配置,以及支持向所述租户展示数据迁移的状态;
12.一种数据迁移系统,其特征在于,包括:
13.根据权利要求12所述的系统,其特征在于,
14.根据权利要求13所述的系统,其特征在于,
15.根据权利要求12至14任一项所述的系统,其特征在于,所述源存储实例和所述目标存储实例为异构数据库。
16.根据权利要求15所述的系统,其特征在于,所述系统还包括管理模块,
17.根据权利要求16所述的系统,其特征在于,
18.一种数据迁移系统,其特征在于,包括:
19.根据权利要求18所述的系统,其特征在于,
20.根据权利要求19所述的系统,其特征在于,
21.根据权利要求18至20任一项所述的系统,其特征在于,所述目标存储实例是所述源存储实例的分表。
22.根据权利要求21所述的系统,其特征在于,所述系统还包括管理模块,
23.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
24.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求1至11任一项所述的方法。
25.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令被计算设备集群执行时,使得所述计算设备集群执行如权利要求1至11任一项所述的方法。
...【技术特征摘要】
1.一种数据迁移方法,其特征在于,所述方法用于数据迁移系统,所述系统包括迁移模块、缓存模块和存储接口模块,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述存储接口模块向所述目标存储实例发送新的所述数据操作请求,包括:
4.根据权利要求1至3任一项所述的方法,其特征在于,所述源存储实例和所述目标存储实例为异构数据库。
5.根据权利要求4所述的方法,其特征在于,所述系统还包括管理模块,所述管理模块支持接收租户的配置,以及支持向所述租户展示数据迁移的状态;
6.根据权利要求5所述的方法,其特征在于,所述存储接口模块向所述目标存储实例发送新的所述数据操作请求,包括:
7.一种数据迁移方法,其特征在于,所述方法用于数据迁移系统,所述系统包括迁移模块、缓存模块和存储接口模块,所述方法包括:
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
9.根据权利要求8所述的方法,其特征在于,所述存储接口模块向所述源存储实例和所述目标存储实例发送新的所述数据操作请求,包括:
10.根据权利要求7至9任一项所述的方法,其特征在于,所述目标存储实例是所述源存储实例的分表。
11.根据权利要求10所述的方法,其特征在于,所述系统还包括管理模块,所述管理模块支持接收租户的配置,以及支持向...
【专利技术属性】
技术研发人员:董克钦,曾正阳,
申请(专利权)人:华为云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。