

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 AWS DMS 和 AWS SCT 将 Microsoft SQL Server 数据库迁移到 Aurora MySQL
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct"></a>

*Mark Szalkiewicz 和 Pavan Pusuluri，Amazon Web Services*

## Summary
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-summary"></a>

此模式描述了如何将本地或亚马逊弹性计算云 (亚马逊 EC2) 实例上的微软 SQL Server 数据库迁移到亚马逊 Aurora MySQL。该模式使用 AWS Database Migration Service (AWS DMS) 和 AWS Schema Conversion Tool (AWS SCT) 进行数据迁移和架构转换。

## 先决条件和限制
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-prerequisites-and-limitations"></a>

**先决条件**
+ 一个有效的 Amazon Web Services account
+ 本地数据中心或 EC2 实例上的 Microsoft SQL Server 源数据库 
+ AWS SCT 连接器的 Java 数据库连接 (JDBC) 驱动程序，安装在本地计算机或安装了 AWS SCT 的 EC2 实例上 

 

**限制**
+ 数据库大小限制：64 TB

**产品版本**
+ Microsoft SQL Server 2008、2008 R2、2012、2014、2016 和 2017（Enterprise、Standard、Workgroup 和 Developer 版）。AWS DMS 不支持 Web 和 Express 版本。有关受支持版本的最新列表，请参阅[将 Microsoft SQL Server 数据库作为 AWS DMS 的源](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html)。建议使用最新版本的 AWS DMS，以获得最全面的版本和功能支持。有关 AWS SCT 支持的 Microsoft SQL Server 版本的信息，请参阅 [AWS SCT 文档](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)。
+ MySQL 版本 5.5、5.6 和 5.7。有关受支持版本的最新列表，请参阅[将 MySQL 兼容数据库作为 AWS DMS 的目标](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html)。

## 架构
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-architecture"></a>

**源技术堆栈**

下列情况之一： 
+ 本地 Microsoft SQL Server 数据库
+  EC2 实例上的微软 SQL Server 数据库

**目标技术堆栈**
+ Aurora MySQL

**数据迁移架构**
+ 从在 Amazon Web Services Cloud 中运行的 Microsoft SQL Server 数据库 

![](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/e2de4507-82a8-4bd6-b25b-1e830b197b9f/images/c675ada4-e92c-4ddb-b49f-69668f532504.png)

+ 从本地数据中心运行的 Microsoft SQL Server 数据库

![](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/e2de4507-82a8-4bd6-b25b-1e830b197b9f/images/b6ce0199-fc56-4bf2-a8cc-67de161e3cf0.png)


## 工具
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-tools"></a>
+ **AWS DMS** - [AWS Data Migration Service](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) (AWS DMS) 可帮助您将数据迁移到广泛使用的商业和开源数据库，包括 Oracle、SQL Server、MySQL 和 PostgreSQL。您可以使用 AWS DMS 将数据迁移到 Amazon Web Services Cloud、本地实例之间（通过 Amazon Web Services Cloud 设置）或云和本地设置的组合之间。
+ **AWS SCT** - [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) 通过自动将源数据库架构和大部分自定义代码转换为与目标数据库兼容的格式，使异构数据库迁移变得轻松。

## 操作说明
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-epics"></a>

### 准备迁移
<a name="prepare-for-the-migration"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 验证源数据库和目标数据库版本和引擎。 |  | 数据库管理员 | 
| 为源数据库和目标数据库创建出站安全组。 |  | SysAdmin | 
| 如果需要，为 AWS SCT 创建和配置 EC2 实例。 |  | 数据库管理员 | 
| 下载最新版本的 AWS SCT 和相关驱动程序。 |  | 数据库管理员 | 
| 在源数据库中添加和验证必备用户和授权。 |  | 数据库管理员 | 
| 为工作负载创建 AWS SCT 项目并连接到源数据库。 |  | 数据库管理员 | 
| 生成评测报告并评测可行性。 |  | 数据库管理员 | 

### 准备目标数据库
<a name="prepare-the-target-database"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 使用 Amazon Aurora 作为数据库引擎创建目标 Amazon RDS 数据库实例。 |  | 数据库管理员 | 
| 从源中提取用户、角色和授权的列表。 |  | 数据库管理员 | 
| 将现有数据库用户映射到新的数据库用户。 |  | 应用程序所有者 | 
| 在目标数据库中创建用户。 |  | 数据库管理员 | 
| 将上一步的角色应用至目标数据库。 |  | 数据库管理员 | 
| 查看源数据库中的数据库选项、参数、网络文件和数据库链接，然后评估它们对目标数据库的适用性。 |  | 数据库管理员 | 
| 将任何相关设置应用于目标。 |  | 数据库管理员 | 

### 传输对象
<a name="transfer-objects"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 为目标数据库配置 AWS SCT 连接。 |  | 数据库管理员 | 
| 使用 AWS SCT 转换架构。 | AWS SCT 会自动将源数据库架构和大多数自定义代码转换为与目标数据库兼容的格式。该工具无法自动转换的任何代码都会被清楚地标记出来，以便您可以自己转换。 | 数据库管理员 | 
| 查看生成的 SQL 报告并保存所有错误和警告。 |  | 数据库管理员 | 
| 将自动架构更改应用于目标或将其另存为 .sql 文件。 |  | 数据库管理员 | 
| 验证 AWS SCT 是否在目标创建了对象。 |  | 数据库管理员 | 
| 手动重写、拒绝或重新设计任何无法自动转换的项目。 |  | 数据库管理员 | 
| 应用生成的角色和用户授权并查看任何例外情况。 |  | 数据库管理员 | 

### 迁移数据
<a name="migrate-the-data"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 确定迁移方法。 |  | 数据库管理员 | 
| 从 AWS DMS 控制台创建复制实例。 | 有关使用 AWS DMS 的详细信息，请参阅“相关资源”部分中的链接。 | 数据库管理员 | 
| 创建源端点和目标端点。 |  | 数据库管理员 | 
| 创建复制任务。 |  | 数据库管理员 | 
| 启动复制任务并监控日志。 |  | 数据库管理员 | 

### 迁移应用程序
<a name="migrate-the-application"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 使用 AWS SCT 分析和转换应用程序代码中的 SQL 项。 | 当您将数据库架构从一个引擎转换到另一个引擎时，还需要更新应用程序中的 SQL 代码，以便与新数据库引擎 (而非旧引擎) 进行交互。您可以查看、分析、编辑和保存转换后的 SQL 代码。有关使用 AWS SCT 的详细信息，请参阅“相关资源”部分中的链接。 | 应用程序所有者 | 
| 在 AWS 上创建新应用程序服务器。 |  | 应用程序所有者 | 
| 将应用程序代码迁移至新服务器。 |  | 应用程序所有者 | 
| 为目标数据库和驱动程序配置应用程序服务器。 |  | 应用程序所有者 | 
| 修复应用程序中特定于源数据库引擎的任何代码。 |  | 应用程序所有者 | 
| 优化目标引擎的应用程序代码。 |  | 应用程序所有者 | 

### 割接
<a name="cut-over"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 将任何新用户、授权和代码更改应用于目标。 |  | 数据库管理员 | 
| 锁定应用程序以进行任何更改。 |  | 应用程序所有者 | 
| 验证所有更改是否都已传播到目标数据库。 |  | 数据库管理员 | 
| 将新的应用程序服务器指向目标数据库。 |  | 应用程序所有者 | 
| 重新检查所有内容。 |  | 应用程序所有者 | 
| 上线。 |  | 应用程序所有者 | 

### 关闭项目
<a name="close-the-project"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 关闭临时的 AWS 资源（AWS DMS 复制 EC2 实例和用于 AWS SCT 的实例）。 |  | 数据库管理员、应用程序所有者 | 
| 更新内部团队对于 AWS DMS 流程的反馈。 |  | 数据库管理员、应用程序所有者 | 
| 如有必要，请修改 AWS DMS 流程并改进模板。 |  | 数据库管理员、应用程序所有者 | 
| 审查和验证项目文档。 |  | 数据库管理员、应用程序所有者 | 
| 收集有关迁移时间、手动成本与工具成本节省百分比等指标。 |  | 数据库管理员、应用程序所有者 | 
| 关闭项目并提供任何反馈。 |  | 数据库管理员、应用程序所有者 | 

## 相关资源
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-related-resources"></a>

**参考**
+ [AWS DMS 用户指南](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [AWS SCT 用户指南](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)  
+ [Amazon Aurora 定价](https://aws.amazon.com/rds/aurora/pricing/) 

**教程和视频**
+ [AWS Database Migration Service 入门](https://aws.amazon.com/dms/getting-started/)
+ [AWS Schema Conversion Tool 入门](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Amazon RDS 资源](https://aws.amazon.com/rds/getting-started/)
+ [AWS DMS 演练 Step-by-Step](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) 