热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据迁移的关键技巧与策略

无论是在迁移到云服务还是更换云服务商的过程中,数据迁移都是一个至关重要的环节。本文将探讨数据迁移中可能遇到的问题及解决方案,包括路径问题、速度问题和数据完整性等。

无论是初次迁移到云服务还是从现有云服务切换到其他平台,数据迁移都是一个关键步骤。在这个过程中可能会遇到以下问题:

1. 数据迁移文件路径问题。
2. 数据迁移过程中的速度问题。
3. 硬盘寄送后数据上传不完整。

针对这些问题,一个全面考虑的迁移系统尤为重要,特别是数据迁移的速度和安全性。首先,尽管七牛主要提供非结构化存储,但仍支持带有文件路径的上传,不会影响原有数据的访问规则;其次,数据迁移的速度主要受磁盘读写速度的影响,而非网络带宽;最后,七牛会自动检测数据迁移的完整性,通过镜像存储也可以补全未成功上传的数据。以下是几种常见场景的解决方案:

场景一:本地机房迁移到七牛且数据量较小

有两种方案可供选择:

1. 完全使用七牛镜像存储功能

利用七牛提供的镜像存储功能,可以轻松将源站的数据被动同步到七牛云存储中。被动同步意味着只有在资源被访问时,七牛才会从源站获取一次数据,之后对该资源的访问将直接从七牛获取。具体操作如下:

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

2. 使用七牛提供的数据迁移工具 qrsync 进行公网直传

qrsync 是一个基于七牛 API 实现的简易命令行辅助上传同步工具,支持断点续传和增量同步,可以将用户本地目录的文件同步到七牛,即使同步或上传几百 GB 甚至几 TB 的文件也毫无压力。

场景二:本地机房迁移到七牛且数据量较大

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

在寄送硬盘的过程中,为了确保新数据也能同步到七牛,可以使用镜像存储功能。

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

在这种情况下,有两种方案可以进行数据迁移:

1. 完全使用镜像存储,无缝将数据迁移到七牛的空间中,具体使用方式与场景一中的镜像存储部分相同。

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

场景四:从任意云服务迁移到七牛且数据量较大

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

在数据导入过程中仍然可以使用镜像存储配合数据迁移,具体步骤如下:
• 开启镜像存储,并将用户对源站资源的访问切换到从七牛访问,同时在源站使用 prefetch 接口预取更新的资源。
• 将资源的上传行为从源站切换到七牛,这样用户对资源的修改会直接更新七牛中存储的内容,此时源站的资源数据已变为一个静态集合,因此可以取消对 prefetch 接口的使用。
• 安心地将源站的静态资源数据增量地导入七牛的存储,已存在的资源不再导入,只导入存储中不存在的资源(我们已有针对此类导入的成熟工具供您直接使用)。
• 关闭源站(开玩笑的 :P)

【数据迁移典型案例分析】

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

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

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

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

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

最终,七牛成为陌陌的重要合作伙伴,支持了他们近两亿用户的数据存储、访问加速和图片处理。


推荐阅读
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 高端存储技术演进与趋势
    本文探讨了高端存储技术的发展趋势,包括松耦合架构、虚拟化、高性能、高安全性和智能化等方面。同时,分析了全闪存阵列和中端存储集群对高端存储市场的冲击,以及高端存储在不同应用场景中的发展趋势。 ... [详细]
  • 本文详细介绍了如何使用OpenSSL自建CA证书的步骤,包括准备工作、生成CA证书、生成服务器待签证书以及证书签名等过程。 ... [详细]
  • 本文详细介绍如何使用Netzob工具逆向未知通信协议,涵盖从基本安装到高级模糊测试的全过程。通过实例演示,帮助读者掌握Netzob的核心功能。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 本文详细介绍了如何在PHP中记录和管理行为日志,包括ThinkPHP框架中的日志记录方法、日志的用途、实现原理以及相关配置。 ... [详细]
  • 过去查询Mysql的时候,都见3306对所有端口开放着,感觉不安全。netstat -anlp | grep mysqltcp 0&am ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 使用 SourceTree 管理 SVN 代码仓库的详细指南
    SourceTree 是一款功能强大的 Git 管理工具,但很多人不知道它同样支持管理 SVN 代码仓库。本文将详细介绍如何使用 SourceTree 来管理和操作 SVN 代码仓库。 ... [详细]
author-avatar
邱walz_297
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有