异构数据库迁移工具 - AWS 规范性指导

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

异构数据库迁移工具

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

迁移工具 目标数据库支持 用于
AWS SCT

Amazon RDS for MySQL

Amazon RDS for PostgreSQL

Amazon Aurora MySQL

Amazon Aurora PostgreSQL

架构转换
AWS DMS

Amazon RDS for MySQL

Amazon RDS for PostgreSQL

Amazon Aurora MySQL

Amazon Aurora PostgreSQL

数据迁移
Babelfish

Amazon Aurora PostgreSQL

数据访问和迁移

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

AWS SCT

AWS Schema Conversion Tool (AWS SCT) 可将您现有商业数据库架构转换为开源引擎或 AWS 云原生数据库。AWS SCT 通过自动将源数据库架构和大多数数据库代码对象(包括视图、存储过程和函数)转换为与目标数据库兼容的格式,使异构数据库迁移变得可预测。

当您将数据库架构从一个引擎转换到另一个引擎时,还需要更新应用程序中的 SQL 代码,以便与新数据库引擎 (而非旧引擎) 进行交互。AWS SCT 还可将 SQL 代码转换为 C++、C#、Java 或其他应用程序代码。任何无法自动转换的对象都会被清楚地标记为手动转换。AWS SCT 还可以扫描应用程序源代码中的嵌入式 SQL 语句,并将其作为数据库架构转换项目的一部分进行转换。有关详细信息,请参阅文档AWS 中的 使用 Microsoft SQL Server 作为 AWS SCT 的来源。

AWS DMS

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

Babelfish

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 使这一过程变得更加简单和容易。使用 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 API 生成的新功能并行运行。Babelfish 使 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 之间的通信

您可以通过 Amazon RDS 管理控制台在 Aurora 集群上启用 Babelfish。有关说明,请参阅 Amazon RDS 文档中的创建适用于 Aurora PostgreSQL 数据库集群的 Babelfish

有关迁移的更多信息,请参阅 Aurora 文档中的将 SQL Server 数据库迁移到适用于 Aurora PostgreSQL 的 Babelfish

有关更多信息,请参阅以下资源: