

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

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

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

迁移出 Oracle 的其他原因包括供应商锁定期、许可审核、昂贵的许可费和成本。Oracle 的标价基于每核心模型制定，并且分区和高可用性等功能需要额外付费。出于这个原因，许多组织在迁移到时选择将其甲骨文数据库迁移到开源数据库（例如 PostgreSQL、MySQL 或 MariaDB AWS ）或云原生数据库（例如亚马逊 Aurora 或 Amazon DynamoDB）。 AWS

您还可以将 Oracle 数据仓库数据库迁移到 Amazon Redshift，这是一个快速、完全托管的云数据仓库。Amazon Redshift 已与您的数据湖集成，其性能比任何其他数据仓库快三倍，并且成本比任何其他云数据仓库低 75%。有关更多信息，请参阅网站上的[从 Oracle 迁移到 Amazon Redshift](https://aws.amazon.com/getting-started/projects/migrate-oracle-to-amazon-redshift/)。 AWS 

要迁移到开源或 AWS原生数据库，请根据您拥有的数据类型、访问模式、可扩展性、应用程序实用性和复杂性选择正确的数据库。例如，近年来，PostgreSQL 数据库因其强大的功能和与商业数据库的高度兼容性而备受欢迎，成为重构 Oracle 数据库的用户最常见的迁移目标。但是，从 Oracle 迁移到 PostgreSQL 以及其他开源数据库通常既困难又耗时，并且需要仔细评估、规划和测试。

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

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

![\[使用 AWS SCT 和进行异构数据库迁移 AWS DMS\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/migration-oracle-database/images/oracle-migration-with-sct-and-dms.png)


AWS DMS 在迁移期间自动处理所有必需的数据类型转换。源数据库可以位于您自己的外部场所 AWS，也可以是在 EC2 实例上运行的数据库，也可以是 Amazon RDS 数据库（参见 AWS DMS 文档中的[数据迁移来源](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html)）。目标可以是 Amazon EC2、Amazon RDS 或 Amazon Aurora 中的数据库。

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

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


|  |  |  | 
| --- |--- |--- |
| **迁移工具** | **目标数据库支持** | **用于** | 
| [AWS SCT](#aws-sct) | Amazon RDS for MySQLAmazon RDS for PostgreSQLAmazon Aurora MySQLAmazon Aurora PostgreSQL | 架构转换 | 
| [AWS DMS](#heterogeneous-tools-dms) | Amazon RDS for MySQLAmazon RDS for PostgreSQLAmazon Aurora MySQLAmazon 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 通过自动将源数据库架构和大多数数据库代码对象（包括视图、存储过程和函数）转换为与目标数据库兼容的格式，使异构数据库迁移变得可预测。任何无法自动转换的对象都会被明确标记为手动转换。 AWS SCT 还可以扫描应用程序源代码中的嵌入式 SQL 语句，并将其作为数据库架构转换项目的一部分进行转换。 

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

[AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/) 将您的数据快速安全地迁移到。 AWS迁移期间，源数据库保持完全可运行，从而最大限度地减少了应用程序停机时间。 AWS DMS 支持同构迁移，例如 Oracle 到 Oracle，以及不同数据库平台之间的异构迁移，例如 Oracle 到开源数据库或云原生数据库。 AWS AWS DMS 管理迁移过程的复杂性，包括自动将源数据库中发生的数据更改复制到目标数据库。完成数据库迁移后，目标数据库会保持与源数据库的同步，您可以在方便时切换到目标数据库。