一种对用户进行迁移的方法和设备与流程

文档序号:12037932阅读:149来源:国知局
一种对用户进行迁移的方法和设备与流程

本公开内容涉及网络通信技术领域,特别涉及一种对用户进行迁移的方法和设备。



背景技术:

随着互联网技术的发展,互联网的用户越来越多,分布也越来越广泛。尤其大互联网公司,其用户大都分布在广泛的地理区域,而且越来越多的大型互联网公司将业务向全球发展,这使得其提供的网络服务面临着分布全球的海量用户。

随着互联网公司用户的增多,以及用户分布越来越广泛,互联网公司为了更好地满足用户需要,需要提供多个数据中心。由于用户的访问速度往往因归属数据中心的地点而不同,理论上用户归属的数据中心距离用户越近,访问速度越快。因此,在为用户分配归属的数据中心时,需要将用户分配至距离其最近的数据中心。但是在用户移民后或者长期出差时,为了仍然使用最近的数据中心为用户提供服务,此时需要将用户迁移至最近的数据中心。在对用户进行迁移时,需要将用户的用户数据同步至迁移后归属的数据中心中。

目前,在对用户进行迁移时,往往是积累到一定数量的需要迁移的用户后,暂停所有数据中心对外服务,在暂停所有数据中心服务的过程中,将需要迁移的用户的所有数据由原来归属的数据中心同步至迁移后归属的数据中心,经过人工确认所有需要迁移的用户的所有数据都同步完成,再开启所有数据中心对外服务。现有技术在对用户进行迁移时,需要积累到一定数量的用户,并且在进行用户数据同步时,需要暂停所有数据中心的对外服务,影响全局用户的使用。

综上,目前在对用户进行迁移时,需要暂停所有数据中心对外服务,对全局用户的影响较大。



技术实现要素:

本公开内容提供一种对用户进行迁移的方法和设备,用以解决目前在对用户进行迁移时,需要暂停所有数据中心对外服务,对全局用户的影响较大的问题。

基于上述问题,本公开内容实施例提供一种对用户进行迁移的方法,包括:

在确定所有用户中有需要迁移的目标用户后,确定所述目标用户迁移前绑定的原数据中心和所述目标用户需要迁移至的目标数据中心;

控制所述原数据中心停止写入所述目标用户的用户数据;

在确定所述原数据中心中所述目标用户对应的全部第一类用户数据向所述目标数据中心同步完成后,将用户和数据中心的绑定关系中与所述目标用户绑定的所述原数据中心替换为所述目标数据中心;其中,所述第一类用户数据为所有用户有权限读取的用户数据。

由于本公开内容实施例在确定目标用户需要迁移后,原数据中心停止写入该目标用户的用户数据,并在停止写入目标用户的用户数据后,确定目标用户在原数据中心中的全部第一类用户数据同步至目标数据中心后,将该目标用户迁移至目标数据中心。本公开内容实施例在将目标用户进行迁移之前,还需要保证目标用户的全部用户数据同步至目标数据中心后,从而保证目标用户的用户数据的一致性。另外,在确定目标用户需要迁移后可以立即进行迁移,不需要积累用户;在对目标用户进行迁移时,控制目标用户停止写入数据,而不会影响其他用户。

可选的,在所述控制所述原数据中心停止写入所述目标用户的用户数据之后,还包括:

将所述原数据中心中所述目标用户对应的全部第二类用户数据向所述目标数据中心进行同步;

其中,所述第二类用户数据为特定用户有权限读取的用户数据。

由于本公开内容实施例目标用户的第二类用户数据存储在原数据中心,目标数据中心中没有目标用户的第二类用户数据,因此,在停止写入目标用户的用户数据之后,将原数据中心中目标用户的全部第二类用户数据同步至目标数据中心,从而保证原数据中心和目标数据中心之间目标用户的用户数据的一致性。

所述将所述原数据中心中所述目标用户对应的全部第二类用户数据向所述目标数据中心进行同步,包括:

将所述原数据中心中所述目标用户对应的全部第二类用户数据复制到所述目标数据中心。

由于本公开内容实施例采用将原数据中心中的目标用户的第二类用户数据复制到目标数据中心的方式,从而保证将原数据中心中目标用户对应的全部第二类用户数据同步至目标数据中心。

可选的,根据下列方式判断所述原数据中心中所述目标用户对应的全部第一类用户数据向所述目标数据中心是否同步完成:

获取所述原数据中心和所述目标数据中心之间的所有第一类数据同步程序的位点;

判断所述所有第一类数据同步程序的位点是否全部晚于所述原数据中心停止写入所述目标用户的用户数据的时间点;

如果是,则确定所述原数据中心中所述目标用户对应的所述全部第一类用户数据向所述目标数据中心同步完成;

否则,返回获取所述原数据中心和所述目标数据中心之间的所述所有第一类数据同步程序的位点的步骤。

由于本公开内容实施例提供了准确判断目标用户对应的第一类用户数据 同步完成的方法,从而保证在目标用户从原数据中心向目标数据中心迁移之前,目标用户对应的第一类用户数据全部同步至目标数据中心。

可选的,所述控制所述原数据中心停止写入所述目标用户的用户数据,包括:

根据所述目标用户对应的历史访问数据,确定所述原数据中心停止写入所述目标用户的用户数据的时间点;

在所述原数据中心停止写入所述目标用户的用户数据的时间点到达时,控制所述原数据中心停止写入所述目标用户的用户数据。

可选的,所述根据所述目标用户对应的历史访问数据,确定所述原数据中心停止写入所述目标用户的用户数据的时间点,包括:

根据所述目标用户对应的历史访问数据,确定所述目标用户对应的空闲时段;

从所述空闲时段中,选取一个时间点作为所述原数据中心停止写入所述目标用户的用户数据的时间点。

由于本公开内容实施例选择目标用户空闲时间段内的一个时间点对该目标用户停写,将迁移的过程对该目标用户透明,大大减小对目标用户的影响。

另一方面,本公开内容实施例还提供一种对用户进行迁移的设备,包括:

确定模块,用于在确定所有用户中有需要迁移的目标用户后,确定所述目标用户迁移前绑定的原数据中心和所述目标用户需要迁移至的目标数据中心;

控制模块,用于控制所述原数据中心停止写入所述目标用户的用户数据;

处理模块,用于在确定所述原数据中心中所述目标用户对应的全部第一类用户数据向所述目标数据中心同步完成后,将用户和数据中心的绑定关系中与所述目标用户绑定的所述原数据中心替换为所述目标数据中心;其中,所述第一类用户数据为所有用户有权限读取的用户数据。

可选的,所述处理模块,还用于:

将所述原数据中心中所述目标用户对应的全部第二类用户数据向所述目标数据中心进行同步;其中,所述第二类用户数据为特定用户有权限读取的用户数据。

可选的,所述处理模块,具体用于:

将所述原数据中心中所述目标用户对应的全部第二类用户数据复制到所述目标数据中心。

可选的,所述处理模块,还用于:

根据下列方式判断所述原数据中心中所述目标用户对应的全部第一类用户数据向所述目标数据中心是否同步完成:获取所述原数据中心和所述目标数据中心之间的所有第一类数据同步程序的位点;判断所述所有第一类数据同步程序的位点是否全部晚于所述原数据中心停止写入所述目标用户的用户数据的时间点;如果是,则确定所述原数据中心中所述目标用户对应的所述全部第一类用户数据向所述目标数据中心同步完成;否则,返回获取所述原数据中心和所述目标数据中心之间的所述所有第一类数据同步程序的位点的步骤。

可选的,所述处理模块,具体用于:

根据所述目标用户对应的历史访问数据,确定所述原数据中心停止写入所述目标用户的用户数据的时间点;在所述原数据中心停止写入所述目标用户的用户数据的时间点到达时,控制所述原数据中心停止写入所述目标用户的用户数据。

可选的,所述处理模块,具体用于:

根据所述目标用户对应的历史访问数据,确定所述目标用户对应的空闲时段;从所述空闲时段中,选取一个时间点作为所述原数据中心停止写入所述目标用户的用户数据的时间点。

附图说明

图1为本公开内容实施例对用户进行迁移的方法的流程图;

图2为本公开内容实施例判断目标用户对应的第一类用户数据是否同步完成的方法的流程图;

图3为本公开内容实施例判断第一类用户数据同步完成的方法的整体流程图;

图4为本公开内容实施例对用户进行迁移的方法的整体流程图;

图5为本公开内容实施例对用户进行迁移的设备的结构示意图;

具体实施方式

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

本公开内容实施例在确定所有用户中有需要迁移的目标用户后,确定所述目标用户迁移前绑定的原数据中心和所述目标用户需要迁移至的目标数据中心;控制所述原数据中心停止写入所述目标用户的用户数据;在确定所述原数据中心中所述目标用户对应的全部第一类用户数据向所述目标数据中心同步完成后,将用户和数据中心的绑定关系中与所述目标用户绑定的所述原数据中心替换为所述目标数据中心;其中,所述第一类用户数据为所有用户有权限读取的用户数据。

由于本公开内容实施例在确定目标用户需要迁移后,原数据中心停止写入该目标用户的用户数据,并在停止写入目标用户的用户数据后,确定目标用户在原数据中心中的全部第一类用户数据同步至目标数据中心后,将该目标用户迁移至目标数据中心。本公开内容实施例在将目标用户进行迁移之前,还需要 保证目标用户的全部用户数据同步至目标数据中心后,从而保证目标用户的用户数据的一致性。另外,在确定目标用户需要迁移后可以立即进行迁移,不需要积累用户;在对目标用户进行迁移时,控制目标用户停止写入数据,而不会影响其他用户。

本公开内容实施例可以应用在有多个数据中心为用户提供服务的场景。在该场景中,一个重要的组成部分就是记录用户到其最近数据中心的映射关系,即确定用户与其归属的数据中心之间的关系。但是用户与其归属的数据中心之间的关系并非是一成不变的,在确定需要在数据中心之间迁移用户时,并非是简单的更改用户与其归属的数据中心之间的绑定关系。在更改用户与用户归属的数据中心的绑定关系之前,还需要保证用户在原数据中心中的用户数据同步至迁移后的数据中心。在确定用户在原数据中心中的用户数据全部同步至变更后归属的数据中心之后,更改用户与用户归属数据中心的绑定关系,实现用户从原数据中心迁移至变更后的数据中心。

本公开内容实施例的数据中心可以为idc(internetdatacenter,互联网数据中心),还可以是其它用于存放数据的中心。为了方便介绍,下面以数据中心是idc为例进行说明。需要说明的是,数据中心是其他用于存放数据的中心的处理方法与数据中心是idc的处理方法相同,在此不再赘述。

本公开内容实施例的idc具体为互联网数据中心,在该互联网数据中心中存放了一定数量的网络服务器,并在网络服务器上部署特定的互联网软件,对互联网的用户提供网络服务。

本公开内容实施例应用场景中包括多个idc,并且预先生成了idc与归属idc用户的绑定关系,每个用户归属于一个idc,每个用户在其归属的idc中产生用户数据,并且多个idc之间需要共享数据和更新数据。

本公开内容实施例的用户数据包括第一类用户数据和第二类用户数据。下面针对这两种用户数据具体说明。

一、第一类用户数据。

本公开内容实施例的第一类用户数据为所有用户有权限读取的用户数据。具体的,针对一个用户,第一类用户数据为该用户写入,其它用户只读的用户数据。

针对第一类用户数据,由于用户在其归属的idc写入后,其它用户可以读取的数据。因此,在用户在其归属的idc写入第一类用户数据后,其归属的idc需要将该第一类用户数据同步至其它的idc中。

例如,针对一个电商平台,其对应的用户包括买家和卖家。卖家在其归属的idc写入所售商品的信息,该商品的信息为该卖家写入其归属的idc,但是全局所有的买家和卖家均可以读取的数据,则卖家写入的这部分数据即为第一类用户数据;或者,在买家购买商品后,针对所购商品在其归属的idc写入对该商品的评价信息,该商品的评价信息为该买家写入其归属的idc,其它所有买家可以读取的数据,则买家写入的这部分数据即为第一类用户数据。

二、第二类用户数据。

本公开内容实施例的第二类用户数据为特定用户有权限读取的用户数据。具体的,针对一个用户,第二类用户数据为该用户写入,只有该用户可以读取的数据。本公开内容实施例的第二类用户数据为用户的私有数据。

针对第二类用户数据,由于用户在其归属的idc写入后,只有该用户可以读取,其它用户不可以读取的数据。因此,不需要将第二类用户数据同步至其他的idc。

例如,针对一个电商平台,其对应的用户包括买家和卖家。对于买家购物车的信息,由于买家购物车的商品为该买家添加的,即该部分数据为该买家在其归属的idc写入,并且全局其它的买家和卖家不需要读取的数据,则该买家购物车的信息即为第一类用户数据。

需要说明的是,本公开内容实施例的用户数据的类型为预先设置的,针对任意一个用户数据,每一个idc均能识别该用户数据的数据类型,即每一 个idc均能够确定该数据属于第一类用户数据,或者是第二类用户数据,具体的idc确定用户数据的数据类型的方法与现有技术是相同的,在此不再赘述。

需要说明的是,由于本公开内容实施例的第一类用户数据为所有用户有权限读取的用户数据,针对用户写入的第一类用户数据,在用户写入后,将该用户写入的第一类用户数据同步至其它idc中,以使全局所有的用户均能读取到该用户写入的第一类用户数据。

并且,本公开内容实施例在将第一类用户数据同步至全局所有的idc时,基于binlog/redolog的数据同步机制,将第一类用户数据在所有的idc间同步。

在确定需要将用户由归属的原idc迁移至目标idc时,由于该用户对应的第一类用户数据在用户归属的idc写入后,已经同步至其它所有的idc。但是,为了保证原idc和目标idc之间目标用户的用户数据的一致性,在将目标用户迁移至目标idc之前,还需要判断该用户对应的第一类用户数据是否全部同步至目标idc。

下面结合说明书附图对本公开内容实施例作进一步详细描述。

如图1所示,本公开内容实施例提供一种对用户进行迁移的方法,包括:

步骤101、在确定所有用户中有需要迁移的目标用户后,确定所述目标用户迁移前绑定的原idc和所述目标用户需要迁移至的目标idc;

步骤102、控制所述原idc停止写入所述目标用户的用户数据;

步骤103、在确定所述原idc中所述目标用户对应的全部第一类用户数据向所述目标idc同步完成后,将用户和idc的绑定关系中与所述目标用户绑定的所述原idc替换为所述目标idc;其中,所述第一类用户数据为所有用户有权限读取的用户数据。

本公开内容实施例的目标用户的用户数据包括所述第一类用户数据和所述第二类用户数据。并且,在将目标用户迁移至目标idc之前,需要将目标用户的所有用户数据从原idc同步至目标idc。

在步骤102之后还包括:将所述原idc中所述目标用户对应的全部第二类用户数据向所述目标idc进行同步;其中,所述第二类用户数据为特定用户有权限读取的用户数据。

并且,本公开内容实施例针对目标用户的第一类用户数据和第二类用户数据,分别采用不同的数据同步方式,将目标用户的所有用户数据同步至目标idc。下面分别说明第一类用户数据和第二类用户数据的数据同步方式。

一、针对第一类用户数据。

本公开内容实施例目标用户的第一类用户数据,在目标用户归属的idc产生后,实时同步至其他idc。在确定目标用户需要迁移后,确定目标用户迁移前归属的原idc和所述目标用户迁移后归属的目标idc,判断目标用户在原idc中的第一类用户数据是否全部同步至目标idc中。

本公开内容实施例在原idc和目标idc之间同步第一类用户数据时,通过原idc和目标idc之间的所有第一类数据同步程序,基于binlog/redolog的数据同步机制将原idc的第一类用户数据同步至目标idc中。

本公开内容实施例在原idc和目标idc之间包括一个或多个第一类数据同步程序,每一个数据同步数据执行的是特定类型的用户数据,并且在原idc和目标idc不同时,原idc和目标idc之间的第一类数据同步程序也不相同。

例如,idc1为原idc,idc2为目标idc,在idc1和idc2之间包括三个第一类数据同步程序,分别为:第一第一类数据同步程序、第二第一类数据同步程序和第三第一类数据同步程序。其中,第一第一类数据同步程序执行的是原idc和目标idc之间商品数据的同步;第二第一类数据同步程序执行的是原idc和目标idc之间用户评论数据的同步;第三第一类数据同步程序执行的是原idc和目标idc之间订单数据的同步。

又比如,在idc1为原idc,idc2为目标idc时,在idc1和idc2之间包括三个第一类数据同步程序,分别为:第一第一类数据同步程序、第二第一类数据同步程序和第三第一类数据同步程序。在idc2为原idc,idc3为目 标idc时,在idc2和idc3之间包括三个第一类数据同步程序,分别为:第四第一类数据同步程序、第五第一类数据同步程序和第六第一类数据同步程序。并且第一第一类数据同步程序、第二第一类数据同步程序、第三第一类数据同步程序、第四第一类数据同步程序、第五第一类数据同步程序和第六第一类数据同步程序互不相同。

本公开内容实施例中数据同步程序的位点为,当前时刻第一类数据同步程序执行的数据对应的时间点,其中,数据对应的时间点为最后一次对该数据进行操作的时间点,并且对数据进行的操作包括但不限于下列操作:

新增数据、更新数据、删除数据和读取数据。

由于本公开内容实施例中通过第一类数据同步程序,将目标用户对应的第一类用户数据从原idc同步至目标idc的过程中会存在一定的延迟。在确定第一类数据同步程序的位点时,将当前时刻第一类数据同步程序执行的数据对应的时间点作为第一类数据同步程序的位点。例如,当前时刻为00:10:10,此时确定第一类数据同步程序执行的数据对应的时间点为00:10:05,则确定该第一类数据同步程序的位点为00:10:05。

本公开内容实施例在控制所述原idc停止写入所述目标用户的用户数据时,采用sql(structuredquerylanguage,结构化查询语言)拦截的方式,在sql拦截后抛出异常使事务回滚来实现停写。

可选的,本公开内容实施例采用下列方式控制所述原数据中心停止写入所述目标用户的用户数据。

根据所述目标用户对应的历史访问数据,确定所述原数据中心停止写入所述目标用户的用户数据的时间点;在所述原数据中心停止写入所述目标用户的用户数据的时间点到达时,控制所述原数据中心停止写入所述目标用户的用户数据。

本公开内容实施例原idc停止写入所述目标用户的用户数据的时间点并非任意一个时间点,为了最大限度的减少对用户的影响,本公开内容实施例 采用下列方式确定原idc停止写入所述目标用户的用户数据的时间点。

根据所述目标用户对应的历史访问数据,确定所述目标用户对应的空闲时段;从所述空闲时段中,选取一个时间点作为所述原数据中心停止写入所述目标用户的用户数据的时间点。

具体的,根据下列步骤确定原idc停止写入目标用户的用户数据的时间点。

1、获取目标用户一定时长内的历史访问数据,其中,该一定时长可以为一个月;

2、对获取到的目标用户一定时长内的历史访问数据进行分析,其中,数据分析的过程主要是确定目标用户每次访问的时间;

3、根据对一定时长内的历史访问数据的分析结果,确定出用户在全天24小时周期内不访问的时间范围,将该时间范围作为所述目标用户对应的空闲时段;

4、在确定的目标用户对应的空闲时段内,选取一个时间点作为停止写入目标用户的用户数据的时间点;其中,选取的时间点可以为空闲时段的起始时间点,或者是空闲时段内任意一个时间点。

例如,在确定原idc停止写入目标用户a的所有数据的时间点时,根据获取到的目标用户a的历史访问数据,经过对获取到的用户a的历史访问数据进行分析,确定目标用户a在00:00:00至00:10:00的时间段内不会访问,则将00:00:00至00:10:00作为目标用户a的空闲时间段,在00:00:00至00:10:00的空闲时间段内选取00:00:00这一时间点作为原idc停止写入目标用户a的所有数据的时间点;或者选取00:00:00至00:10:00空闲时间段内其它任一时间点作为原idc停止写入目标用户的用户数据的时间点。

本公开内容实施例在将目标用户迁移至目标idc之前,需要确定原idc中所述目标用户对应的全部第一类用户数据向所述目标数据中心同步完成。

具体的,如图2所示,本公开内容实施例判断目标用户对应的第一类用户 数据是否同步完成的方法。

步骤201、获取所述原idc和所述目标idc之间的所有第一类数据同步程序的位点;

步骤202、判断所述所有第一类数据同步程序的位点是否全部晚于所述原idc停止写入所述目标用户的用户数据的时间点,若是,执行步骤203,若否,执行步骤201;

步骤203、确定所述原idc中所述目标用户对应的所述全部第一类用户数据向所述目标数据中心同步完成。

本公开内容实施例中原idc和所述目标idc之间包括一个或多个第一类数据同步程序,在判断该目标用户对应的第一类用户数据同步是否完成时,需要获取原idc和所述目标idc之间所有第一类数据同步程序的位点,并且从确定的所有第一类数据同步程序的位点中选择最早的位点。

例如,原idc和所述目标idc之间包括四个第一类数据同步程序,分别为第一第一类数据同步程序、第二第一类数据同步程序、第三第一类数据同步程序和第四第一类数据同步程序。并且,获取到第一第一类数据同步程序的位点为12:10:00;获取到第二第一类数据同步程序的位点为12:10:05;获取到第三第一类数据同步程序的位点为12:10:09;获取到第四第一类数据同步程序的位点为12:09:56;则从获取到的四个第一类数据同步程序的位点中,选择最早的位点,即第四第一类数据同步程序的位点12:09:56。

本公开内容实施例在选择到原idc和所述目标idc之间所有第一类数据同步程序的位点中最早的位点后,通过比较所有第一类数据同步程序的位点中最早的位点与原idc停止写入目标用户的用户数据的时间点,判断目标用户对应的第一类用户数据同步是否同步完成;若所有第一类数据同步程序的位点中最早的位点晚于原idc停止写入目标用户的用户数据的时间点,则确定目标用户对应的第一类用户数据同步完成;若所有第一类数据同步程序的位点中最早的位点不晚于原idc停止写入目标用户的用户数据的时间点,则 确定目标用户对应的第一类用户数据同步未完成。

例如,在12:10:00原idc停止写入目标用户的用户数据,则原idc停止写入目标用户的用户数据的时间点为12:10:00。并且原idc和所述目标idc之间包括四个第一类数据同步程序,分别为第一第一类数据同步程序、第二第一类数据同步程序、第三第一类数据同步程序和第四第一类数据同步程序。在原idc停止写入目标用户的用户数据之后,获取到第一第一类数据同步程序的位点为12:10:00;获取到第二第一类数据同步程序的位点为12:10:05;获取到第三第一类数据同步程序的位点为12:10:03;获取到第四第一类数据同步程序的位点为12:09:56。则从获取到的四个第一类数据同步程序的位点中,选择最早的位点,即第四第一类数据同步程序的位点12:09:56。通过比较四个第一类数据同步程序的位点中最早的位点12:09:56,与原idc停止写入目标用户的用户数据的时间点12:10:00,确定最早的位点12:09:56早于原idc停止写入目标用户的用户数据的时间点12:10:00,则确定原idc和所述目标idc之间的第一类用户数据同步未完成。

还比如,在12:10:00原idc停止写入目标用户的用户数据,则原idc停止写入目标用户的用户数据的时间点为12:10:00。并且原idc和所述目标idc之间包括四个第一类数据同步程序,分别为第一第一类数据同步程序、第二第一类数据同步程序、第三第一类数据同步程序和第四第一类数据同步程序。在原idc停止写入目标用户的用户数据之后,获取到第一第一类数据同步程序的位点为12:10:02;获取到第二第一类数据同步程序的位点为12:10:05;获取到第三第一类数据同步程序的位点为12:10:03;获取到第四第一类数据同步程序的位点为12:10:06。则从获取到的四个第一类数据同步程序的位点中,选择最早的位点,即第一第一类数据同步程序的位点12:10:02。通过比较四个第一类数据同步程序的位点中最早的位点12:10:02,与原idc停止写入目标用户的用户数据的时间点12:10:00,确定最早的位点12:10:02晚于原idc停止写入目标用户的用户数据的时间点12:10:00,则确定原idc和所述目 标idc之间的第一类用户数据同步完成。

需要说明的是,在确定所有第一类数据同步程序的位点中最早的位点等于原idc停止写入目标用户的用户数据的时间点时,确定目标用户对应的第一类用户数据同步未完成。

比如,在12:10:00原idc停止写入目标用户的用户数据,则原idc停止写入目标用户的用户数据的时间点为12:10:00。并且原idc和所述目标idc之间包括四个第一类数据同步程序,分别为第一第一类数据同步程序、第二第一类数据同步程序、第三第一类数据同步程序和第四第一类数据同步程序。在原idc停止写入目标用户的用户数据之后,获取到第一第一类数据同步程序的位点为12:10:00;获取到第二第一类数据同步程序的位点为12:10:05;获取到第三第一类数据同步程序的位点为12:10:03;获取到第四第一类数据同步程序的位点为12:10:06。则从获取到的四个第一类数据同步程序的位点中,选择最早的位点,即第一第一类数据同步程序的位点12:10:00。通过比较四个第一类数据同步程序的位点中最早的位点12:10:00,与原idc停止写入目标用户的用户数据的时间点12:10:00,确定最早的位点12:10:00等于原idc停止写入目标用户的用户数据的时间点12:10:00,则确定原idc和所述目标idc之间的第一类用户数据同步未完成。

需要说明的是,本公开内容实施例在获取所述原idc和所述目标idc之间的所有第一类数据同步程序的位点时,是同时获取原idc和目标idc之间的所有第一类数据同步程序的位点。

本公开内容实施例在确定原idc和所述目标idc之间的第一类用户数据同步未完成之后,返回获取所述原idc和所述目标idc之间的所有数据同步程序的位点的步骤,即在确定原idc和所述目标idc之间的第一类用户数据同步完成之前,需要不断获取所述原idc和所述目标idc之间的所有第一类数据同步程序的位点,直到原idc和所述目标idc之间的所有第一类数据同步程序的位点中最早的位点晚于原idc停止写入目标用户的用户数据的时间 点为止,即直到确定原idc和所述目标idc之间的第一类用户数据同步完成为止。

如图3所示,本公开内容实施例判断用户数据同步完成的方法的整体流程图。

步骤301、在确定所有用户中有需要迁移的目标用户后,确定所述目标用户迁移前绑定的原idc和所述目标用户需要迁移至的目标idc;

步骤302、控制所述原idc停止写入所述目标用户的用户数据,并确定原idc停止写入所述目标用户的用户数据的时间点;

步骤303、获取所述原idc和所述目标idc之间的所有第一类数据同步程序的位点;

步骤304、判断所述所有第一类数据同步程序的位点是否全部晚于所述原idc停止写入所述目标用户的用户数据的时间点,若是,执行步骤305,若否,执行步骤303;

步骤305、确定所述原数据中心中所述目标用户对应的所述全部第一类用户数据向所述目标数据中心同步完成。

本公开内容实施例的目标用户的用户数据包括第一类用户数据和第二类用户数据。并且针对第一类用户数据,用户在其归属的idc写入后,将该用户写入的第一类用户数据同步至其它idc中,以使全局所有的用户均能读取到该用户写入的第一类用户数据。在变更目标用户与目标用户归属的idc的绑定关系之前,根据本公开内容实施例提供的判断用户数据同步完成的方法,能够确定目标用户的第一类用户数据是否同步完成;而对于目标用户的第二类用户数据,由于目标用户的第二类用户数据为特定用户有权限读取的用户数据。具体的,针对一个目标用户,第二类用户数据为该目标用户写入,只有该目标用户可以读取的数据,并且目标用户的第二类用户数据并没有同步至其它idc中。因此,在变更目标用户与目标用户归属的idc的绑定关系之前,需要将目标用户的第二类用户数据同步至目标idc。

二、针对第二类用户数据。

本公开内容实施例针对目标用户的第二类用户数据,在原idc停止写入该目标用户的用户数据后,将所述原idc中所述目标用户对应的全部第二类用户数据向所述目标idc进行同步。

并且,本公开内容实施例在控制所述原idc停止写入所述目标用户的用户数据时,采用sql拦截的方式,在sql拦截后抛出异常使事务回滚来实现停写。

其中,目标用户的第二类用户数据为该目标用户写入,只有该目标用户可以读取的数据,并且目标用户产生的第二类用户数据均存储在原idc中。

本公开内容实施例在原idc停止写入所述目标用户的用户数据后,将所述原idc中所述目标用户对应的全部第二类用户数据复制到所述目标idc。

具体的,本公开内容实施例可以通过第二类数据同步程序将原idc中目标用户对应的所有第二类用户数据复制到目标idc。

其中,在同步原idc和目标idc之间的第二类用户数据时,可以通过一个或多个第二类数据同步程序,并且该一个或多个第二类数据同步程序与同步原idc和目标idc之间第一类用户数据的第一类数据同步程序不同。

本公开内容实施例在确定目标用户在原idc对应的第二类用户数据时,根据原idc停止写入该目标用户的用户数据的时间点,确定该时间点之前目标用户在原idc产生的所有第二类用户数据为需要同步至目标idc的第二类用户数据。

例如,在00:00:00原idc停止目标用户a的所有数据,则在将目标用户a对应的第二类用户数据同步至目标idc时,原idc和目标idc之间的第二类数据同步程序读取00:00:00之前目标用户a对应的所有第二类用户数据,将读取到的00:00:00之前的目标用户a对应的所有第二类用户数据同步至目标idc。

如图4所示,本公开内容实施例提供的一种对用户进行迁移的方法的整体 流程图。

步骤401、在确定所有用户中有需要迁移的目标用户后,确定所述目标用户迁移前绑定的原idc和所述目标用户需要迁移至的目标idc;

步骤402、根据所述目标用户对应的历史访问数据,确定所述原idc停止写入所述目标用户的用户数据的时间点;

步骤403、在所述原idc停止写入所述目标用户的用户数据的时间点到达时,控制所述原idc停止写入所述目标用户的用户数据;

步骤404、将所述原idc中所述目标用户对应的全部第二类用户数据复制到所述目标idc;

步骤405、获取所述原idc和所述目标idc之间的所有第一类数据同步程序的位点;

步骤406、判断所述所有第一类数据同步程序的位点是否全部晚于所述原idc停止写入所述目标用户的用户数据的时间点,若是,执行步骤407,若否,执行步骤405;

步骤407、确定所述原idc中所述目标用户对应的所述全部第一类用户数据向所述目标idc同步完成;

步骤408、将用户和idc的绑定关系中与所述目标用户绑定的所述原idc替换为所述目标idc。

基于同一发明构思,本公开内容实施例中还提供了一种对用户进行迁移的设备,由于该设备解决问题的原理与本公开内容实施例对用户进行迁移的方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。

如图5所示,本公开内容实施例中还提供了一种对用户进行迁移的设备,包括:

确定模块501,用于在确定所有用户中有需要迁移的目标用户后,确定所述目标用户迁移前绑定的原数据中心和所述目标用户需要迁移至的目标数据中心;

控制模块502,用于控制所述原数据中心停止写入所述目标用户的用户数据;

处理模块503,用于在确定所述原数据中心中所述目标用户对应的全部第一类用户数据向所述目标数据中心同步完成后,将用户和数据中心的绑定关系中与所述目标用户绑定的所述原数据中心替换为所述目标数据中心;其中,所述第一类用户数据为所有用户有权限读取的用户数据。

可选的,所述处理模块503,还用于:

将所述原数据中心中所述目标用户对应的全部第二类用户数据向所述目标数据中心进行同步;其中,所述第二类用户数据为特定用户有权限读取的用户数据。

可选的,所述处理模块503,具体用于:

将所述原数据中心中所述目标用户对应的全部第二类用户数据复制到所述目标数据中心。

可选的,所述处理模块503,还用于:

根据下列方式判断所述原数据中心中所述目标用户对应的全部第一类用户数据向所述目标数据中心是否同步完成:获取所述原数据中心和所述目标数据中心之间的所有第一类数据同步程序的位点;判断所述所有第一类数据同步程序的位点是否全部晚于所述原数据中心停止写入所述目标用户的用户数据的时间点;如果是,则确定所述原数据中心中所述目标用户对应的所述全部第一类用户数据向所述目标数据中心同步完成;否则,返回获取所述原数据中心和所述目标数据中心之间的所述所有第一类数据同步程序的位点的步骤。

可选的,所述处理模块503,具体用于:

根据所述目标用户对应的历史访问数据,确定所述原数据中心停止写入所述目标用户的用户数据的时间点;在所述原数据中心停止写入所述目标用户的用户数据的时间点到达时,控制所述原数据中心停止写入所述目标用户的 用户数据。

可选的,所述处理模块503,具体用于:

根据所述目标用户对应的历史访问数据,确定所述目标用户对应的空闲时段;从所述空闲时段中,选取一个时间点作为所述原数据中心停止写入所述目标用户的用户数据的时间点。

以上参照示出根据本公开内容实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本公开内容。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。

相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本公开内容。更进一步地,本公开内容可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本公开内容上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。

显然,本领域的技术人员可以对本公开内容进行各种改动和变型而不脱离本公开内容的精神和范围。这样,倘若本公开内容的这些修改和变型属于本公开内容权利要求及其等同技术的范围之内,则本公开内容也意图包含这些改动和变型在内。

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