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

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


推荐阅读
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • 本文作者分享了在阿里巴巴获得实习offer的经历,包括五轮面试的详细内容和经验总结。其中四轮为技术面试,一轮为HR面试,涵盖了大量的Java技术和项目实践经验。 ... [详细]
  • 网易严选Java开发面试:MySQL索引深度解析
    本文详细记录了网易严选Java开发岗位的面试经验,特别针对MySQL索引相关的技术问题进行了深入探讨。通过本文,读者可以了解面试官常问的索引问题及其背后的原理。 ... [详细]
  • 探讨架构师在项目中应如何平衡对产品的关注和对团队成员的关注,以实现最佳的开发成果。 ... [详细]
  • 分享一个简化版的Silverlight链接图项目:Link Map Simplified
    本文介绍了一个使用Silverlight开发的可视化工具,主要用于展示和操作复杂的实体关系图(Graph)。该工具在犯罪调查系统中得到了广泛应用,帮助用户直观地获取和理解相关信息。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • 使用 GitHub、JSDelivr、PicGo 和 Typora 构建高效的图床解决方案
    本文详细介绍了如何利用 GitHub 仓库、JSDelivr CDN、PicGo 图床工具和 Typora 编辑器,搭建一个高效且免费的图床系统。通过此方案,用户可以轻松管理和上传图片,并在 Markdown 文档中快速插入高质量的图片链接。 ... [详细]
  • 本文探讨了2012年4月期间,淘宝在技术架构上的关键数据和发展历程。涵盖了从早期PHP到Java的转型,以及在分布式计算、存储和网络流量管理方面的创新。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • 网络出版服务许可证申请指南
    本文详细介绍了网络出版服务许可证的办理条件、适用企业范围及具体流程,帮助相关企业和个人了解并顺利完成许可证的申请。文章由专业机构提供,旨在为读者解答在互联网出版领域遇到的技术和合规问题。 ... [详细]
  • 科研单位信息系统中的DevOps实践与优化
    本文探讨了某科研单位通过引入云原生平台实现DevOps开发和运维一体化,显著提升了项目交付效率和产品质量。详细介绍了如何在实际项目中应用DevOps理念,解决了传统开发模式下的诸多痛点。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 本文详细介绍超文本标记语言(HTML)的基本概念与语法结构。HTML是构建网页的核心语言,通过标记标签描述页面内容,帮助开发者创建结构化、语义化的Web页面。 ... [详细]
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社区 版权所有