关于数据迁移,你应该知道的那些方法

迭代苔原
• 阅读 6915

关于数据迁移,你应该知道的那些方法

无论是计划拥抱云服务还是打算从正在使用的云服务切换到另外一家,这其中数据的迁移是很关键的一步。在迁移过程中可能遇到以下问题:

数据迁移文件路径问题。
数据迁移过程中的速率问题。
寄送磁盘后的迁移过程中,上传数据不完整。

针对这些问题,一个考虑全面的迁移系统就显得尤为重要,尤其是数据迁移的速度和安全性。首先七牛虽然为非结构化存储,但是仍然支持带文件路径进行上传,不影响原先数据的访问规则;其次,数据迁移的速率基本不受网络带宽影响,主要受到磁盘读写速度的限制;上传数据不完整,七牛会主动检测数据迁移的完整性,通过镜像存储也可以补全未上传成功的数据。一般场景有以下几种:

场景一:自有机房迁移到七牛且数据少量
_____________________________________________________

有两种方案可以选择:

一、完全使用七牛镜像存储功能

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

假设源站所有的图片,放在一个叫 img.example.com 子域里。
1、在七牛上建立一个镜像bucket,设定源站为 img.example.com。假设镜像 bucket是example-img,镜像 bucket 对应的域名为 example-img.qiniudn.com。
2、将所有对外使用的图片的域名改为example-img.qiniudn.com。
3、如果网站数据是UGC(用户产生内容)的,调整上传流程,传到七牛的镜像 bucket。这样源站就变成只读。
如此就完成整个迁移过程。此时 img.example.com 这个源站就可以废弃不用了。

二、借助七牛提供的数据迁移工具qrsync公网间直传
qrsync 是一个根据七牛API实现的简易命令行辅助上传同步工具,支持断点续上传,增量同步,它可将用户本地的某目录的文件同步到七牛,同步或上传几百GB甚至上TB的文件毫无压力。

场景二:自有机房迁移到七牛但数据总量大
_____________________________________________________

在场景二下,用户可以将数据先备份到本地,然后寄送数据硬盘给七牛,由七牛通过内网将数据同步到七牛云端;或者七牛寄送空数据硬盘,客户备份数据后寄回七牛,并由七牛通过内网上传。这其中,由于数据量巨大,考虑因素需要更多,七牛也会专为该类客户定制化数据迁移系统。

在寄硬盘的过程中,为了保持新数据也被存到七牛上面,以及试用七牛的服务,可以使用镜像存储。

场景三:从任意云服务迁移到七牛且数据少量
_____________________________________________________

在场景三下,可以有两种方案进行数据的迁移工作。

一、完全使用镜像存储,无缝将数据迁移到七牛的空间中,具体使用方式和场景一中镜像存储描述部分一致。

二、使用七牛数据迁移定制化工具,在七牛的技术支持的协助下,用工具将数据同步到七牛。

场景四:从任意云服务迁移到七牛但数据总量大
_____________________________________________________

如果想从某一云服务切换到七牛,可以先从正在使用的云服务备份数据到本地,通过磁盘/服务器的递送,直接上传数据到七牛。

数据导入的同时依然可以使用镜像存储配合数据的迁移,具体步骤如下:
• 开启镜像存储,并将用户对源站资源的访问切换到从七牛这里访问,同时在源站保持使用prefetch 接口预取更新变化了的资源。
• 将资源的上传动作从源站切换到七牛,这样用户对资源的修改动作会直接更新七牛中存储的内容,此时源站的资源数据已经变成一个静态的集合,因此可以撤销第一步中对prefetch 接口的使用。
• 放心地将源站的静态资源数据增量地导入七牛的存储,存储中已有的资源不再导入,只导入存储中还不存在的资源(我们已有针对此类导入的成熟工具提供您直接使用)。
• 关闭源站(just kidding :P)

关于数据迁移,你应该知道的那些方法

[数据迁移典型案例剖析]

七牛客户陌陌的数据量非常大,如果采用常用的传输办法,整个迁移过程要耗时半年,并且会严重影响线上的业务。为此,七牛为陌陌制定了个性化的数据迁移方案。

在迁移过程中可能遇到以下问题:

  1. 硬盘迁移过程中,网络传输中的数据出错。
  2. 传输过程中的速率问题。拿陌陌举例,如果采用常用的传输办法,整个迁移过程要耗时半年,并且会严重影响线上的业务。
  3. 硬盘寄送过程以及使用过程中的磁盘损坏。
  4. 存储数据文件对数据库的合并。如果按照传统的数据库写入方式,需要若干天,会给客户数据库以及云服务的数据库带来不必要的巨大压力。

针对这些问题,一个考虑全面的迁移系统就显得尤为重要:

  1. 针对客户的业务数据模型,定制数据格式,进行存储数据的导入。
  2. 数据库结构需要有强扩展性,可以实现瞬时合并。
  3. 迁移系统充分考虑不可控因素,比如硬盘损坏,断电等情况。

至此,七牛已经成为陌陌非常好的合作伙伴,支撑了他们近两亿用户的数据存储,访问加速与图片处理。

点赞
收藏
评论区
推荐文章
Easter79 Easter79
4年前
SQLServer迁移至MySQL
SQLServer迁移至MySQLSQLServer迁移至MySQL应该有很多种迁移方案,我用的方案是使用工具:NavicatPremium。假设我们现在要把192.168.3.126(SQLServer数据库)上的P2PSite数据库迁移至192.168.3.106(MySQL数据库)步骤如下在192.168.3.106(MySQL)
Stella981 Stella981
4年前
Linux环境mysql快速备份及迁移
    在项目实施的过程中,经常会面临数据库迁移,导出和导出数据,如果用普通的mysql客户端备份,时间较长且容易出错。那么mysql快速备份及迁移,就成为数据库迁移的重中之重。下面介绍我在项目实现过程中用到的方法。   1.为了方便,这边直接将需要执行的SQL语句写成脚本dbbak.sh。脚本内容如下:    !/b
Stella981 Stella981
4年前
SQLServer迁移至MySQL
SQLServer迁移至MySQLSQLServer迁移至MySQL应该有很多种迁移方案,我用的方案是使用工具:NavicatPremium。假设我们现在要把192.168.3.126(SQLServer数据库)上的P2PSite数据库迁移至192.168.3.106(MySQL数据库)步骤如下在192.168.3.106(MySQL)
Stella981 Stella981
4年前
Redis migrate 数据迁移工具
在工作中可能会遇到单点Redis向Redis集群迁移数据的问题,但又不能老麻烦运维来做。为了方便研发自己迁移数据,我这里写了一个简单的Redis迁移工具,希望对有需要的人有用。本工具支持:单点Redis到单点Redis迁移单点Redis到Redis集群迁移Redis集群到Redis集群迁移Redis集群
Easter79 Easter79
4年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Stella981 Stella981
4年前
RabbitMQ通过shovel插件迁移数据
前言生产环境中会遇到RabbitMQ(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.huaweicloud.com%2Fproduct%2Frabbitmq.html%3Fout)数据迁移的场景,例如:切换云服务厂商、不同Region之间数据迁移、新搭建Rabbit
京东云开发者|京东云RDS数据迁移常见场景攻略
云时代已经来临,云上很多场景下都需要数据的迁移、备份和流转,各大云厂商也大都提供了自己的迁移工具。本文主要介绍京东云数据库为解决用户数据迁移的常见场景所提供的解决方案。场景一:数据迁移上云数据迁移上云是最常见的一类场景,目前京东云提供了两个
使用“宝塔一键迁移”工具,将单机版typecho博客系统迁移到京东云cvm云主机
服务器更换、网站搬家,对于很多开发者新手来说不是一件容易的事情,需要迁移网站程序、数据库,修改数据库连接文件等。在云迁移方案中,宝塔是非常简单好用的服务器运维面板,能够极大提升运维管理效率。本文将介绍如何使用“宝塔一键迁移”工具将单机版typecho博客系统快速迁移到京东云cvm云主机。
云迁移中的CT-CMS任务操作指南
CTCMS作为企业内容管理的核心系统,承载着网站内容管理、信息发布、工作流程自动化等重要功能。在云迁移过程中,如何确保CTCMS系统的稳定性、数据的安全性和业务的连续性,成为了迁移任务的关键。本文将围绕CTCMS云迁移的任务操作,包括前期准备、迁移实施、后期优化等方面展开阐述。
ES集群迁移方案总结
本文分享自天翼云开发者社区《ES集群迁移方案总结》,作者:刘鑫ES集群迁移可以通过以下几种方式实现,具体方案的选择,需要根据数据量、索引类型、网络情况等进行方案评估和选择。在实施迁移时,需确保目标集群能够承载迁移的数据量,并考虑到集群的可用性、数据一致性和
创新突破!天翼云TeleDB数据库通过中国信通院数据库迁移工具专项测试
近日,天翼云数据传输服务软件(DTS)依据《数据库迁移工具能力要求》,结合天翼云TeleDB数据库产品,顺利通过中国信息通信研究院(简称“中国信通院”)“可信数据库”数据库迁移工具专项测试。测试结果表明,天翼云数据传输服务软件(DTS)在数据库迁移工具功能