

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

# 异构数据库迁移工具
<a name="heterogeneous-migration-tools"></a>

下表列出了可用于从 SQL Server 迁移到其他数据库引擎的各类工具。


****  

| 迁移工具 | 目标数据库支持 | 用于 | 
| --- | --- | --- | 
| [AWS SCT](#aws-sct) |  Amazon RDS for MySQL Amazon RDS for PostgreSQL Amazon Aurora MySQL Amazon Aurora PostgreSQL  | 架构转换 | 
| [AWS DMS](#aws-dms) |  Amazon RDS for MySQL Amazon RDS for PostgreSQL Amazon Aurora MySQL Amazon Aurora PostgreSQL  | 数据迁移 | 
| [Babelfish](#babelfish) |  Amazon Aurora PostgreSQL  | 数据访问和迁移 | 

下面的小节提供了关于每个工具的更多信息。

## AWS SCT
<a name="aws-sct"></a>

[AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 将您现有的商用数据库架构转换为开源引擎或 AWS 云原生数据库。 AWS SCT 通过自动将源数据库架构和大多数数据库代码对象（包括视图、存储过程和函数）转换为与目标数据库兼容的格式，使异构数据库迁移变得可预测。

当您将数据库架构从一个引擎转换为另一个引擎时，还需要更新应用程序中的 SQL 代码，以便与新的数据库引擎而不是旧的数据库引擎进行交互。 AWS SCT 还可以转换 C\$1\$1、C\$1、Java 或其他应用程序代码中的 SQL 代码。任何无法自动转换的对象都会被明确标记为手动转换。 AWS SCT 还可以扫描应用程序源代码中的嵌入式 SQL 语句，并将其作为数据库架构转换项目的一部分进行转换。有关更多信息，请参阅 AWS 文档 AWS SCT中的[使用 Microsoft SQL Server 作为来源](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServer.html)。

## AWS DMS
<a name="aws-dms"></a>

[AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/) 将您的数据快速安全地迁移到。 AWS迁移期间，源数据库保持完全可运行，从而最大限度地减少了应用程序停机时间。 AWS DMS 支持同构迁移，例如将数据从一个 SQL Server 数据库迁移到另一个 SQL Server 数据库。它还支持不同数据库平台之间的异构迁移，例如将您的 SQL Server 数据库迁移到开源数据库或 AWS 云原生数据库。 AWS DMS 管理迁移过程的复杂性，包括自动将源数据库中发生的数据更改复制到目标数据库。完成数据库迁移后，目标数据库会保持与源数据库的同步，您可以在方便时切换到目标数据库。有关更多信息，请参阅 AWS 文档 AWS DMS中的[使用 Microsoft SQL Server 数据库作为来源](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html)。

## Babelfish
<a name="babelfish"></a>

Babelfish 是 Amazon Aurora 的内置功能。适用于 Aurora PostgreSQL 的 Babelfish 使您的 Aurora PostgreSQL 兼容版数据库能够理解来自为 Microsoft SQL Server 编写的应用程序的命令。修改使用 SQL Server 专有 SQL 方言 Transact-SQL (T-SQL) 编写的 SQL Server 数据库代码的 SQL Server 应用程序既费力又耗时。[适用于 Aurora PostgreSQL 的 Babelfish](https://aws.amazon.com/rds/aurora/babelfish/) 使这一过程变得更加简单和容易。使用 Babelfish，您无需对应用程序代码进行更改。您可以使用 Babelfish for Aurora PostgreSQL 将 SQL Server 数据库迁移到 Amazon Aurora PostgreSQL 数据库集群。

借助 Babelfish，Aurora PostgreSQL 可以理解 T-SQL 并支持相同的通信协议，因此您无需切换数据库驱动程序或重写应用程序查询。您最初为 SQL Server 编写的应用程序现在只需进行少量代码更改即可与 Aurora 协同工作。这减少了修改在 SQL Server 或更新版本上运行的应用程序并将其迁移到 Aurora 所需的工作量，从而实现更快、风险更低且更具成本效益的迁移。

如果你要从旧版 SQL Server 数据库迁移，你可以使用 Babelfish 并行运行 SQL Server 代码和你使用原生 PostgreSQL 构建的新功能。 APIsBabelfish 使 Aurora PostgreSQL 能够使用常用的 SQL Server 工具、命令和驱动程序。

Babelfish 还可以使用本机 PostgreSQL 连接访问数据。原定设置情况下，Babelfish 支持的两种 SQL 方言都可以通过以下端口处的本机线路协议获得：
+ 对于 SQL Server 方言 (T-SQL)，客户端连接到端口 1433。
+ 对于 PostgreSQL 方言 (PL/pgSQL)，客户端连接到端口 5432。

Babelfish 通过提供来自 SQL Server 或 PostgreSQL 端口的连接，使您的旧版 SQL Server 应用程序能够与 Aurora 进行通信，而无需进行大量代码重写。下图阐明了此架构。

![\[Babelfish 和 Aurora 之间的通信\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/migration-sql-server/images/babelfish.png)


您可以通过 Amazon RDS 管理控制台在 Aurora 集群上启用 Babelfish。有关说明，请参阅 Amazon RDS 文档中的[创建适用于 Aurora PostgreSQL 数据库集群的 Babelfish](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/babelfish-create.html)。

有关迁移的更多信息，请参阅 Aurora 文档中的[将 SQL Server 数据库迁移到适用于 Aurora PostgreSQL 的 Babelfish](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/babelfish-migration.html)。

有关更多信息，请参阅以下资源：
+ [开始使用适用于 Aurora 的 Babelfish PostgreSQL（数据库博客](https://aws.amazon.com/blogs/database/get-started-with-babelfish-for-aurora-postgresql/)）AWS 
+ [使用 Babelfish 从 SQL Server 迁移到亚马逊 Aurora](https://aws.amazon.com/blogs/database/migrate-from-sql-server-to-amazon-aurora-using-babelfish/)（AWS 数据库博客）
+ 使用 SSIS [和 Babelfish 从 SQL Server 迁移到 Aurora PostgreSQL（](https://aws.amazon.com/blogs/database/migrate-from-sql-server-to-aurora-postgresql-using-ssis-and-babelfish/)数据库博客）AWS 
+ 将 [SSIS 包从 SQL Server 修改为 Aurora PostgreSQL 的 Babelfish（数据库](https://aws.amazon.com/blogs/database/modify-ssis-packages-from-sql-server-to-babelfish-for-aurora-postgresql/)博客）AWS 
+ [针对适用于 Aurora PostgreSQL 的 Babelfish 运行 SQL Server Reporting Services 报告](https://aws.amazon.com/blogs/database/run-sql-server-reporting-services-reports-against-babelfish-for-aurora-postgresql/)（AWS 数据库博客）
+ [使用 AWS SCT 评估报告为 Babelfish 迁移做好准备](https://aws.amazon.com/blogs/database/prepare-for-babelfish-migration-with-the-aws-sct-assessment-report/)（AWS 数据库博客）