数据库新闻速递 明白3中主流的数据迁移方法 (译)

头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共830人左右 1 + 2)

基于应用程序的、基于文件的和基于块的迁移都有各自的优点和适用场景。选择正确的解决方案首先要了解它们之间的差异。

数据迁移对于任何规模的 IT 组织都是至关重要且富有挑战性的操作。无论组织是小型、中型还是财富 500 强巨头,将数据从一个系统迁移到另一个系统充满了风险,从数据丢失或损坏到延长停机时间,这些风险的影响可能极为昂贵。不论公司规模如何,建立组织的数据移动功能的连续性和可靠性都是至关重要的任务,选择正确的数据迁移方法和解决方案也是必不可少的。

在企业生产环境中迁移数据有三种主要方法:基于应用程序的(逻辑)、基于文件的和基于块的(物理)。这些迁移方法各有优点和适用场景。在本文中,我们将分别评估这三种方法。首先,我们将讨论一些组织需要进行数据迁移的常见原因。

迁移到新位置(数据迁移)。当数据和应用程序需要从一个位置移动到另一个位置时,需要进行数据迁移,例如在数据中心搬迁或整合期间。这种迁移在大型跨国企业组织中尤为流行,因为数据经常需要从一个地方移动到另一个地方。

由于源和目标之间的带宽可能有限,迁移性能和实时数据迁移能力在这种类型的迁移中尤为重要。

迁移到新存储(存储刷新)。替换或添加新存储可能是数据迁移最常见的用例。组织出于许多原因获取新的存储设备,每次存储刷新都需要将生产负载从旧存储迁移到新存储。成本、功能、可靠性和性能是组织获取新存储的热门原因。

存储刷新可能包括物理存储更改和存储协议更改(从 iSCSI 到光纤通道、从光纤通道到 iSCSI 以及其他专有协议)。能够在不停机的情况下透明且无干扰地启动和执行数据迁移对于这种类型的迁移至关重要,以消除对生产环境中业务应用的不必要影响。

迁移到新平台(基础设施刷新)。组织内部经常会进行基础设施刷新,特别是在通过自然增长或收购扩大业务规模或采用新技术时。这些刷新可能是由于希望将应用程序负载从一个托管位置或状态迁移到另一个位置,从物理环境迁移到虚拟环境,迁移到私有云或超级融合基础设施,迁移到公共云,从一个云服务提供商迁移到另一个云服务提供商,甚至是从云中退出到托管的数据中心。

迁移存储数据通常只是在较长时间内进行的范围更广泛的基础设施升级的一部分。通常涉及许多不同类型的应用程序、操作系统、文件系统、基础设施平台和提供商。

因此,拥有一个与多个平台和供应商原生集成的一体化迁移解决方案对于重视数据流动性的组织而言,在提高效率和可管理性方面至关重要。在上述场景中使用多种工具和解决方案可能会带来不必要的复杂性,并增加人为错误的风险,这些因素可能导致成本增加和系统停机时间延长。

应用程序转换。当应用程序环境或应用程序本身需要进行转换时,有时需要进行数据迁移。这些可能包括应用程序升级、整合、扩展、将单体应用转换为微服务,甚至将服务从一种应用类型转移到另一种应用类型。

当企业决定转换其应用程序时,通常超越了 IT 基础设施层次的迁移,因为它需要更广泛的业务转型操作。

在急于完成项目的过程中,往往会将数据迁移到新存储环境的策略制定推迟到最后一刻。最后一刻的匆忙往往导致组织跳过步骤,直接进入数据迁移,而没有采取必要的措施。这似乎是显而易见的,但要正确设计和执行数据迁移,组织需要明确迁移的原因。一旦了解需要迁移哪些数据以及为什么,他们就可以探讨如何以最佳方式进行迁移。

数据迁移的三种主要方法是应用级、文件级和块级。下面我们详细了解一下每一种。

应用程序级别或逻辑数据迁移 应用程序数据迁移——有时被称为逻辑数据迁移或事务级别迁移——是一种利用本身内置在应用程序工作负载中的数据移动能力的迁移方法。

这些功能通常只适用于少量的企业级应用,如数据库、虚拟化管理程序和文件服务器,它们通常是为数据保护目的而设计的。

技术:某些应用程序提供专有的数据移动功能。这些功能通常有助于配置备份或辅助存储,或对其进行协助。然后,这些应用程序同步或异步地确保辅助存储是有效的,并在必要时可以在没有主副本的情况下使用。

应用示例:Postgres SQL逻辑复制、Microsoft SQL复制、Oracle Goldengate、存储vMotion(VMware)以及其他使用VMware API迁移VMware的商业工具。

应用程序级数据迁移的优势 用户界面。原生数据移动功能通常与应用软件集成,并可以通过软件的主要用户界面进行配置。

部署:由于软件中有原生数据移动功能,通常不需要额外的要求或安装。

兼容性和支持。原生数据移动仅为特定应用程序设计,无需担心兼容性问题。如果遇到问题,供应商通常会提供在线支持。应用程序级迁移还可能实现其他数据迁移方法无法提供的应用程序转换功能。一个例子是在不兼容的主要数据库版本之间传输数据。

应用程序级数据迁移的局限性 有限的可用性。只有大型企业应用程序(如数据库和文件服务器)可能提供此类功能。关键词是“可能”。可用性将很大程度上取决于您要迁移到最新版本的应用程序的年代和类型。

单一用途。由于数据移动功能专为单个应用程序构建,因此在大型迁移操作中使用时,许可、培训和其他管理费用的相关成本会累积。效率。应用程序级数据同步是在逻辑层面上执行的。例如,数据库复制是在数据库记录、事务或SQL语句级别进行的。虽然这些方法准确且多功能,但在将数据从一个存储系统同步到另一个存储系统或从一个平台同步到另一个平台时,尤其是涉及大量数据时,可能存在更高效的方法。

生产影响。逻辑同步是应用程序的一部分,因此只能使用应用程序和存储之间现有的可用带宽。因此,在同时维护生产负载的情况下执行数据迁移的能力可能受到限制。

 许可成本。应用程序级数据迁移功能通常被视为企业级特性,需要额外的许可证。由于软件的专有和单一用途特性,可能没有可行的低成本替代方案。

文件迁移就是字面上的意思 —— 在文件系统级别执行的数据迁移。它可以包括本地和基于网络的文件系统。文件迁移工具通常与热门的文件系统类型和文件存储提供商集成。文件迁移工具通常扫描一个文件系统(如Ext4、NTFS、CIFS、NFS、SMB等),然后逐个将文件复制到另一个文件系统。当一个文件正在使用中时,无法进行复制,必须在下一次扫描中移动。一些常见的例子包括 Rsync(Linux)、Robocopy(Windows)、Rclone(云端)以及各种商业选项。

文件级数据迁移的优势:

互操作性:如今,大多数应用程序都使用文件作为持久存储。文件迁移可以作为迁移不同应用程序和不同配置的通用机制。因此,迁移工具与应用程序是独立的。

技术简单:文件数据可以使用操作系统提供的相同的、成熟的 API 来访问,这些 API 是大多数应用程序已经使用的。因此,文件迁移操作通常涉及较少的专业知识和技巧,如果操作不当可能会引入错误。

可用工具:许多文件级数据同步工具都是免费或开源的,包括主要操作系统分发的工具。

兼容性:在应用程序或平台转换期间,可能需要从一种文件系统或文件共享转换到另一种。文件迁移天然支持这些转换,因为数据同步是基于文件对文件的方式进行的。

文件级数据迁移的局限性:

管理开销:在典型的应用环境中,会有大量的文件和文件系统。管理所有文件和文件系统的迁移可能会产生很大的不必要的管理和维护开销。例如,如果组织正在搬迁整个数据中心,逐个文件的迁移所需的时间和管理可能会成为负担,以至于严重延误搬迁进度。

效率:与在应用记录或事务级别进行迁移类似,在活跃环境中逐个迁移大量文件可能效率较低,尤其是在数据变化频繁的场景下。执行此类迁移所需的资源通常也更高。

应用程序如数据库在某些情况下可能频繁更改文件数据(保持文件打开和锁定),这可能使文件迁移效率极低甚至不可能实现。

文件元数据:文件元数据,诸如访问控制列表 (ACL),可能非常复杂。许多基本工具没有提供足够的支持。当跨平台迁移时,缺乏按需支持可能会导致问题。

数据完整性:在文件迁移中,仅同步文件数据。文件系统的内部结构和元数据并未同步。对于需要在迁移后独立验证数据完整性的一些组织来说,遗留元数据是个问题。发现缺失或损坏的文件并无简单方法。

相反,如果完全迁移文件系统,包括内部文件系统结构和元数据,任何数据损坏或遗漏的数据可能会导致文件系统无法卸载,并可通过文件系统检查来检测。仅有文件数据损坏而非文件系统本身损坏的几率极低,可以在数学上忽略不计。

块级数据迁移:块级数据迁移是在存储卷级别执行的。块级迁移并不严格关注存储卷中存储的实际数据。相反,它们包括任何类型的文件系统数据、任何类型的分区、原始块存储以及来自任何应用程序的数据。

相反,如果完全迁移文件系统,包括内部文件系统结构和元数据,任何数据损坏或遗漏的数据可能会导致文件系统无法卸载,并可通过文件系统检查来检测。仅有文件数据损坏而非文件系统本身损坏的几率极低,可以在数学上忽略不计。

块级数据迁移:块级数据迁移是在存储卷级别执行的。块级迁移并不严格关注存储卷中存储的实际数据。相反,它们包括任何类型的文件系统数据、任何类型的分区、原始块存储以及来自任何应用程序的数据。

技术:块级迁移工具在不处理任何数据内容的情况下,从存储卷的开始(字节0)同步到整个卷的结束(字节N),将一个存储卷同步到另一个存储卷。所有数据都被同步,从而在目标端获得与迁移源卷逐字节相同的副本。示例:dd 命令(Linux)、Cirrus Migrate Cloud、Cirrus Migrate On-Premises,以及其他商业迁移和灾难恢复工具。

块级数据迁移的优势:

管理效率:在搬迁数据中心或更新存储设备的组织中,通常可以看到显著的效率优势。在这些场景下,目标是在新位置或存储产品中创建一个与原存储卷相同的副本。无论传输了多少数据、存储设备中存储了多少文件,或者存储设备上有多少不同类型的数据,数据迁移都作为一个相同的单元进行。

性能:数据以块级别同步,通过更精细的变更跟踪、更大的块 I/O、顺序访问等手段,实现更高效的数据复制。作为一个单元迁移整个存储卷还允许使用更先进的数据减少能力。

基本通用性:块迁移在基础架构级别将数据作为一个单元进行迁移。由于块级迁移过程不需要处理存储设备上的任何数据,因此不存在文件系统或应用程序支持或兼容性问题。从 VMware 的 VMFS 到超融合环境,再到水平扩展的软件定义存储,可以在无需处理任何数据内容的情况下进行迁移。

数据安全性:块级迁移是唯一真正安全的数据迁移方法,因为在整个迁移过程中,迁移工具不解释任何应用程序或文件数据。甚至可以在没有文件系统密钥的情况下迁移加密的文件系统。

原始存储支持:对于不从文件系统消耗数据或使用专有文件系统的专业应用程序来说,块级迁移可能是实现准确且卷一致迁移的唯一途径。

数据完整性:与其他迁移方法相比,块级迁移要简单得多。块级数据主要按顺序复制,整个存储设备作为一个单元进行同步。因此,完成迁移后的数据完整性可以通过较少的努力独立验证。

真正的实时迁移:执行块级迁移的迁移工具可以迁移真正实时的数据。在生产环境中如何使用这些数据并不重要。无论数据包含在数据库还是文件存档中,无论文件是否经常被打开和锁定,甚至文件权限发生变化,块级迁移都以相同的方式进行。

块级数据迁移的局限性:

技术复杂性:尽管概念上简单,但块级迁移在技术上相当复杂。与其他迁移方法不同,块级迁移通常涉及专业知识和技巧,而不是现成的操作系统提供的 API。这包括光纤通道和 iSCSI 协议知识、低级别特定于操作系统的内核操作等。

工具稀缺:由于块级迁移的复杂性和专业性,可用的块级迁移工具较少。专门用于块级迁移的工具更为稀缺,因为目前大多数可用的块级同步解决方案都是为数据保护和灾难恢复目的而设计的。

应用程序转换:块级迁移为迁移任何数据提供了极好的方法。然而,在应用程序进行转换且需要更改数据时,可能需要特定于应用的工具。例如,在将 Oracle 数据库实例从 AIX 主机迁移到 Linux 主机时,由于两个操作系统架构之间字节序的差异,可能更倾向于使用应用程序级别的逻辑迁移。

迁移是应用程序、文件还是块?

随着需要存储的数据量不断增加,全球各地的组织不仅在考虑如何存储数据,还在努力优化其存储环境。随着存储技术的不断发展,以及云计算逐渐成为高性能数据库和应用程序的可行选择,数据迁移和数据流动性变得尤为重要。关于数据类型、目标以及控制存储成本的方法的讨论现在已经成为中心话题。这个过程的第一步是了解各种选择,然后使策略与目标保持一致。

b78e9c31bc1e1da9f0ceacad930877a7.png

https://www.infoworld.com/article/3694888/understand-the-3-major-approaches-to-data-migration.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/25301.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ShardingSphere笔记(三):自定义分片算法 — 按月分表·真·自动建表

ShardingSphere笔记(二):自定义分片算法 — 按月分表真自动建表 文章目录 ShardingSphere笔记(二):自定义分片算法 — 按月分表真自动建表一、 前言二、 Springboot 的动态数据库三、 实现我们自己的动态数…

MySQL查询当前数据和上一行数据比较、业务数据的趋势分析、数据变动的监控和报警

标题: 使用MySQL查询当前数据和上一行数据比较的场景 在MySQL中,我们经常需要对数据进行比较和分析。其中一种常见的需求是查询数据列表并与前一行的数据进行比较。这种场景可以通过使用窗口函数或连接来实现。本文将介绍使用MySQL查询比较数据和上一行数据的场景&a…

计算机组成原理-指令系统-指令格式及寻址方式

目录 一、指令的定义 1.1 扩展操作码指令格式 二、指令寻址方式 2.1 顺序寻址 2.2 跳跃寻址 三、 数据寻址 3.1 直接寻址 3.2 间接寻址 3.3 寄存器寻址 ​ 3.4 寄存器间接寻址 3.5 隐含寻址 3.6 立即寻址 3.7 偏移地址 3.7.1 基址寻址 3.7.2 变址寻址 3.7.3 相对寻址…

【C++】右值引用和移动语义(详细解析)

文章目录 1.左值引用和右值引用左值引用右值引用 2.左值引用和右值引用的比较左值引用总结右值引用总结 3.右值引用的使用场景和意义知识点1知识点2知识点3知识点4总结 4.完美转发万能引用见识完美转发的使用完美转发的使用场景 1.左值引用和右值引用 传统的C语法中就有引用的…

【SpringCloud】SpringAMQP总结

文章目录 1、AMQP2、基本消息模型队列3、WorkQueue模型4、发布订阅模型5、发布订阅-Fanout Exchange6、发布订阅-DirectExchange7、发布订阅-TopicExchange8、消息转换器 1、AMQP Advanced Message Queuing Protocol,高级消息队列协议。是用于在应用程序之间传递业务…

Java设计模式(三)

系列文章目录 迪米特法则 合成复用原则 设计原则核心思想 文章目录 系列文章目录前言一、迪米特法则1.迪米特法则基本介绍2.迪米特法则注意事项和细节 二、合成复用原则1.合成复用原则基本介绍 三、设计原则核心思想总结 前言 大家好呀,欢迎来到柚子的博客~让我们…

CAPL(vTESTStudio) - CAPL、CANoe、Panel联动

目录 一、变量设置 ① dbc文件中的Environment variables变量

图灵完备游戏:信号计数 解法记录

使用1个全加器 2个半加器完成。这关的思想主旨在于如何把输出4,输出2,输出1的情况统一在一根导线上。 首先用一个全加器来完成输入2-4这三个引脚的计数,因为全加器输出范围二进制是00 - 11,而输入正好有两个引脚数位是2和1&…

高压放大器在大学教研领域的实际应用

在大学教研领域中,高压放大器可以用于多种实际应用。下面将介绍其中几个典型的应用场景。 1、激光切割 适用高校学院:机械学院 应用场景:机械制造、各类材料的切割 2、超声雾化 适用高校学院:医学院、机械学院、物理学院 应用场景…

《Spring Guides系列学习》guide31 - guide34 及中期简单回顾

要想全面快速学习Spring的内容,最好的方法肯定是先去Spring官网去查阅文档,在Spring官网中找到了适合新手了解的官网Guides,一共68篇,打算全部过一遍,能尽量全面的了解Spring框架的每个特性和功能。 接着上篇看过的gu…

使用 GitHub Actions 自动部署 Hexo 个人博客

文章目录 申请 GitHub Token源码仓库配置 Github Action重新设置远程仓库和分支查看部署 每次部署 Hexo 都需要运行 hexo cl & hexo g & hexo d 指令三件套完成推送到远程仓库,随着文章越来越多,编译的时间也会越来越长,通过 Github …

chatgpt赋能python:Python创建venv的完全指南

Python创建venv的完全指南 在Python开发中,虚拟环境是一个非常有用的工具。它可以让我们在同一台计算机上拥有多个Python环境,而不会互相干扰。在本文中,我们将介绍如何使用Python创建venv(虚拟环境)。 什么是venv&a…

形态学图像处理和图像分割MATLAB实验

文章目录 一、实验目的二、实验内容1. 开运算和闭运算实验。2. 用形态学处理提取边界。4. 全局阈值处理。 一、实验目的 理解腐蚀和膨胀的原理,掌握开运算、闭运算及形态学的边界提取。掌握孤立点检测、线检测和边缘检测的方法。掌握全局阈值处理的方法。 二、实验…

如何在上架App之前设置证书并上传应用

App上架教程 在上架App之前想要进行真机测试的同学,请查看《iOS- 最全的真机测试教程》,里面包含如何让多台电脑同时上架App和真机调试。 P12文件的使用详解 注意: 同样可以在Build Setting 的sign中设置证书,但是有点麻烦&…

C语言函数大全-- y 开头的函数

C语言函数大全 y 开头的函数1. yperror1.1 函数说明1.2 演示示例 2. yp_match2.1 函数说明2.2 演示示例 3. y0【零阶第二类贝塞尔函数】3.1 函数说明3.2 演示示例3.3 运行结果 4. y1【一阶第二类贝塞尔函数】4.1 函数说明4.2 演示示例4.3 运行结果 5. yn【n 阶第二类贝塞尔函数…

Python IDLE介绍

目录 IDE(集成开发环境)是什么 Python IDLE使用方法详解 Python IDLE常用快捷键 IDE(集成开发环境)是什么 IDE 是 Integrated Development Environment 的缩写,中文称为集成开发环境,用来表示辅助程序员…

第五章 图像处理

文章目录 前言一、图像金字塔1.高斯金字塔2.拉普拉斯金字塔 二、图像轮廓1. 轮廓提取2. 轮廓绘制3. 轮廓特征4. 轮廓近似5. 轮廓标记 三、模板匹配四、直方图1. 对比度2. 绘制直方图3. 均衡化3.1 理论3.2 代码 4. CLAHE 五、图像傅里叶变换5.1 正弦平面波5.2 二维傅里叶变换5.3…

VITS语音生成模型详解及中文语音生成训练

1 VITS模型介绍 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)是一种结合变分推理(variational inference)、标准化流(normalizing flows)和对抗训练的高表现力语…

fastjson 1.2.24 反序列化导致任意命令执行漏洞复现

前言 fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,的作用就是把java对象转换为json形式,也可 以用来将json转换为java对象。 fastjson在解析json的过程中,支持使用autoType来实例化某一个具体的类&#xff…

20230530论文整理·1-课题组1

个人观点,现在的NLP文章,有些是在做积木,微创新,有些文章,是可以的,读起来很美,有些,太过逆了,吃起来没味道,反胃。 文章目录 1.CODEIE: Large Code Generat…