

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

# 使用 Oracle 从 Oracle 数据库迁移到 Amazon RDS for PostgreSQL GoldenGate
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate"></a>

*Dhairya Jindani、Sindhusha Paturu 和 Rajeshkumar Sabankar，Amazon Web Services*

## Summary
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-summary"></a>

此模式展示了如何使用甲骨文云基础设施 (OCI) 将甲骨文数据库迁移到适用于 PostgreSQL 的亚马逊关系数据库服务 (Amazon RDS)。 GoldenGate

通过使用 Oracle GoldenGate，您可以在源数据库和一个或多个目标数据库之间复制数据，最大限度地减少停机时间。

**注意**  
源 Oracle 数据库可以位于本地，也可以位于亚马逊弹性计算云 (Amazon EC2) 实例上。使用本地复制工具时，您可使用类似的过程。

## 先决条件和限制
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-prereqs"></a>

**先决条件**
+ 一个有效的 Amazon Web Services account
+ 甲骨文 GoldenGate 许可证
+ 连接至 PostgreSQL 数据库的 Java Database Connectivity (JDBC) 驱动程序
+ 在目标 Amazon RDS for PostgreSQL 数据库上使用 [AWS Schema Conversion Tool (AWS SCT)](https://aws.amazon.com/dms/schema-conversion-tool/) 创建的架构和表

**限制**
+ Oracle GoldenGate 只能复制现有表数据（初始加载）和正在进行的更改（更改数据捕获）

**产品版本**
+ Oracle Database Enterprise Edition 10g 或更高版本 
+ 适用于 Oracle GoldenGate 或更高版本的 Oracle 12.2.0.1.1
+ GoldenGate适用于 PostgreSQL 或更高版本的 Oracle 12.2.0.1.1

## 架构
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-architecture"></a>

下图显示了使用 Oracle 将 Oracle 数据库迁移到 Amazon RDS for PostgreSQL 的示例工作流程： GoldenGate

![将本地 Oracle 数据库迁移至 Amazon RDS for PostgreSQL 的流程](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/384f0eaf-8582-474a-a7f4-ec1048a4feb3/images/de541887-0d5f-4a9a-b136-ce2599355cb8.png)


下图显示了如下工作流：

1. Oracle 数据 GoldenGate [提取进程](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GUID-6419F3A9-71EC-4D14-9C41-3BAA1E3CA19C)对源数据库运行以提取数据。

1. Oracle GoldenGate [Replicat 流程](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GUID-5EF0326C-9058-4C40-8925-98A223388C95)将提取的数据传送到目标 Amazon RDS for PostgreSQL 数据库。

## 工具
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-tools"></a>
+ [Oracle GoldenGate](https://www.oracle.com/integration/goldengate/#:~:text=OCI%20GoldenGate%20is%20a%20real,in%20the%20Oracle%20Cloud%20Infrastructure.) 可帮助您在 Oracle 云基础设施中设计、运行、编排和监控数据复制和流数据处理解决方案。
+ [Amazon Relational Database Service（Amazon RDS）for PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) 可帮助您在 Amazon Web Services Cloud 中设置、操作和扩展 PostgreSQL 关系数据库。

## 操作说明
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-epics"></a>

### 下载并安装 Oracle GoldenGate
<a name="download-and-install-oracle-goldengate"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 下载甲骨文 GoldenGate。 | 下载以下版本的 Oracle GoldenGate：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.html)<br />要下载该软件，请参阅 [Oracle 网站上的 Oracle GoldenGate 下载](https://www.oracle.com/middleware/technologies/goldengate-downloads.html)。 | 数据库管理员 | 
| 在源 Oracle GoldenGate 数据库服务器上安装 Oracle for Oracle。 | 有关说明，请参阅 [Oracle GoldenGate 文档](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm)。 | 数据库管理员 | 
| 在亚马逊实例上安装 Oracle GoldenGate for PostgreSQL 数据库。 EC2  | 有关说明，请参阅 [Oracle GoldenGate 文档](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm)。 | 数据库管理员 | 

### 在源数据库和目标数据库 GoldenGate 上配置 Oracle
<a name="configure-oracle-goldengate-on-the-source-and-target-databases"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 在源数据库上设置 GoldenGate Oracle for Oracle 数据库。 | 有关说明，请参阅 [Oracle GoldenGate 文档](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm)。<br />务必配置以下：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.html) | 数据库管理员 | 
| 在目标数据库上设置 Oracle GoldenGate for PostgreSQL。 | 有关说明，请参阅 Oracle 网站上的[第六部分 “使用 Oracle GoldenGate for](https://docs.oracle.com/en/middleware/goldengate/core/19.1/gghdb/using-oracle-goldengate-postgresql.html) PostgreSQL”。<br />务必配置以下：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.html) | 数据库管理员 | 

### 配置数据捕获
<a name="configure-the-data-capture"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 在源数据库设置提取进程。 | 在源 Oracle 数据库，创建用于提取数据的提取文件。<br />有关说明，请参阅 Oracle 文档中的 [ADD EXTRACT](https://docs.oracle.com/goldengate/1212/gg-winux/GWURF/ggsci_commands006.htm#GWURF122)。提取文件包括创建提取参数文件和跟踪文件目录。 | 数据库管理员 | 
| 设置一个数据泵，以将跟踪文件从源传输到目标数据库。 | 通过按照 Oracle 网站上*数据库实用程序*中的 [PARFILE](https://docs.oracle.com/database/121/SUTIL/GUID-7A045C82-5993-44EB-AFAD-B7D39C34BCCD.htm#SUTIL859) 中的说明，创建 EXTRACT 参数文件和跟踪文件目录。<br />有关更多信息，请参阅[什么是跟踪？](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GUID-88674F53-1E07-4C00-9868-598F82D7113C) 在 *Oracle GoldenGate 网站上的 Fusion 中间件了解*甲骨文中。 | 数据库管理员 | 
| 在 Amazon EC2 实例上设置复制。 | 创建复制参数文件和跟踪文件目录。<br />有关创建复制参数文件的更多信息，请参阅 Oracle 数据库文档中的[第3.5 节验证参数文件](https://docs.oracle.com/en/middleware/goldengate/core/21.3/admin/using-oracle-goldengate-parameter-files.html#GUID-1E32A9AD-25DB-4243-93CD-E643E7116215)。<br />有关创建跟踪文件目录的更多信息，请参阅 Oracle Cloud 文档中的[创建跟踪](https://docs.oracle.com/en/cloud/paas/goldengate-cloud/gwuad/creating-trail.html)。确保在目标的 GLOBALS 文件中添加检查点表条目。<br />有关更多信息，请参阅[什么是副本](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GGCON-GUID-5EF0326C-9058-4C40-8925-98A223388C95)？ 在 *Oracle GoldenGate 网站上的 Fusion 中间件了解*甲骨文中。 | 数据库管理员 | 

### 配置数据复制
<a name="configure-the-data-replication"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 在源数据库中，创建一个参数文件，以提取初始加载的数据。 | 按照 Oracle Cloud 文档中的[在 GGSCI 中创建参数文件](https://docs.oracle.com/en/cloud/paas/goldengate-cloud/gwuad/using-oracle-goldengate-parameter-files.html#GUID-5C49C522-8B28-4E4B-908D-66A33717CE6C)说明进行操作。确保管理器已在目标系统上运行。 | 数据库管理员 | 
| 在目标数据库中，创建一个参数文件，以复制初始加载的数据。 | 按照 Oracle Cloud 文档中的[在 GGSCI 中创建参数文件](https://docs.oracle.com/en/cloud/paas/goldengate-cloud/gwuad/using-oracle-goldengate-parameter-files.html#GUID-5C49C522-8B28-4E4B-908D-66A33717CE6C)说明进行操作。确保添加并启动复制进程。 | 数据库管理员 | 

### 割接到 Amazon RDS for PostgreSQL 数据库
<a name="cut-over-to-the-amazon-rds-for-postgresql-database"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 停止复制进程，并确保源和目标数据库是同步的。 | 比较源数据库和目标数据库之间的行计数，以确保数据复制成功。 | 数据库管理员 | 
| 配置数据定义语言 (DDL) 支持。 | 运行 DDL 脚本以在 PostgreSQL 上创建触发器、序列、同义词以及引用键。可以使用任何标准 SQL 客户端应用程序连接到数据库集群中的数据库。例如，您可使用 [pgadmin](https://www.pgadmin.org/) 连接至您的数据库实例。 | 数据库管理员 | 

## 相关的资源
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-resources"></a>
+ [Amazon RDS for PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)（*Amazon RDS 用户指南*）
+ [亚马逊 EC2 文档](https://docs.aws.amazon.com/ec2/)
+ [Oracle GoldenGate 支持的处理方法和数据库](https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm#GWUAD112)（Oracle 文档）