将 Microsoft Azure SQL 数据库迁移到 Amazon Aurora MySQL 兼容版

0
0
{"value":"在迁移 Microsoft Azure SQL 数据库时,通常需要使用数据库工具从 Azure SQL 数据库中提取数据,针对目标数据库进行必要的架构更改,然后将数据导入目标数据库。这一般会涉及到手动步骤,并且源应用程序需要停机较长的时间。如果有一种方法可以快速安全地从 Azure SQL 迁移到 [Amazon Aurora MySQL 兼容版](https://aws.amazon.com/rds/aurora/?aurora-whats-new.sort-by=item.additionalFields.postDateTime&aurora-whats-new.sort-order=desc),同时最大限度地减少应用程序停机时间和用户干预工作,那会怎么样?本博文介绍了如何快速、安全地自动从 Microsoft Azure SQL 数据库迁移到 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) MySQL 兼容版,并最大限度地减少依赖 Microsoft Azure SQL 数据库的应用程序的停机时间。在下文中,我们假设您现有一个 Microsoft Azure SQL 数据库,需要将其迁移到 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) MySQL 兼容版。您将需要对 Azure SQL 数据库的管理员访问权限,以及连接信息、用户名和密码。您还需要修改 Azure SQL 数据库防火墙,以允许来自 [Amazon Database Migration Service](https://aws.amazon.com/dms/)(Amazon DMS)和托管 [Amazon Schema Conversion Tool](https://aws.amazon.com/dms/schema-conversion-tool/)(Amazon SCT)的 [Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2/)(Amazon EC2)实例的访问。对于目标数据库,我们将使用 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) MySQL 兼容版。\n我们为 Amazon SCT 部署使用 [Amazon EC2 ](https://aws.amazon.com/cn/ec2/?trk=cndc-detail)Windows 实例。 SCT 可以本地安装在任何 Windows 或常用的 Linux 平台上。\n\n我们将要使用的数据集是示例数据集,可在创建 Azure SQL 数据库时选择(SalesLT)。下图 1 说明了用于迁移的 Azure/Amazon 服务。\n\n![image.png](https://dev-media.amazoncloud.cn/64da9d49b7654c47a93cee12318f105b_image.png)\n\n图 1.使用的 Azure/Amazon 服务\n\n### **架构转换**\n\n在异构数据库迁移中,转换数据库架构和代码对象通常是最耗时的操作。Amazon SCT 是一款易用的应用程序,您可以将其安装在本地部署服务器、本地笔记本电脑/台式机或 [Amazon EC2 ](https://aws.amazon.com/cn/ec2/?trk=cndc-detail)实例上。SCT 可检查源数据库架构,并自动将大多数数据库代码对象(包括视图、存储过程和函数)转换为与目标数据库兼容的格式,帮助简化异构数据库迁移。SCT 无法自动转换的任何对象都将标有详细信息,可供您用来手动转换对象。\n\n### **数据迁移**\n\n完成架构转换后,您需要移动数据本身。对于生产数据库,您可能无法承受迁移期间的任何停机时间。要实现接近于零的迁移停机时间,您可能需要在将应用程序切换到新的目标数据库之前,确保[源数据库和目标数据库同步](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html)。\n\nAmazon Database Migration Service(Amazon DMS)可帮助您轻松安全地将数据从源数据库迁移到目标数据库。Amazon DMS 支持在使用最广泛的商业与开源数据库之间进行往返数据迁移。在我们的示例中,源数据库位于 Azure SQL 中,目标数据库将托管在 Aurora MySQL 兼容版上。此外,源数据库在迁移期间保持完全正常运行,从而最大限度地减少依赖该数据库的应用程序的停机时间。\n\n#### **迁移过程**\n\n将 Azure SQL 数据库迁移到 Aurora MySQL 兼容数据库包括以下步骤:\n\n1. 创建 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) MySQL 兼容集群\n2. 创建用于安装 Amazon SCT 的 [Amazon EC2 ](https://aws.amazon.com/cn/ec2/?trk=cndc-detail)实例\n3. 将 Amazon SCT 连接到 Azure SQL 数据库并导入架构\n4. 将 Azure SQL 数据库架构转换为 MySQL 架构\n5. 创建 Amazon DMS 复制实例\n6. 定义 Amazon DMS 终端节点\n7. 创建 Amazon DMS 迁移任务\n\n**步骤 1:创建 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) MySQL 兼容集群**\n\n如果您已经拥有要用作迁移目标的 Aurora MySQL 集群,即可直接使用。如果您要创建新 Aurora MySQL 集群,请参阅[创建 Amazon Aurora 数据库集群](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.CreateInstance.html)中的详细说明。\n\n**步骤 2:创建用于安装 Amazon Schema Conversation Tool(Amazon SCT)的 [Amazon EC2 ](https://aws.amazon.com/cn/ec2/?trk=cndc-detail)实例**\n\n创建 EC2 实例时,请选择 [t3.medium](https://aws.amazon.com/ec2/instance-types/) 实例类型以及 Windows Server 2016 或更高版本作为操作系统。有关如何创建 EC2 实例的介绍,请参阅 [Amazon Elastic Compute Cloud Windows 实例用户指南](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/concepts.html)。\n\n有关如何安装 Amazon SCT 的信息,请参阅[安装、验证和更新 Amazon SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html)。\n\n**步骤 3:将 Amazon SCT 连接到 Azure SQL 数据库并导入架构**\n\n打开 SCT 控制台,然后选择 **File, New project wizard**(文件,新建项目向导),如图 2 所示。\n\n![image.png](https://dev-media.amazoncloud.cn/bd5ef7ac820f4e87a4f548c191318a88_image.png)\n\n图 2.打开新的架构转换项目\n\n创建一个新数据库迁移项目,如图 3 所示。\n\n![image.png](https://dev-media.amazoncloud.cn/d832d40f037c441eb01f1dce2af97429_image.png)\n\n图 3.创建新的数据库迁移项目\n\n在 **Project Name**(项目名称)字段中键入所需的项目名称。\n如果尚未选择,请为 **Source Engine**(源引擎)选择 **Azure SQL Database**(Azure SQL 数据库)。\n选择 **Next**(下一步),按照图 4 填写 Azure SQL 数据库连接详细信息。\n\n![image.png](https://dev-media.amazoncloud.cn/d0c6185db9c747e18e2fbb28527e4a85_image.png)\n\n![image.png](https://dev-media.amazoncloud.cn/35fd0500e16e47fb9cd1eae20a5a9bdb_image.png)\n\n图 4.连接到源数据库\n\n选择 **Test Connection**(测试连接),如果测试成功,则将以蓝色突出显示 Next(下一步)按钮。选择 **Next**(下一步)。如果测试未成功,请解决所有错误,然后重新选择 **Test Connection**(测试连接)。\n\n注意:请记住将 [Amazon EC2 ](https://aws.amazon.com/cn/ec2/?trk=cndc-detail)实例公有 IP 添加到 Azure SQL 数据库防火墙中,如下图 5 所示。\n\n![image.png](https://dev-media.amazoncloud.cn/7522c3614c084c43b74ceda317fee5c6_image.png)\n\n图 5.配置 AzureDB 防火墙以允许访问\n\n系统将确认数据库,如图 6 所示。\n\n![image.png](https://dev-media.amazoncloud.cn/f317186ea1eb4e55935d87fe171bc75e_image.png)\n\n图 6.成功连接到源数据库\n\n选择 **Next**(下一步),SCT 将运行数据库迁移评估。评估将提供有关不同数据库引擎之间迁移模式复杂程度的详细信息,如下图 7 所示。\n\n![image.png](https://dev-media.amazoncloud.cn/0047ab6f7b37477689b63e3603203942_image.png)\n\n选择 **Next**(下一步),然后键入 Aurora MySQL 兼容数据库的以下详细信息:\n\n![image.png](https://dev-media.amazoncloud.cn/b7d579e4766a4e629ce9d7facaaaeb76_image.png)\n\n选中 **Store Password**(存储密码)复选框将密码存储在 SCT 中,如图 8 所示。\n\n![image.png](https://dev-media.amazoncloud.cn/e6bd071aa45b49d9b77ffd0672a414f0_image.png)\n\n图 8.连接到目标数据库\n\n现在您已经创建了新的数据库迁移项目,下一步是将源数据库的 Azure SQL 数据库架构转换为 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail)(MySQL)架构。\n\n选择 **View**(视图)按钮,然后选择 **Assessment Report**(评估报告)视图,如图 9 所示。\n\n![image.png](https://dev-media.amazoncloud.cn/a0c44e4c083a402eb7e64b7d7d660f07_image.png)\n\n图 9.数据库迁移评估报告\n\n此时将显示架构迁移的摘要。选择 **Action Items**(操作项)选项卡以查看各个项,如图 10 所示。\n\n![image.png](https://dev-media.amazoncloud.cn/c085bdd72cf9460dac7ae538631c4a79_image.png)\n\n图 10.操作项的摘要视图\n\n展开各行以查看建议的 SQL 更改,如图 11 所示。SQL 代码可以编辑,以便根据需要进行更新。\n\n![image.png](https://dev-media.amazoncloud.cn/7a488e368ef945d8bad42843f3b3de14_image.png)\n\n图 11.每个操作项的详细视图\n\n图 11 图例:\n绿色 – 自动转换\n蓝色 – 需要调查和手动转换\n\n**步骤 4:将数据库架构转换为 MySQL 架构**\n\n选择源数据库(**SalesLT**),如下图 12 所示,右键单击并选择 **Convert Schema**(转换架构)。如果您收到消息 **These objects might already exist in the target database.Replace?**(目标数据库中可能已存在这些对象。是否替换?),选择**Yes**(是)。\n\n![image.png](https://dev-media.amazoncloud.cn/ec37e4da9bb84e809f7d4f7717693b31_image.png)\n\n图 12.转换源数据库\n\n选择目标数据库(**testdb_SalesLT**),如下图 13 所示,右键单击并选择 **Apply to database**(应用到数据库)。如果您收到消息 **You chose to apply the schema definition for testdb_SalesLT.Are you sure?**(您已选择为 testdb_SalesLT 应用架构定义。是否确定),选择 **Yes**(是)。\n\n![image.png](https://dev-media.amazoncloud.cn/2b0d37927a9444dcadbdfe45d5a25a32_image.png)\n\n图 13.将转换应用到目标数据库\n\n在此阶段,架构现已应用到目标数据库。展开右侧菜单(**Target**(目标)),现在可以看到转换后的架构。\n\n**步骤 5:创建 Amazon DMS 复制实例**\n\n导航到 [Amazon 管理控制台](https://aws.amazon.com/console/),登录您的 Amazon 账户,然后在搜索栏中输入 **Database Migration Service**。选择 **Database Migration Service** 结果,然后系统会将您转到 Amazon DMS 页面(参见下图 14),在该页面中,您将选择 **Create replication instance**(创建复制实例),然后以下表中的信息作为指导完成设置:\n\n![image.png](https://dev-media.amazoncloud.cn/05a0f6981df442b28977257c02787777_image.png)\n\n完成配置后(如图 14 所示),选择 **CREATE**(创建)按钮。\n\n![image.png](https://dev-media.amazoncloud.cn/fe1b6575d11342a4a868e615987595bf_image.png)\n\n图 14.创建复制实例\n\n**++注释:++**\n\n创建复制实例后,将安全组从 **Default**(原定设置)更改为所需的安全组。对于测试用途,可以将其保留为 **Default**(原定设置)。\n将 DMS 实例公有 IP 添加到 Azure SQL 数据库防火墙以允许访问。\n\n**步骤 6:定义 Amazon DMS 终端节点**\n\n登录 Amazon 管理控制台后,导航到 **Amazon DMS** 并选择 **Endpoints**(终端节点),然后创建以下源终端节点:\n\n![image.png](https://dev-media.amazoncloud.cn/e90ea6075e2c47c291100feb3ea5b5eb_image.png)\n\n请确保将**以上加粗斜体示例值**替换为与您的具体 AzureSQL 数据库关联的值。\n\n![image.png](https://dev-media.amazoncloud.cn/fbc18c65ee494f9aba1871459f828166_image.png)\n\n图 15.使用 AzureSQL 连接详细信息创建源终端节点\n\n创建配置后,如图 15 所示,展开 **Test endpoint connection (optional)**(测试终端节点连接(可选))。选择 VPC 和复制实例,然后选择 **RUN TEST**(运行测试),如图 16 所示。\n\n![image.png](https://dev-media.amazoncloud.cn/8e9774bf56d94560a866d6dde3e34b02_image.png)\n\n请确保将**以上加粗斜体示例值**替换为与您的具体 VPC 和复制实例关联的值。\n\n![image.png](https://dev-media.amazoncloud.cn/811b78f8b44a416c93b69f544467a5cd_image.png)\n\n图 16.测试与源终端节点的连接\n\n终端节点连接测试成功后,选择图 15 中的 **CREATE ENDPOINT**(创建终端节点)按钮。\n\n登录 Amazon 管理控制台后,导航到 **Amazon DMS**,选择 **Endpoint**(终端节点),然后创建以下目标终端节点:\n\n![image.png](https://dev-media.amazoncloud.cn/a845b305651d4e9099c967798b0bbde1_image.png)\n\n请确保将**以上加粗斜体示例值**替换为与您的具体 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) MySQL 兼容数据库关联的值。\n\n![image.png](https://dev-media.amazoncloud.cn/a50c6e7ec9aa4471a84e970e02d31485_image.png)\n\n图 17.使用 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) MySQL 兼容连接详细信息创建目标终端节点\n\n创建图 17 中的配置后,展开 **Test endpoint connection (optional)**(测试终端节点连接(可选))。选择 VPC 和复制实例,然后选择 **RUN TEST**(运行测试),如图 16 所示。\n\n![image.png](https://dev-media.amazoncloud.cn/3804b820a7bb4f9e8f66e5d996cd818b_image.png)\n\n请确保将**以上加粗斜体示例值**替换为与您的具体 VPC 和复制实例关联的值。\n\n终端节点连接测试成功后,选择图 17 中的 **CREATE ENDPOINT**(创建终端节点)按钮。\n\n**步骤 7:创建 AWS DMS 迁移任务**\n\n登录到 Amazon 管理控制台后,导航到 **Database Migration Task**(数据库迁移任务)并选择 **CREATE TASK**(创建任务)以创建以下任务,如图 18 所示。\n\n![image.png](https://dev-media.amazoncloud.cn/23e91d0530ef43f493ac41c2f44896e4_image.png)\n\n![image.png](https://dev-media.amazoncloud.cn/24139bf1f8f142ee9dd5263a54139e53_image.png)\n\n图 18.创建 Database Migration Service\n\n通过更新 **Table Mappings**(表映射)部分来完成 Database Migration Service 配置,如图 19 所示。\n\n![image.png](https://dev-media.amazoncloud.cn/01a3018e688b46239728f24f43f22c3b_image.png)\n\n![image.png](https://dev-media.amazoncloud.cn/35db5215c7164202a6efcb89d9f4b9a9_image.png)\n\n![image.png](https://dev-media.amazoncloud.cn/28695c7208484c658bb3216be29fcb7b_image.png)\n\n图 19.在 Amazon Database Migration Service 中创建源/目标表映射\n\n选择 **CREATE TASK**(创建任务)。\n\n创建任务后,Azure SQL 数据库的迁移将自动开始,控制台中会显示迁移进度,如图 20 所示。选择 **Identifier**(标识符)并选择 **Table statistics**(表统计信息)选项块以查看各个表的迁移统计信息,如图 21 所示。\n\n![image.png](https://dev-media.amazoncloud.cn/83b01a52f9d74684997531c12ba83942_image.png)\n\n图 20.数据迁移状态\n\n![image.png](https://dev-media.amazoncloud.cn/1bc9eb6f5dfd449489e959d26edfab59_image.png)\n\n图 21.表迁移统计信息\n\n此时,属于指定架构的所有表及其数据都已从 Azure SQL 数据库传输到 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) MySQL 兼容数据库中。您可以使用自己喜欢的 MySQL 客户端(例如 [MySQL Workbench](https://dev.mysql.com/downloads/workbench/))验证是否传输了所有数据。\n\n### **结论**\n\n在这篇博文中,我们演示了如何使用 Amazon Schema Conversion Tool 和 Amazon Data Migration Service,将数据库架构和数据从 AzureSQL 迁移到 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) MySQL 兼容数据库。试试吧!\n\n### **本篇作者**\n\n![image.png](https://dev-media.amazoncloud.cn/352886522378438aa0f78b5bd2705c9e_image.png)\n\n**Ravin Mathoora**\n\nRavin Mathoora 是 Amazon 的解决方案架构师。他与客户合作,以可持续性为指导设计原则,迁移工作负载并实现现代化改造。\n\n![image.png](https://dev-media.amazoncloud.cn/0078caa09f4e41d189b6658e939945fc_image.png)\n\n**Mark Brealey**\n\nMark Brealey 是一名迁移解决方案高级架构师,为欧洲、中东和非洲区域的 Amazon 合作伙伴提供帮助。他与 Amazon 客户合作,在云上设计可扩展、安全、高性能且可靠的架构。","render":"<p>在迁移 Microsoft Azure SQL 数据库时,通常需要使用数据库工具从 Azure SQL 数据库中提取数据,针对目标数据库进行必要的架构更改,然后将数据导入目标数据库。这一般会涉及到手动步骤,并且源应用程序需要停机较长的时间。如果有一种方法可以快速安全地从 Azure SQL 迁移到 <a href=\\"https://aws.amazon.com/rds/aurora/?aurora-whats-new.sort-by=item.additionalFields.postDateTime&amp;aurora-whats-new.sort-order=desc\\" target=\\"_blank\\">Amazon Aurora MySQL 兼容版</a>,同时最大限度地减少应用程序停机时间和用户干预工作,那会怎么样?本博文介绍了如何快速、安全地自动从 Microsoft Azure SQL 数据库迁移到 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) MySQL 兼容版,并最大限度地减少依赖 Microsoft Azure SQL 数据库的应用程序的停机时间。在下文中,我们假设您现有一个 Microsoft Azure SQL 数据库,需要将其迁移到 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) MySQL 兼容版。您将需要对 Azure SQL 数据库的管理员访问权限,以及连接信息、用户名和密码。您还需要修改 Azure SQL 数据库防火墙,以允许来自 <a href=\\"https://aws.amazon.com/dms/\\" target=\\"_blank\\">Amazon Database Migration Service</a>(Amazon DMS)和托管 <a href=\\"https://aws.amazon.com/dms/schema-conversion-tool/\\" target=\\"_blank\\">Amazon Schema Conversion Tool</a>(Amazon SCT)的 <a href=\\"https://aws.amazon.com/ec2/\\" target=\\"_blank\\">Amazon Elastic Compute Cloud</a>(Amazon EC2)实例的访问。对于目标数据库,我们将使用 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) MySQL 兼容版。<br />\\n我们为 Amazon SCT 部署使用 Amazon EC2 Windows 实例。 SCT 可以本地安装在任何 Windows 或常用的 Linux 平台上。</p>\n<p>我们将要使用的数据集是示例数据集,可在创建 Azure SQL 数据库时选择(SalesLT)。下图 1 说明了用于迁移的 Azure/Amazon 服务。</p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/64da9d49b7654c47a93cee12318f105b_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 1.使用的 Azure/Amazon 服务</p>\n<h3><a id=\\"_9\\"></a><strong>架构转换</strong></h3>\\n<p>在异构数据库迁移中,转换数据库架构和代码对象通常是最耗时的操作。Amazon SCT 是一款易用的应用程序,您可以将其安装在本地部署服务器、本地笔记本电脑/台式机或 Amazon EC2 实例上。SCT 可检查源数据库架构,并自动将大多数数据库代码对象(包括视图、存储过程和函数)转换为与目标数据库兼容的格式,帮助简化异构数据库迁移。SCT 无法自动转换的任何对象都将标有详细信息,可供您用来手动转换对象。</p>\n<h3><a id=\\"_13\\"></a><strong>数据迁移</strong></h3>\\n<p>完成架构转换后,您需要移动数据本身。对于生产数据库,您可能无法承受迁移期间的任何停机时间。要实现接近于零的迁移停机时间,您可能需要在将应用程序切换到新的目标数据库之前,确保<a href=\\"https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html\\" target=\\"_blank\\">源数据库和目标数据库同步</a>。</p>\\n<p>Amazon Database Migration Service(Amazon DMS)可帮助您轻松安全地将数据从源数据库迁移到目标数据库。Amazon DMS 支持在使用最广泛的商业与开源数据库之间进行往返数据迁移。在我们的示例中,源数据库位于 Azure SQL 中,目标数据库将托管在 Aurora MySQL 兼容版上。此外,源数据库在迁移期间保持完全正常运行,从而最大限度地减少依赖该数据库的应用程序的停机时间。</p>\n<h4><a id=\\"_19\\"></a><strong>迁移过程</strong></h4>\\n<p>将 Azure SQL 数据库迁移到 Aurora MySQL 兼容数据库包括以下步骤:</p>\n<ol>\\n<li>创建 Amazon Aurora MySQL 兼容集群</li>\n<li>创建用于安装 Amazon SCT 的 Amazon EC2 实例</li>\n<li>将 Amazon SCT 连接到 Azure SQL 数据库并导入架构</li>\n<li>将 Azure SQL 数据库架构转换为 MySQL 架构</li>\n<li>创建 Amazon DMS 复制实例</li>\n<li>定义 Amazon DMS 终端节点</li>\n<li>创建 Amazon DMS 迁移任务</li>\n</ol>\\n<p><strong>步骤 1:创建 Amazon Aurora MySQL 兼容集群</strong></p>\\n<p>如果您已经拥有要用作迁移目标的 Aurora MySQL 集群,即可直接使用。如果您要创建新 Aurora MySQL 集群,请参阅<a href=\\"http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.CreateInstance.html\\" target=\\"_blank\\">创建 Amazon Aurora 数据库集群</a>中的详细说明。</p>\\n<p><strong>步骤 2:创建用于安装 Amazon Schema Conversation Tool(Amazon SCT)的 Amazon EC2 实例</strong></p>\\n<p>创建 EC2 实例时,请选择 <a href=\\"https://aws.amazon.com/ec2/instance-types/\\" target=\\"_blank\\">t3.medium</a> 实例类型以及 Windows Server 2016 或更高版本作为操作系统。有关如何创建 EC2 实例的介绍,请参阅 <a href=\\"https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/concepts.html\\" target=\\"_blank\\">Amazon Elastic Compute Cloud Windows 实例用户指南</a>。</p>\\n<p>有关如何安装 Amazon SCT 的信息,请参阅<a href=\\"https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html\\" target=\\"_blank\\">安装、验证和更新 Amazon SCT</a>。</p>\\n<p><strong>步骤 3:将 Amazon SCT 连接到 Azure SQL 数据库并导入架构</strong></p>\\n<p>打开 SCT 控制台,然后选择 <strong>File, New project wizard</strong>(文件,新建项目向导),如图 2 所示。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/bd5ef7ac820f4e87a4f548c191318a88_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 2.打开新的架构转换项目</p>\n<p>创建一个新数据库迁移项目,如图 3 所示。</p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/d832d40f037c441eb01f1dce2af97429_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 3.创建新的数据库迁移项目</p>\n<p>在 <strong>Project Name</strong>(项目名称)字段中键入所需的项目名称。<br />\\n如果尚未选择,请为 <strong>Source Engine</strong>(源引擎)选择 <strong>Azure SQL Database</strong>(Azure SQL 数据库)。<br />\\n选择 <strong>Next</strong>(下一步),按照图 4 填写 Azure SQL 数据库连接详细信息。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/d0c6185db9c747e18e2fbb28527e4a85_image.png\\" alt=\\"image.png\\" /></p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/35fd0500e16e47fb9cd1eae20a5a9bdb_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 4.连接到源数据库</p>\n<p>选择 <strong>Test Connection</strong>(测试连接),如果测试成功,则将以蓝色突出显示 Next(下一步)按钮。选择 <strong>Next</strong>(下一步)。如果测试未成功,请解决所有错误,然后重新选择 <strong>Test Connection</strong>(测试连接)。</p>\\n<p>注意:请记住将 Amazon EC2 实例公有 IP 添加到 Azure SQL 数据库防火墙中,如下图 5 所示。</p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/7522c3614c084c43b74ceda317fee5c6_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 5.配置 AzureDB 防火墙以允许访问</p>\n<p>系统将确认数据库,如图 6 所示。</p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/f317186ea1eb4e55935d87fe171bc75e_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 6.成功连接到源数据库</p>\n<p>选择 <strong>Next</strong>(下一步),SCT 将运行数据库迁移评估。评估将提供有关不同数据库引擎之间迁移模式复杂程度的详细信息,如下图 7 所示。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/0047ab6f7b37477689b63e3603203942_image.png\\" alt=\\"image.png\\" /></p>\n<p>选择 <strong>Next</strong>(下一步),然后键入 Aurora MySQL 兼容数据库的以下详细信息:</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/b7d579e4766a4e629ce9d7facaaaeb76_image.png\\" alt=\\"image.png\\" /></p>\n<p>选中 <strong>Store Password</strong>(存储密码)复选框将密码存储在 SCT 中,如图 8 所示。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/e6bd071aa45b49d9b77ffd0672a414f0_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 8.连接到目标数据库</p>\n<p>现在您已经创建了新的数据库迁移项目,下一步是将源数据库的 Azure SQL 数据库架构转换为 Amazon Aurora(MySQL)架构。</p>\n<p>选择 <strong>View</strong>(视图)按钮,然后选择 <strong>Assessment Report</strong>(评估报告)视图,如图 9 所示。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/a0c44e4c083a402eb7e64b7d7d660f07_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 9.数据库迁移评估报告</p>\n<p>此时将显示架构迁移的摘要。选择 <strong>Action Items</strong>(操作项)选项卡以查看各个项,如图 10 所示。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/c085bdd72cf9460dac7ae538631c4a79_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 10.操作项的摘要视图</p>\n<p>展开各行以查看建议的 SQL 更改,如图 11 所示。SQL 代码可以编辑,以便根据需要进行更新。</p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/7a488e368ef945d8bad42843f3b3de14_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 11.每个操作项的详细视图</p>\n<p>图 11 图例:<br />\\n绿色 – 自动转换<br />\\n蓝色 – 需要调查和手动转换</p>\n<p><strong>步骤 4:将数据库架构转换为 MySQL 架构</strong></p>\\n<p>选择源数据库(<strong>SalesLT</strong>),如下图 12 所示,右键单击并选择 <strong>Convert Schema</strong>(转换架构)。如果您收到消息 <strong>These objects might already exist in the target database.Replace?</strong>(目标数据库中可能已存在这些对象。是否替换?),选择<strong>Yes</strong>(是)。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/ec37e4da9bb84e809f7d4f7717693b31_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 12.转换源数据库</p>\n<p>选择目标数据库(<strong>testdb_SalesLT</strong>),如下图 13 所示,右键单击并选择 <strong>Apply to database</strong>(应用到数据库)。如果您收到消息 <strong>You chose to apply the schema definition for testdb_SalesLT.Are you sure?</strong>(您已选择为 testdb_SalesLT 应用架构定义。是否确定),选择 <strong>Yes</strong>(是)。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/2b0d37927a9444dcadbdfe45d5a25a32_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 13.将转换应用到目标数据库</p>\n<p>在此阶段,架构现已应用到目标数据库。展开右侧菜单(<strong>Target</strong>(目标)),现在可以看到转换后的架构。</p>\\n<p><strong>步骤 5:创建 Amazon DMS 复制实例</strong></p>\\n<p>导航到 <a href=\\"https://aws.amazon.com/console/\\" target=\\"_blank\\">Amazon 管理控制台</a>,登录您的 Amazon 账户,然后在搜索栏中输入 <strong>Database Migration Service</strong>。选择 <strong>Database Migration Service</strong> 结果,然后系统会将您转到 Amazon DMS 页面(参见下图 14),在该页面中,您将选择 <strong>Create replication instance</strong>(创建复制实例),然后以下表中的信息作为指导完成设置:</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/05a0f6981df442b28977257c02787777_image.png\\" alt=\\"image.png\\" /></p>\n<p>完成配置后(如图 14 所示),选择 <strong>CREATE</strong>(创建)按钮。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/fe1b6575d11342a4a868e615987595bf_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 14.创建复制实例</p>\n<p><strong><ins>注释:</ins></strong></p>\n<p>创建复制实例后,将安全组从 <strong>Default</strong>(原定设置)更改为所需的安全组。对于测试用途,可以将其保留为 <strong>Default</strong>(原定设置)。<br />\\n将 DMS 实例公有 IP 添加到 Azure SQL 数据库防火墙以允许访问。</p>\n<p><strong>步骤 6:定义 Amazon DMS 终端节点</strong></p>\\n<p>登录 Amazon 管理控制台后,导航到 <strong>Amazon DMS</strong> 并选择 <strong>Endpoints</strong>(终端节点),然后创建以下源终端节点:</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/e90ea6075e2c47c291100feb3ea5b5eb_image.png\\" alt=\\"image.png\\" /></p>\n<p>请确保将<strong>以上加粗斜体示例值</strong>替换为与您的具体 AzureSQL 数据库关联的值。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/fbc18c65ee494f9aba1871459f828166_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 15.使用 AzureSQL 连接详细信息创建源终端节点</p>\n<p>创建配置后,如图 15 所示,展开 <strong>Test endpoint connection (optional)</strong>(测试终端节点连接(可选))。选择 VPC 和复制实例,然后选择 <strong>RUN TEST</strong>(运行测试),如图 16 所示。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/8e9774bf56d94560a866d6dde3e34b02_image.png\\" alt=\\"image.png\\" /></p>\n<p>请确保将<strong>以上加粗斜体示例值</strong>替换为与您的具体 VPC 和复制实例关联的值。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/811b78f8b44a416c93b69f544467a5cd_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 16.测试与源终端节点的连接</p>\n<p>终端节点连接测试成功后,选择图 15 中的 <strong>CREATE ENDPOINT</strong>(创建终端节点)按钮。</p>\\n<p>登录 Amazon 管理控制台后,导航到 <strong>Amazon DMS</strong>,选择 <strong>Endpoint</strong>(终端节点),然后创建以下目标终端节点:</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/a845b305651d4e9099c967798b0bbde1_image.png\\" alt=\\"image.png\\" /></p>\n<p>请确保将<strong>以上加粗斜体示例值</strong>替换为与您的具体 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) MySQL 兼容数据库关联的值。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/a50c6e7ec9aa4471a84e970e02d31485_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 17.使用 Amazon Aurora MySQL 兼容连接详细信息创建目标终端节点</p>\n<p>创建图 17 中的配置后,展开 <strong>Test endpoint connection (optional)</strong>(测试终端节点连接(可选))。选择 VPC 和复制实例,然后选择 <strong>RUN TEST</strong>(运行测试),如图 16 所示。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/3804b820a7bb4f9e8f66e5d996cd818b_image.png\\" alt=\\"image.png\\" /></p>\n<p>请确保将<strong>以上加粗斜体示例值</strong>替换为与您的具体 VPC 和复制实例关联的值。</p>\\n<p>终端节点连接测试成功后,选择图 17 中的 <strong>CREATE ENDPOINT</strong>(创建终端节点)按钮。</p>\\n<p><strong>步骤 7:创建 AWS DMS 迁移任务</strong></p>\\n<p>登录到 Amazon 管理控制台后,导航到 <strong>Database Migration Task</strong>(数据库迁移任务)并选择 <strong>CREATE TASK</strong>(创建任务)以创建以下任务,如图 18 所示。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/23e91d0530ef43f493ac41c2f44896e4_image.png\\" alt=\\"image.png\\" /></p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/24139bf1f8f142ee9dd5263a54139e53_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 18.创建 Database Migration Service</p>\n<p>通过更新 <strong>Table Mappings</strong>(表映射)部分来完成 Database Migration Service 配置,如图 19 所示。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/01a3018e688b46239728f24f43f22c3b_image.png\\" alt=\\"image.png\\" /></p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/35db5215c7164202a6efcb89d9f4b9a9_image.png\\" alt=\\"image.png\\" /></p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/28695c7208484c658bb3216be29fcb7b_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 19.在 Amazon Database Migration Service 中创建源/目标表映射</p>\n<p>选择 <strong>CREATE TASK</strong>(创建任务)。</p>\\n<p>创建任务后,Azure SQL 数据库的迁移将自动开始,控制台中会显示迁移进度,如图 20 所示。选择 <strong>Identifier</strong>(标识符)并选择 <strong>Table statistics</strong>(表统计信息)选项块以查看各个表的迁移统计信息,如图 21 所示。</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/83b01a52f9d74684997531c12ba83942_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 20.数据迁移状态</p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/1bc9eb6f5dfd449489e959d26edfab59_image.png\\" alt=\\"image.png\\" /></p>\n<p>图 21.表迁移统计信息</p>\n<p>此时,属于指定架构的所有表及其数据都已从 Azure SQL 数据库传输到 Amazon Aurora MySQL 兼容数据库中。您可以使用自己喜欢的 MySQL 客户端(例如 <a href=\\"https://dev.mysql.com/downloads/workbench/\\" target=\\"_blank\\">MySQL Workbench</a>)验证是否传输了所有数据。</p>\\n<h3><a id=\\"_226\\"></a><strong>结论</strong></h3>\\n<p>在这篇博文中,我们演示了如何使用 Amazon Schema Conversion Tool 和 Amazon Data Migration Service,将数据库架构和数据从 AzureSQL 迁移到 Amazon Aurora MySQL 兼容数据库。试试吧!</p>\n<h3><a id=\\"_230\\"></a><strong>本篇作者</strong></h3>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/352886522378438aa0f78b5bd2705c9e_image.png\\" alt=\\"image.png\\" /></p>\n<p><strong>Ravin Mathoora</strong></p>\\n<p>Ravin Mathoora 是 Amazon 的解决方案架构师。他与客户合作,以可持续性为指导设计原则,迁移工作负载并实现现代化改造。</p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/0078caa09f4e41d189b6658e939945fc_image.png\\" alt=\\"image.png\\" /></p>\n<p><strong>Mark Brealey</strong></p>\\n<p>Mark Brealey 是一名迁移解决方案高级架构师,为欧洲、中东和非洲区域的 Amazon 合作伙伴提供帮助。他与 Amazon 客户合作,在云上设计可扩展、安全、高性能且可靠的架构。</p>\n"}
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭