

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

# Oracle 数据库迁移策略
<a name="strategies"></a>

总体而言，将 Oracle 数据库从本地迁移到本地有两种选择 AWS 云：要么继续使用 Oracle（*同构迁移*），要么移出 Oracle（*异构迁移*）。在同构迁移中，您无需更改数据库引擎（也就是说，您的目标数据库也是 Oracle 数据库）。在异构迁移中，您可以切换到开源数据库引擎，例如MySQL、PostgreSQL或MariaDB，或者切换 AWS 到云原生数据库，例如亚马逊 Aurora、Amazon DynamoDB 或亚马逊。 RedShift 

将 Oracle 数据库迁移到的常见策略有三种 AWS：重新托管、平台重构和重新架构（重构）。这些是[应用程序迁移策略的 7 R 的一部分](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/planning-phase.html)，将在下表中进行介绍。


|  |  |  |  | 
| --- |--- |--- |--- |
| **Strategy** | **类型** | **何时选择** | **示例** | 
| **重新托管** | 同构 | 无论是否更改操作系统、数据库软件或配置，您都希望按原样迁移 Oracle 数据库。 | 从 Oracle 数据库到亚马逊 EC2 | 
| **更换平台** | 同构 | 您希望通过使用 database-as-a-service (DBaaS) 产品来减少管理数据库实例所花费的时间。 | Oracle Database 到 Amazon RDS for Oracle | 
| **重新架构（重构）** | 异构 | 您想要重新构建、重写和重新架构数据库与应用程序，以利用开源和云原生数据库功能。 | Oracle 数据库到 Amazon Aurora PostgreSQL、MySQL 或 MariaDB | 

## 选择正确的迁移策略
<a name="choose-strategy"></a>

选择正确的策略取决于您的业务需求、资源限制、迁移时间表和成本考虑因素。下图显示了迁移所涉及的工作量和复杂性，包括六种策略。 

 ![\[Comparison of Oracle Database migration strategies\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/migration-oracle-database/images/migration-strategy-comparison.png) 

重构您的 Oracle 数据库并迁移到开源或 AWS 云原生数据库，例如兼容 Amazon Aurora PostgreSQL 的版本或兼容 Amazon Aurora MySQL 的版本，可以帮助您实现数据库的现代化和优化。通过迁移到开源数据库，您可以避免昂贵的许可费用（成本更低）、供应商锁定期和审计，并且您不必为新功能支付额外费用。但是，根据您工作负载的复杂性，重构您的 Oracle 数据库可能是一项复杂、耗时且大量占用资源的工作。 

为了降低复杂性，与其在单一步骤中迁移您的数据库，您可以考虑分阶段方法。在第一阶段，您可以专注于核心数据库功能。在下一阶段，您可以将其他 AWS 服务集成到您的云环境中，以降低成本并优化性能、生产力和合规性。例如，如果您的目标是用兼容 Aurora PostgreSQL 的本地数据库替换您的本地 Oracle 数据库，则可以考虑在亚马逊上重新托管数据库， EC2 或者在第一阶段在 Amazon RDS for Oracle 上重新构建数据库，然后在后续阶段重构为兼容 Aurora PostgreSQL。这种方法有助于降低迁移阶段期间的成本、资源和风险，并侧重在第二阶段进行优化和现代化。

## 在线和离线迁移
<a name="online-offline"></a>

根据迁移时间表和允许的停机时间，您可以使用两种方法将 Oracle 数据库从本地环境迁移到 AWS 云中：在线迁移或离线迁移。
+ **离线迁移：**当您的应用程序可以承受计划内停机时间时，使用此方法。在离线迁移中，源数据库在迁移期间处于离线状态。当源数据库处于脱机状态时，它将在上迁移到目标数据库 AWS。迁移完成后，执行校验检查和验证检查，以确保与源数据库的数据一致性。当数据库通过所有验证检查后，您可以 AWS 通过将应用程序连接到上的目标数据库来执行切换。 AWS
+ **在线迁移：**当您的应用程序要求几乎为零或最小的停机时间时，使用此方法。在线迁移中，源数据库分多个步骤迁移到 AWS。在初始步骤中，源数据库中的数据将在源数据库仍在运行时复制到目标数据库。在后续步骤中，来自源数据库的所有变更都传播到目标数据库。当源数据库和目标数据库处于同步时，它们已准备好进行割接。在直接转换期间，应用程序会将其与目标数据库的连接切换为开启 AWS，不留下与源数据库的连接。您可以使用 AWS Database Migration Service (AWS DMS)、Oracle GoldenGate SharePlex、Quest 或提供的工具 [AWS Marketplace](https://aws.amazon.com/marketplace/)（例如 Attunity）来同步源数据库和目标数据库。