对象存储

  • 对象存储 > 常见问题 > 其他 >数据迁移 >如何将线上的数据热迁移到七牛云?

    如何将线上的数据热迁移到七牛云?

    最近更新时间: 2019-02-14 12:04:33

    想将线上的数据迁移到七牛云,如何在不影响现有服务的前提下进行热迁移?

    方案一:完全使用七牛镜像存储功能

    注意:此方法仅针对少量数据的网站,对于数据量比较大(尤其是 UGC -- 用户产生内容)的网站,建议用下面的方案二

    利用七牛提供的镜像存储功能,可以非常简单地将源站的数据 被动 地同步到七牛云存储中,所谓 被动同步 即——只有在资源被访问时,七牛才会回源站获取一次,此后对该资源的访问都不会再发生回源动作,而是直接从七牛这里拿到数据。

    有人可能会问,既然七牛对一个资源只会发生一次回源请求,后面的都不回源获取,那么如果源站的资源发生了变动,该如何将新的资源同步到七牛?这里我们提供两个方案:

    1. 调用七牛提供的 delete 接口,将变化的资源删除既可。这样七牛在下一次被访问的时候,会再次回源获取。如果资源变动数量很小,可以更加简单地在开发者后台的内容管理中,或者使用七牛提供的 qboxrsctl 命令行工具直接删除已变化的文件既可。

    2. 调用七牛提供的 prefetch 接口,该接口会比 delete 接口多做一个 预取 的操作,即在该接口调用时,七牛会立刻回源获取一次新的数据,而不是等到下一次访问的时候才去源站获取。

    PS:

    1. 登录开发者后台开启镜像存储功能

    2. qrsctl 工具获取方式:http://developer.qiniu.com/docs/v6/tools/qboxrsctl.html#download

    3. delete 接口相关文档

    4. prefetch 接口相关文档

    方案二:七牛镜像存储功能 + 一套迁移方案

    方案一适用于将源站保留的前提下进行数据的热迁移,同时享受到七牛提供的加速和数据处理服务。如果您想将源站的数据完全一下子迁移到七牛,而源站的数据量又十分庞大,担心在数据迁移的过程中出现源站的资源被动态更新,但导入到七牛的数据还是老数据的情况,那么可以使用如下的数据迁移方案。

    如何在不影响现有服务的前提下,将源站的数据完整地迁移到七牛呢?我们提供一套成熟的迁移方案供您参考:

    1. 第一步,开启镜像存储,并将用户对源站资源的访问切换到从七牛这里访问,同时在源站保持使用 prefetch 接口预取更新变化了的资源。

    2. 第二步,将资源的上传动作从源站切换到七牛,这样用户对资源的修改动作会直接更新七牛中存储的内容,此时源站的资源数据已经变成一个静态的集合,因此可以撤销第一步中对 prefetch 接口的使用。

    3. 第三步,放心地将源站的静态资源数据增量地导入七牛的存储,存储中已有的资源不再导入,只导入存储中还不存在的资源。

    以上内容是否对您有帮助?
  • Qvm free helper
    Close