

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

# 将本地 Oracle 数据库迁移到 Amazon RDS for Oracle
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle"></a>

*Baji Shaik 和 Pavan Pusuluri，Amazon Web Services*

## Summary
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-summary"></a>

此模式描述将本地 Oracle 数据库迁移到 Amazon Relational Database Service（Amazon RDS）for Oracle 的步骤。作为迁移过程的一部分，您需要制定迁移计划，并根据源数据库考虑有关目标数据库基础设施的重要因素。您可以根据业务需求和用例从两个迁移选项中选择一个：
+ AWS Database Migration Service（AWS DMS）– 您可以使用 AWS DMS 快速安全地将数据库迁移到 Amazon Web Services Cloud。源数据库可在迁移过程中保持全面运行，从而最大程度地为依赖该数据库的应用程序缩短停机时间。您可以使用 AWS DMS 创建一个任务，在您完成初始全负载迁移后，通过名为[更改数据捕获（CDC）](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html)的过程捕获正在进行的更改，从而缩短迁移时间。
+ Oracle 原生工具 — 您可以使用原生 Oracle 工具迁移数据库，例如 Oracle 和 CDC 版 Or [acle GoldenGate](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/introduction-oracle-goldengate.htm#GGCON-GUID-EF513E68-4237-4CB3-98B3-2E203A68CBD4) [的数据泵导](https://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_import.htm#SUTIL300)[出](https://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_export.htm#SUTIL200)和数据泵导入。您也可以使用原始[导出实用程序](https://docs.oracle.com/cd/E11882_01/server.112/e22490/original_export.htm#SUTIL3634)和原始[导入实用程序](https://docs.oracle.com/cd/E11882_01/server.112/e22490/original_import.htm#SUTIL001)等 Oracle 本机工具来缩短全负载时间。

## 先决条件和限制
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-prereqs"></a>

**先决条件**
+ 一个有效的 Amazon Web Services account
+ 本地 Oracle 数据库
+ Amazon RDS Oracle 数据库（DB）实例

**限制**
+ 数据库大小限制：64 TB

**产品版本**
+ Oracle 版本 11g（版本 11.2.0.3.v1 及更高版本）以及最高 12.2 和 18c。有关当前支持的版本和版本列表，请参阅 AWS 文档中的 [Amazon RDS for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html)。有关 AWS DMS 支持的 Oracle 版本，请参阅 AWS DMS 文档中的[使用 Oracle 数据库作为 AWS DMS 的源数据库](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)。

## 架构
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-architecture"></a>

**源技术堆栈**
+ 本地 Oracle 数据库

**目标技术堆栈**
+ Amazon RDS for Oracle

**源架构和目标架构**

下图显示了如何使用 AWS DMS 将本地 Oracle 数据库迁移到 Amazon RDS for Oracle。

![\[使用 AWS DMS 将 Oracle 数据库迁移到 Amazon RDS for Oracle 的工作流。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/25912997-0ac0-4303-9ce5-0621a7e12406/images/20f94a5c-1095-4182-b964-c379414c9a36.png)


下图显示了如下工作流：

1. 创建或使用现有数据库用户，向该用户授予所需 [AWS DMS 权限](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed)，打开 [ARCHIVELOG 模式](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed.Configuration.ArchiveLogMode)，然后设置[补充日志](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed.Configuration.SupplementalLogging)。

1. 在本地和 AWS 网络之间配置互联网网关。

1. 为 AWS DMS 配置[源端点和目标端点](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html)。

1. 配置 [AWS DMS 复制任务](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html)，将数据从源数据库迁移到目标数据库。

1. 在目标数据库上完成迁移后活动。

下图显示了如何使用 Oracle 本机工具将本地 Oracle 数据库迁移到 Amazon RDS for Oracle。

![\[使用 Oracle 工具将 Oracle 数据库迁移到 Amazon RDS for Oracle 的工作流。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/25912997-0ac0-4303-9ce5-0621a7e12406/images/af8e0e1a-d4c8-4d99-9780-3e093ad9a257.png)


下图显示了如下工作流：

1. 使用 Oracle 导出（`exp`）和导入（`imp`）实用程序创建或使用现有数据库用户并授予备份 Oracle 数据库所需权限。

1. 在本地和 AWS 网络之间配置互联网网关。

1. 在[堡垒](https://www.oracle.com/security/cloud-security/bastion/)主机上配置 Oracle 客户端以获取备份数据库。

1. 将备份数据库上传到 Amazon Simple Storage Service（Amazon S3）存储桶。

1. 将数据库备份从 Amazon S3 恢复到 Amazon RDS for Oracle 数据库。

1. 为 CDC 配置 GoldenGate Oracle。

1. 在目标数据库上完成迁移后活动。

## 工具
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) 可帮助您将数据存储迁移到 Amazon Web Services Cloud，或者在云和本地设置的组合之间迁移。
+ 原生 Oracle 工具可帮助您执行同质迁移。您可以使用 [Oracle 数据泵](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm)在源数据库和目标数据库之间迁移数据。此模式使用 Oracle 数据泵执行从源数据库到目标数据库的完全加载。
+ [Oracle GoldenGate](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/introduction-oracle-goldengate.htm#GGCON-GUID-EF513E68-4237-4CB3-98B3-2E203A68CBD4) 可帮助您在两个或多个数据库之间执行逻辑复制。此模式 GoldenGate 用于在初始加载后使用 Oracle 数据泵复制增量更改。

## 操作说明
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-epics"></a>

### 计划迁移
<a name="plan-the-migration"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 创建项目文档并记录数据库详细信息。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | 数据库管理员 | 
| 识别存储要求。 | 确定并记录存储需求，包括：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html)对于[通用型（gp2）固态硬盘卷](https://aws.amazon.com/ebs/volume-types/)，每 1 GB 存储空间可获得三个 IOPS。通过计算源数据库的读取和写入 IOPS 总数来分配存储空间。 | 数据库管理员， SysAdmin | 
| 根据计算要求选择正确的实例类型。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | SysAdmin | 
| 识别网络访问安全要求。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | 数据库管理员， SysAdmin | 
| 确定应用程序迁移策略。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA、 SysAdmin、应用程序所有者 | 
| 识别迁移风险。 | 评测数据库并记录特定于迁移的风险和缓解措施。例如：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | 数据库管理员 | 

### 配置基础设施
<a name="configure-the-infrastructure"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 创建 VPC。 | 为目标数据库实例[创建新的 Amazon Virtual Private Cloud（Amazon VPC）](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/gsg_create_vpc.html)。 | SysAdmin | 
| 创建安全组。 | 在新 VPC 中[创建安全组](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#creating-security-group)以允许数据库实例的入站连接。 | SysAdmin | 
| 创建 Amazon RDS for Oracle 数据库实例。 | 使用新的 VPC 和安全组[创建目标数据库实例](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html)，然后启动该实例。 | SysAdmin | 

### （选项 1）- 使用原生 Oracle 或第三方工具迁移数据
<a name="option-1---use-native-oracle-or-third-party-tools-to-migrate-data"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 准备源数据库。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | 数据库管理员， SysAdmin | 
| 准备目标数据库。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | 数据库管理员， SysAdmin | 

### （选项 2）- 使用 AWS DMS 迁移数据
<a name="option-2---use-aws-dms-to-migrate-data"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 准备数据。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | 数据库管理员 | 
| 迁移数据。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | 数据库管理员 | 

### 割接至目标数据库
<a name="cut-over-to-the-target-database"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 将应用程序客户端切换至新基础设施。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA、 SysAdmin、应用程序所有者 | 
| 实施您的回滚计划。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | 数据库管理员、应用程序所有者 | 

### 关闭迁移项目
<a name="close-out-the-migration-project"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 清理资源。 | 关闭或移除 AWS 临时资源，例如 AWS DMS 复制实例和 S3 存储桶。 | 数据库管理员， SysAdmin | 
| 查看项目文档。 | 查看迁移计划文档和目标，然后确认您已完成所有必需的迁移步骤。 | DBA、 SysAdmin、应用程序所有者 | 
| 收集指标。 | 记录关键迁移指标，包括完成迁移所需时间、手动任务与基于工具的任务的百分比、成本节省以及其他相关指标。 | DBA、 SysAdmin、应用程序所有者 | 
| 关闭项目。 | 结束迁移项目并收集有关迁移工作的反馈。 | DBA、 SysAdmin、应用程序所有者 | 

## 相关资源
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-resources"></a>

**参考**
+ [将 Oracle 数据库迁移至 AWS 云](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)（AWS 规范指引）
+ [AWS Database Migration Service（AWS DMS）](https://aws.amazon.com/dms/)（AWS DMS 文档）
+ [Amazon RDS 定价](https://aws.amazon.com/rds/pricing/)（Amazon RDS 文档）

**教程和视频**
+ [AWS Database Migration Service 入门](https://aws.amazon.com/dms/getting-started/)（AWS DMS 文档）
+ [Amazon RDS 资源](https://aws.amazon.com/rds/getting-started/)（Amazon RDS 文档）
+ [AWS Database Migration Service (DMS) (YouTube)](https://www.youtube.com/watch?v=zb4GcjEdl8U)