热门标签 | 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. 迁移系统充分考虑不可控因素,如硬盘损坏、断电等情况。

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


推荐阅读
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 三星W799在2011年的表现堪称经典,以其独特的双屏设计和强大的功能引领了双模手机的潮流。本文详细介绍其配置、功能及锁屏设置。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
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社区 版权所有