什么是数据库迁移?
数据库迁移是指将数据库从一个环境转移到另一个环境的过程。随着企业寻求实现应用程序现代化,其会将相关数据库从本地服务器迁移至云。
将数据库迁移至云,企业可提高服务的可靠性、可扩展性及表现。此外,云数据迁移可降低维护本地数据中心的基础设施成本。
将数据卷迁移至云对于确保数据完整性、合规性及业务连续性至关重要。请考虑以下事项。
预算
数据迁移包括数据审计、映射、测试以及迁移后监控等任务。有时,访问数据库的应用程序需要进行修改,才能从迁移后的数据库中读取数据。企业必须针对此类任务所需的时间、成本和资源进行预算。
停机时间
迁移数据库时,需规划停机时间,以实现源数据库与目标数据库之间的切换。虽然零停机时间不可能实现,但通过精心规划迁移过程和使用合适的数据库迁移工具,可最大限度地减少业务中断。例如,您可以在切换之前早先测试云数据库,以确保应用程序的可靠性和数据的准确性。
源系统与目标系统
同构传输将数据从源系统转移到具有相似数据库引擎的目标系统。相比之下,数据迁移至不同目标平台的过程称为异构传输。例如,将 MySQL 数据库迁移到另一个 MySQL 数据库属于同构传输,而将 Postgres SQL 迁移到 Amazon Aurora 则属于异构传输。同构传输更为简单直接,因为数据库可直接迁移至目标位置,无需额外操作。然而,如果涉及异构迁移,数据库架构师必须在传输前对数据进行清理和转换。
迁移类型
数据库迁移可分为以下类型。
- 部分迁移仅将整个数据集的一部分从原始数据库迁移至云。
- 完整的数据库迁移将源平台上的所有数据转移至目标平台。
任何一次传输之后,源数据库都会与应用程序断开连接。另一种迁移类型是持续迁移或数据复制。它将数据从源数据库无限期地复制到目标数据库。
数据库迁移有哪些类型?
迁移之前,请考虑哪种迁移方式最适合您的使用案例。
离线迁移
离线迁移适用于迁移非关键数据库,这类数据库能够承受较长的停机时间。执行离线迁移时,必须在特定时间段内阻止应用程序向数据库写入数据。时间间隔使数据库架构师能够将数据库直接迁移至云并修改应用程序。通常情况下,企业对不受云迁移工具支持的遗留系统进行现代化改造时,会选择离线迁移。同样,离线数据库迁移是测试和开发项目的理想之选,因为数据的及时更新并非关键因素。
以将本地 Oracle 数据库迁移到 Amazon RDS for Oracle 为例。尽管托管在不同的基础设施上,但这两个数据库共享相似的引擎。因此,数据迁移过程相当简单,如下所述。
步骤 1 — 建立网络连接
使用安全网络将本地数据库连接到 AWS 云。您可以设置虚拟专用网络或使用 AWS Direct Connect,以启用本地到云的连接。借助 AWS Direct Connect,您可以直接连接数据库,无需通过公共互联网传输数据库。
步骤 2 — 停止应用程序写入
为防止目标数据库发生意外更改,需停止应用程序向源数据库写入数据。
步骤 3 — 将数据从本地传输到云
接下来,在云服务器上部署原生数据传输工具。为降低成本,建议在 Amazon EC2 上设置工具。 这样,您仅需为运行原生数据库工具所消耗的资源付费。随后,使用工具从源数据库中提取数据,并将其恢复到云数据库中。
步骤 4 — 执行数据库切换
将整个数据库传输至云后,需对其进行验证,以确保数据一致性。然后,将应用程序的所有数据查询重定向到新数据库。
生产工作负载迁移
迁移生产工作负载需要采取不同于转移非关键数据库的方法。生产工作负载及其数据来源不得离线。即使数据传输正在进行中,用户也必须可以照常访问服务。因此,需要充分的规划和协调,才能在不关闭应用程序的情况下实现迁移。
架构师应用自研脚本或第三方数据复制工具,将数据库迁移至生产工作负载。这些脚本或工具将数据从本地数据库复制到云数据库。在数据复制过程中,本地数据库仍保持运行状态。
当软件开发人员为满足新的和持续的数据需求而修改脚本时,就会面临挑战。此外,他们使用的第三方数据库工具可能需要更新才能成功完成数据库迁移。
在线数据库复制
复制数据库包括编写脚本,在新的数据库引擎中设置数据库架构,然后将数据从源数据库传输至目标数据库。架构包括用于在相关数据库中存储和组织数据的定义。工程师可使用第三方数据复制工具,在不同服务器间创建和维护多个数据副本。这两种方法同样具有挑战性,因为都需要大量人工干预,容易出错,且效率低下。
如果需要更高效且更安全的在线复制数据库的方法,请考虑使用 AWS Database Migration Service(DMS)。 这是一项可自动完成跨数据库引擎迁移的云服务。您可以让 DMS 自动扫描源数据库的架构,并在目标数据库中创建新的架构,而无需手动编写数据传输脚本。这使开发人员能够专注于应用程序的创新,而非繁琐的数据库管理。
下面,我们将分享如何将本地数据库复制到云。
步骤 1 — 盘点现有数据
分析当前本地托管的数据库。如要加快流程,请使用 AWS DMS Fleet Advisor。该工具分析现有的数据库和分析服务器实例集,并识别潜在的迁移路径。它还可编译性能、架构、使用模式及其他指标。
步骤 2 — 将数据库迁移到云
使用 AWS DMS 将整个数据库从本地数据中心迁移到云。此外,您还可以启用 DMS 的变更数据捕获(CDC)模式,以实现近乎实时的复制。通过 CDC,DMS 在原始数据库发生数据更改时进行捕获,并将更改应用于所有复制的数据库。
数据库重构
某些情况下,数据库迁移策略涉及重构或异构传输。企业在应用程序现代化过程中重构数据库的原因包括:降低许可成本、访问云功能以及提升数据质量。 在异构迁移中,源数据库中存储的信息无法直接迁移。数据必须根据目标数据库支持的新架构进行清理、转换和结构化处理。
以下是帮助您重构数据库的步骤。
步骤 1 — 审计数据库
分析本地数据库,并确定用于存储数据的架构。规划如何将当前数据存储在新数据库中。有时,数据库重构涉及将多个数据库合并为一个数据库,或将单个数据库中的数据分发到多个数据库中。
步骤 2 — 转换数据库架构
将从源数据库编译的架构转换为目标数据库所需的格式。您可以使用 AWS DMS Schema Conversion 以简化流程。
注意:数据库工程师可能需要手动创建或修改新架构,尤其是对于高度复杂的数据集。
步骤 3 — 启动数据库迁移
使用 AWS DMS 将数据从本地迁移至云数据库。为确保云数据库在迁移过程中捕获所有更改,请开启 CDC 模式。完成所有数据传输后,将应用程序服务重定向至云数据库。
AWS 如何支持您的数据库迁移需求?
企业将数据库迁移至云,以降低基础设施成本、提升服务可靠性,并充分利用云的其他优势。数据库迁移可以简单到直接移植整个数据库,也可以重建整个架构以满足新的数据需求。无论迁移过程多么复杂,确保数据安全、准确且及时地迁移都至关重要。探索 AWS Database Migration Service,获取托管工具,实现近乎实时的切换、数据库分析、自动化数据传输等功能。