乐趣区

关于云原生:将-Microsoft-Azure-SQL-数据库迁移到-Amazon-Aurora-MySQL-兼容版

在迁徙 Microsoft Azure SQL 数据库时,通常须要应用数据库工具从 Azure SQL 数据库中提取数据,针对指标数据库进行必要的架构更改,而后将数据导入指标数据库。这个别会波及到手动步骤,并且源应用程序须要停机较长的工夫。如果有一种办法能够疾速平安地从 Azure SQL 迁徙到 Amazon Aurora MySQL 兼容版,同时最大限度地缩小应用程序停机工夫和用户干涉工作,那会怎么样?本博文介绍了如何疾速、平安地主动从 Microsoft Azure SQL 数据库迁徙到 Amazon Aurora MySQL 兼容版,并最大限度地缩小依赖 Microsoft Azure SQL 数据库的应用程序的停机工夫。在下文中,咱们假如您现有一个 Microsoft Azure SQL 数据库,须要将其迁徙到 Amazon Aurora MySQL 兼容版。您将须要对 Azure SQL 数据库的管理员拜访权限,以及连贯信息、用户名和明码。您还须要批改 Azure SQL 数据库防火墙,以容许来自 AWS Database Migration Service(AWS DMS)和托管 AWS Schema Conversion Tool(AWS SCT)的 Amazon Elastic Compute Cloud(Amazon EC2)实例的拜访。对于指标数据库,咱们将应用 Amazon Aurora MySQL 兼容版。

咱们为 AWS SCT 部署应用 Amazon EC2 Windows 实例。SCT 能够本地装置在任何 Windows 或罕用的 Linux 平台上。

咱们将要应用的数据集是示例数据集,可在创立 Azure SQL 数据库时抉择(SalesLT)。下图 1 阐明了用于迁徙的 Azure/AWS 服务。

图 1. 应用的 Azure/AWS 服务

架构转换

在异构数据库迁徙中,转换数据库架构和代码对象通常是最耗时的操作。AWS SCT 是一款易用的应用程序,您能够将其装置在本地部署服务器、本地笔记本电脑 / 台式机或 Amazon EC2 实例上。SCT 可查看源数据库架构,并主动将大多数数据库代码对象(包含视图、存储过程和函数)转换为与指标数据库兼容的格局,帮忙简化异构数据库迁徙。SCT 无奈主动转换的任何对象都将标有详细信息,可供您用来手动转换对象。

数据迁徙

实现架构转换后,您须要挪动数据自身。对于生产数据库,您可能无奈接受迁徙期间的任何停机工夫。要实现接近于零的迁徙停机工夫,您可能须要在将应用程序切换到新的指标数据库之前,确保源数据库和指标数据库同步。

AWS Database Migration Service(AWS DMS)可帮忙您轻松平安地将数据从源数据库迁徙到指标数据库。AWS DMS 反对在应用最宽泛的商业与开源数据库之间进行往返数据迁徙。在咱们的示例中,源数据库位于 Azure SQL 中,指标数据库将托管在 Aurora MySQL 兼容版上。此外,源数据库在迁徙期间放弃齐全失常运行,从而最大限度地缩小依赖该数据库的应用程序的停机工夫。

迁徙过程

将 Azure SQL 数据库迁徙到 Aurora MySQL 兼容数据库包含以下步骤:

  1. 创立 Amazon Aurora MySQL 兼容集群
  2. 创立用于装置 AWS SCT 的 AWS EC2 实例
  3. 将 AWS SCT 连贯到 Azure SQL 数据库并导入架构
  4. 将 Azure SQL 数据库架构转换为 MySQL 架构
  5. 创立 AWS DMS 复制实例
  6. 定义 AWS DMS 终端节点
  7. 创立 AWS DMS 迁徙工作

步骤 1:创立 Amazon Aurora MySQL 兼容集群

如果您曾经领有要用作迁徙指标的 Aurora MySQL 集群,即可间接应用。如果您要创立新 Aurora MySQL 集群,请参阅创立 Amazon Aurora 数据库集群中的具体阐明。

步骤 2:创立用于装置 AWS Schema Conversation Tool(AWS SCT)的 AWS EC2 实例

创立 EC2 实例时,请抉择 t3.medium 实例类型以及 Windows Server 2016 或更高版本作为操作系统。无关如何创立 EC2 实例的介绍,请参阅 Amazon Elastic Compute Cloud Windows 实例用户指南。

无关如何装置 AWS SCT 的信息,请参阅装置、验证和更新 AWS SCT。

步骤 3:将 AWS SCT 连贯到 Azure SQL 数据库并导入架构

关上 SCT 控制台,而后抉择 File, New project wizard(文件,新建我的项目向导),如图 2 所示。

图 2. 关上新的架构转换我的项目

创立一个新数据库迁徙我的项目,如图 3 所示。

图 3. 创立新的数据库迁徙我的项目

在 Project Name(项目名称)字段中键入所需的项目名称。

如果尚未抉择,请为 Source Engine(源引擎)抉择 Azure SQL Database(Azure SQL 数据库)。

抉择 Next(下一步),依照图 4 填写 Azure SQL 数据库连贯详细信息。

图 4. 连贯到源数据库

抉择 Test Connection(测试连贯),如果测试胜利,则将以蓝色突出显示 Next(下一步)按钮。抉择 Next(下一步)。如果测试未胜利,请解决所有谬误,而后从新抉择 Test Connection(测试连贯)。

留神:请记住将 AWS EC2 实例私有 IP 增加到 Azure SQL 数据库防火墙中,如下图 5 所示。

图 5. 配置 AzureDB 防火墙以容许拜访

零碎将确认数据库,如图 6 所示。

图 6. 胜利连贯到源数据库

抉择 Next(下一步),SCT 将运行数据库迁徙评估。评估将提供无关不同数据库引擎之间迁徙模式复杂程度的详细信息,如下图 7 所示。

图 7.SCT 评估报告

抉择 Next(下一步),而后键入 Aurora MySQL 兼容数据库的以下详细信息:

选中 Store Password(存储明码)复选框将明码存储在 SCT 中,如图 8 所示。

图 8. 连贯到指标数据库

当初您曾经创立了新的数据库迁徙我的项目,下一步是将源数据库的 Azure SQL 数据库架构转换为 Amazon Aurora(MySQL)架构。

抉择 View(视图)按钮,而后抉择 Assessment Report(评估报告)视图,如图 9 所示。

图 9. 数据库迁徙评估报告

此时将显示架构迁徙的摘要。抉择 Action Items(操作项)选项卡以查看各个项,如图 10 所示。

图 10. 操作项的摘要视图

开展各行以查看倡议的 SQL 更改,如图 11 所示。SQL 代码能够编辑,以便依据须要进行更新。

图 11. 每个操作项的具体视图

图 11 图例:

  • 绿色 – 主动转换
  • 蓝色 – 须要考察和手动转换

步骤 4:将数据库架构转换为 MySQL 架构

抉择源数据库(SalesLT),如下图 12 所示,右键单击并抉择 Convert Schema(转换架构)。如果您收到音讯 These objects might already exist in the target database.Replace?(指标数据库中可能已存在这些对象。是否替换?),抉择 Yes(是)。

图 12. 转换源数据库

抉择指标数据库(testdb_SalesLT),如下图 13 所示,右键单击并抉择 Apply to database(利用到数据库)。如果您收到音讯 You chose to apply the schema definition for testdb_SalesLT.Are you sure?(您已抉择为 testdb_SalesLT 利用架构定义。是否确定),抉择 Yes(是)。

图 13. 将转换利用到指标数据库

在此阶段,架构现已利用到指标数据库。开展右侧菜单(Target(指标)),当初能够看到转换后的架构。

步骤 5:创立 AWS DMS 复制实例
导航到 AWS 治理控制台,登录您的 AWS 账户,而后在搜寻栏中输出 Database Migration Service。抉择 Database Migration Service 后果,而后零碎会将您转到 AWS DMS 页面(参见下图 14),在该页面中,您将抉择 Create replication instance(创立复制实例),而后以下表中的信息作为领导实现设置:

实现配置后(如图 14 所示),抉择 CREATE(创立)按钮。

图 14. 创立复制实例

正文:
创立复制实例后,将平安组从 Default(原定设置)更改为所需的平安组。对于测试用处,能够将其保留为 Default(原定设置)。

将 DMS 实例私有 IP 增加到 Azure SQL 数据库防火墙以容许拜访。

步骤 6:定义 AWS DMS 终端节点
登录 AWS 治理控制台后,导航到 AWS DMS 并抉择 Endpoints(终端节点),而后创立以下源终端节点:

请确保将以上加粗斜体示例值替换为与您的具体 AzureSQL 数据库关联的值。

图 15. 应用 AzureSQL 连贯详细信息创立源终端节点

创立配置后,如图 15 所示,开展 Test endpoint connection (optional)(测试终端节点连贯(可选))。抉择 VPC 和复制实例,而后抉择 RUN TEST(运行测试),如图 16 所示。

请确保将以上加粗斜体示例值替换为与您的具体 VPC 和复制实例关联的值。

图 16. 测试与源终端节点的连贯

终端节点连贯测试胜利后,抉择图 15 中的 CREATE ENDPOINT(创立终端节点)按钮。

登录 AWS 治理控制台后,导航到 AWS DMS,抉择 Endpoint(终端节点),而后创立以下指标终端节点:

请确保将以上加粗斜体示例值替换为与您的具体 Amazon Aurora MySQL 兼容数据库关联的值。

图 17. 应用 Amazon Aurora MySQL 兼容连贯详细信息创立指标终端节点

创立图 17 中的配置后,开展 Test endpoint connection (optional)(测试终端节点连贯(可选))。抉择 VPC 和复制实例,而后抉择 RUN TEST(运行测试),如图 16 所示。

请确保将以上加粗斜体示例值替换为与您的具体 VPC 和复制实例关联的值。

终端节点连贯测试胜利后,抉择图 17 中的 CREATE ENDPOINT(创立终端节点)按钮。

步骤 7:创立 AWS DMS 迁徙工作

登录到 AWS 治理控制台后,导航到 Database Migration Task(数据库迁徙工作)并抉择 CREATE TASK(创立工作)以创立以下工作,如图 18 所示。

图 18. 创立 Database Migration Service

通过更新 Table Mappings(表映射)局部来实现 Database Migration Service 配置,如图 19 所示。

图 19. 在 AWS Database Migration Service 中创立源 / 指标表映射

抉择 CREATE TASK(创立工作)。

创立工作后,Azure SQL 数据库的迁徙将主动开始,控制台中会显示迁徙进度,如图 20 所示。抉择 Identifier(标识符)并抉择 Table statistics(表统计信息)选项块以查看各个表的迁徙统计信息,如图 21 所示。

图 20. 数据迁徙状态

图 21. 表迁徙统计信息

此时,属于指定架构的所有表及其数据都已从 Azure SQL 数据库传输到 Amazon Aurora MySQL 兼容数据库中。您能够应用本人喜爱的 MySQL 客户端(例如 MySQL Workbench)验证是否传输了所有数据。

论断

在这篇博文中,咱们演示了如何应用 AWS Schema Conversion Tool 和 AWS Data Migration Service,将数据库架构和数据从 AzureSQL 迁徙到 Amazon Aurora MySQL 兼容数据库。试试吧!

本篇作者

Ravin Mathoora

Ravin Mathoora 是 AWS 的解决方案架构师。他与客户单干,以可持续性为领导设计准则,迁徙工作负载并实现现代化革新。

Mark Brealey

Mark Brealey 是一名迁徙解决方案高级架构师,为欧洲、中东和非洲区域的 AWS 合作伙伴提供帮忙。他与 AWS 客户单干,在云上设计可扩大、平安、高性能且牢靠的架构。

面向 DirveSignup,可应用链接:Babelfish&Aurora Serverless v2 workshop(需微调)

退出移动版