

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

# SQL Server 的异构数据库迁移
<a name="heterogeneous-migration"></a>

由于开源数据库和云计算平台的创新和改进 AWS，许多组织正在从 SQL Server 等专有（在线事务处理或 OLTP）数据库引擎转向开源引擎。对于任何组织来说，SQL Server 数据库都是任务关键型系统，但与特定供应商锁定则将面临很大风险，并且成本高昂。低运营成本和无许可费是考虑将底层数据库技术转换为开源或 AWS 云原生数据库的有力理由。

迁移出 SQL Server 的其他原因包括供应商锁定期、许可审核、昂贵的许可和成本。因此，许多组织在迁移到 AWS时选择将其 SQL Server 数据库迁移到开源数据库（例如 PostgreSQL、MySQL 或 MariaDB）或 AWS 云原生数据库（例如 Amazon Aurora 或 Amazon DynamoDB）。

您还可以将 SQL Server 数据仓库数据库迁移到 Amazon Redshift，这是一个快速、完全托管的云数据仓库。Amazon Redshift 已与您的数据湖集成，其性能比任何其他数据仓库快三倍，并且成本比任何其他云数据仓库低 75%。有关更多信息，请参阅《 AWS 规范性指南》网站上[使用的 AWS DMS将本地 Microsoft SQL Server 数据库迁移到 Amazon Redsh](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms.html) ift 的模式。

要迁移到开源或 AWS 云原生数据库，请根据您拥有的数据类型、访问模式、可扩展性、应用程序实用性和复杂性选择合适的数据库。从 SQL Server 迁移到 PostgreSQL 以及其他开源数据库通常既困难又耗时，并且需要仔细评估、规划和测试。

借助 AWS Database Migration Service (AWS DMS) 和 AWS Schema Conversion Tool (AWS SCT) 之类的服务，此过程变得更加容易，这些服务可帮助您在最短的停机时间内将商业数据库迁移到开源数据库。 AWS 

在异构数据库迁移中，源数据库和目标数据库引擎是不同的，例如从 SQL Server 迁移到 Aurora，或从 SQL Server 迁移到 MariaDB。源数据库和目标数据库中的架构结构、数据类型和数据库代码可能大不相同，因此在数据迁移开始之前，必须对架构和代码进行转换。因此，异构迁移包括两个步骤：
+ 步骤 1：转换源架构和代码，使其与目标数据库相匹配。您可以使用 AWS SCT 进行此转换。
+ 步骤 2：将数据从源数据库迁移到目标数据库。您可以 AWS DMS 用于此过程。

 ![Heterogeneous database migration with AWS SCT and AWS DMS](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/migration-sql-server/images/migration-tools.png) 

AWS DMS 在迁移期间自动处理主要的数据类型转换。源数据库可以位于您自己的外部场所 AWS，也可以是在 EC2 实例上运行的数据库，也可以是 Amazon RDS 数据库（参见 AWS DMS 文档中的[数据迁移源](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html)）。目标可以是 Amazon EC2、Amazon RDS 或 Aurora 中的数据库。有关使用 MySQL 作为目标数据库的信息，请参阅数据库博客上的 “将 [SQL Server 数据库迁移到兼容 MySQL 的数据库引擎](https://aws.amazon.com/blogs/database/migrating-a-sql-server-database-to-a-mysql-compatible-database-engine/)” AWS 。