本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将本地 MySQL 数据库迁移至 Amazon EC2
Lorenzo Mota,Amazon Web Services
Summary
此模式为将本地 MySQL 数据库迁移至 Amazon Elastic Compute Cloud (Amazon EC2) 实例上的 MySQL 数据库提供了指导。该模式讨论了如何使用 AWS Database Migration Service (AWS DMS) 或原生 MySQL 工具(例如 my sqldump)进行迁移。专注于将整个数据库迁移到 MySQL 数据库实例。
该模式主要面向 DBAs 解决方案架构师。可在小型或大型项目、测试或最终迁移阶段使用。我们建议您在生产环境中使用此模式之前,先至少运行一个测试周期。
先决条件和限制
先决条件
一个有效的 Amazon Web Services account。
本地数据中心的 MySQL 源数据库
产品版本
MySQL 版本 5.5 及更高版本。
亚马逊 EC2 支持的目标操作系统;参见亚马逊 EC2 FAQs
架构
源技术堆栈
本地 MySQL 数据库
目标技术堆栈
Amazon EC2 上的 MySQL 数据库实例
AWS 数据迁移方法
目标架构
下图说明了割接后目标 Amazon EC2 的实施方案。

AWS 数据迁移架构
使用 AWS DMS:
下图说明了在切换之前向目标 MySQL 数据库发送完整和增量更改所基于 AWS DMS 的数据迁移工作流程。从本地到的网络连接 AWS 取决于 SQL 客户端的要求,不在此模式的范围之内。

使用其他 MySQL 工具:
下图说明了使用 MySQL 工具从本地数据库生成导出转储文件的数据迁移工作流。在割接之前,这些文件将移至 Amazon Simple Storage Service(Amazon S3)并导入到目标 MySQL 数据库。从本地到的网络连接 AWS 取决于 SQL 客户端的要求,不在此模式的范围之内。

备注:
根据停机时间考虑因素和最终转换的数据库大小,您可以使用 AWS DMS 或其他变更数据捕获 (CDC) 工具来最大限度地缩短切换时间。当您使用诸如之类的 CDC 工具时 AWS DMS,可以在几分钟内迁移到目标数据库。
如果根据数据库大小和网络延迟,可以在较短的割接时间窗内完成迁移,采用 mysqldump 的离线策略即可满足需求。(我们建议您执行测试以获得大致时间。)
通常,与离线选项相比,CDC策略 AWS DMS 需要更多的监控和复杂性。
工具
AWS 服务
AWS Database Migration Service (AWS DMS) 支持多个源数据库和目标数据库。有关支持的 MySQL 源数据库和目标数据库的信息 AWS DMS,请参阅使用与 MySQL 兼容的数据库作为源 AWS DMS和使用兼容 MySQL 的数据库作为目标。 AWS DMS如果您的源数据库不受支持 AWS DMS,则必须选择其他方法来迁移数据。
其他工具
mysqldump
是 MySQL 实用程序,用于从 MySQL 数据库创建转储文件,以实现备份或迁移目的。 Percona XtraBackup 是一个
开源实用程序,用于在 MySQL 数据库上执行非阻塞备份。
操作说明
| Task | 说明 | 所需技能 |
|---|---|---|
验证数据库版本。 | 验证源数据库和目标数据库的版本。有关支持的 MySQL 版本的信息 AWS DMS,请参阅 AWS DMS 文档 AWS DMS中的源 AWS DMS和目标。 | 数据库管理员 |
确定目标操作系统。 | 确定目标操作系统的版本。有关 Amazon EC2 支持的目标操作系统的列表,请参阅 A mazon EC2 FAQs | 数据库管理员、系统管理员 |
确定硬件要求。 | 根据 MySQL 兼容性列表和容量要求,确定目标服务器实例 | 数据库管理员、系统管理员 |
确定存储要求。 | 确定目标数据库的存储类型和容量。 | 数据库管理员、系统管理员 |
识别网络要求。 | 确定网络要求,例如延迟和带宽。 | 数据库管理员、系统管理员 |
选择目标实例类型。 | 根据容量、存储功能和网络功能选择目标实例类型 | 数据库管理员、系统管理员 |
确定安全要求。 | 确定源数据库和目标数据库的网络或主机访问安全要求。 | 数据库管理员、系统管理员 |
识别用户。 | 确定安装 MySQL 软件所需的操作系统用户列表。有关更多信息,请参阅 MySQL 文档 | 数据库管理员、系统管理员 |
确定备份策略。 | 数据库管理员 | |
确定可用性要求。 | 数据库管理员 | |
确定应用程序迁移或切换策略。 | 数据库管理员、系统管理员 |
| Task | 说明 | 所需技能 |
|---|---|---|
创建用户和组。 | 创建需要访问服务器及数据库的操作系统用户和组。有关更多信息,请参阅 MySQL 文档中的访问控制和账户管理 | 数据库管理员、系统管理员 |
下载 MySQL。 | 下载 MySQL 软件。有关说明和二进制文件,请参阅 MySQL 文档中的安装 MySQL | 数据库管理员、系统管理员 |
在 EC2 实例上安装 MySQL 并配置服务器。 | 连接到 EC2 实例并安装 MySQL 软件。有关更多信息,请参阅 Amazon EC2 文档中的连接到您的 EC2 实例。 | 数据库管理员、系统管理员 |
| Task | 说明 | 所需技能 |
|---|---|---|
使用原生 MySQL 或第三方工具迁移数据。 | 此选项使用原生 MySQL 工具或第三方工具迁移数据库对象及数据。有关说明,请参阅 mysqldump | 数据库管理员 |
| Task | 说明 | 所需技能 |
|---|---|---|
使用迁移数据 AWS DMS。 | 有关更多信息,请参阅 AWS DMS 文档AWS DMS中的高级视图。 | 数据库管理员 |
| Task | 说明 | 所需技能 |
|---|---|---|
收集对象计数。 | 从源数据库和新的目标数据库收集对象计数。修复目标数据库中的任何不一致之处。 | 数据库管理员 |
检查依赖项。 | 确认与其他数据库之间的依赖关系(链接)仍然有效且运行正常。 | 数据库管理员 |
测试。 | 如果这是测试周期,请执行查询测试、收集指标以及修复任何问题。 | 数据库管理员 |
| Task | 说明 | 所需技能 |
|---|---|---|
移动客户端。 | 将应用程序客户端切换至新基础设施。 | 数据库管理员、应用程序所有者、系统管理员 |
提供支持。 | 在功能性应用程序测试期间提供支持。 | 数据库管理员 |
| Task | 说明 | 所需技能 |
|---|---|---|
关闭资源。 | 关闭 AWS DMS 复制实例和其他临时 AWS 资源。 | 数据库管理员、系统管理员 |
查看项目文档。 | 查看和验证项目文档。 | 数据库管理员、应用程序所有者、系统管理员 |
收集指标。 | 收集各项指标,例如迁移所需时间、人工修改与工具辅助修改的比例,以及成本节约情况。 | 数据库管理员、应用程序所有者、系统管理员 |
完成项目结案。 | 完成项目结案并提供反馈。 | 数据库管理员、应用程序所有者、系统管理员 |
停用源数据库。 | 停用本地 MySQL 数据库。 | 数据库管理员、系统管理员 |
相关资源
参考
教程和视频