

# 使用 Oracle GoldenGate 的 EXTRACT 和 REPLICAT 实用程序
<a name="Appendix.OracleGoldenGate.ExtractReplicat"></a>

Oracle GoldenGate 实用程序 `EXTRACT` 和 `REPLICAT` 结合使用，以使用跟踪记录文件通过增量事务复制将源数据库和目标数据库保持同步。源数据库上发生的所有更改会由 `EXTRACT` 自动检测，进行格式设置，然后传输至 Oracle GoldenGate 本地或 Amazon EC2 实例枢纽上的跟踪文件。初始加载完成后，由 `REPLICAT` 实用程序从这些文件读取数据并复制到目标数据库。

## 运行 Oracle GoldenGate EXTRACT 实用程序
<a name="Appendix.OracleGoldenGate.Extract"></a>

`EXTRACT` 实用程序可对源数据库中的数据进行检索、转换并输出至跟踪文件。基本过程如下所示：

1. `EXTRACT` 将事务详细信息排队到内存或临时磁盘存储中。

1. 源数据库提交事务。

1. `EXTRACT` 将事务详细信息写入跟踪文件。

1. 跟踪记录文件将这些详细信息路由到 Oracle GoldenGate 本地或 Amazon EC2 实例枢纽，然后路由到目标数据库。

以下步骤启动 `EXTRACT` 实用程序，从源数据库 `OGGSOURCE` 的 `EXAMPLE.TABLE` 中捕获数据，然后创建跟踪记录文件。

**运行 EXTRACT 实用程序**

1. 在 Oracle GoldenGate 枢纽（本地或 Amazon EC2 实例）上配置 `EXTRACT` 参数文件。下面的列表显示了一个名为 `$GGHOME/dirprm/eabc.prm` 的示例 `EXTRACT` 参数文件。

   ```
   EXTRACT EABC
    
   USERID oggadm1@OGGSOURCE, PASSWORD "my-password"
   EXTTRAIL /path/to/goldengate/dirdat/ab 
    
   IGNOREREPLICATES
   GETAPPLOPS
   TRANLOGOPTIONS EXCLUDEUSER OGGADM1
   	 
   TABLE EXAMPLE.TABLE;
   ```

1. 在 Oracle GoldenGate 枢纽上，登录到源数据库，并启动 Oracle GoldenGate 命令行界面 `ggsci`。下面的示例说明了登录格式。

   ```
   dblogin oggadm1@OGGSOURCE
   ```

1. 添加事务数据以便为数据库表开启补充日志记录。

   ```
   add trandata EXAMPLE.TABLE
   ```

1. 使用 `ggsci` 命令行以及下列命令，启用 `EXTRACT` 实用程序。

   ```
   add extract EABC tranlog, INTEGRATED tranlog, begin now
   add exttrail /path/to/goldengate/dirdat/ab 
      extract EABC, 
      MEGABYTES 100
   ```

1. 向数据库注册 `EXTRACT` 实用程序，以便不删除存档日志。此任务可让您在必要时恢复未提交的旧事务。要向数据库注册 `EXTRACT` 实用程序，请使用下面的命令。

   ```
   register EXTRACT EABC, DATABASE
   ```

1. 使用下面的命令启动 `EXTRACT` 实用程序。

   ```
   start EABC
   ```

## 运行 Oracle GoldenGate REPLICAT 实用程序
<a name="Appendix.OracleGoldenGate.Replicat"></a>

`REPLICAT` 实用程序将跟踪记录文件中的事务信息“推送”至目标数据库。

以下步骤启用并启动 `REPLICAT` 实用程序，以便它可以将捕获的数据复制到目标数据库 `OGGTARGET` 的表 `EXAMPLE.TABLE` 中。

**运行 REPLICATE 实用程序**

1. 在 Oracle GoldenGate 枢纽（本地或 EC2 实例）上配置 `REPLICAT` 参数文件。下面的列表显示了一个名为 `$GGHOME/dirprm/rabc.prm` 的示例 `REPLICAT` 参数文件。

   ```
   REPLICAT RABC
    
   USERID oggadm1@OGGTARGET, password "my-password"
    
   ASSUMETARGETDEFS
   MAP EXAMPLE.TABLE, TARGET EXAMPLE.TABLE;
   ```
**注意**  
作为安全最佳实践，请指定除此处所示提示以外的密码。

1. 登录目标数据库并启动 Oracle GoldenGate 命令行界面（`ggsci`）。下面的示例说明了登录格式。

   ```
   dblogin userid oggadm1@OGGTARGET
   ```

1. 使用 `ggsci` 命令行，添加检查点表。所指示的用户应是 Oracle GoldenGate 用户账户，而不是目标表架构拥有者。下面的示例创建一个名为 `gg_checkpoint` 的检查点表。

   ```
   add checkpointtable oggadm1.oggchkpt
   ```

1. 要启用 `REPLICAT` 实用程序，请使用下面的命令。

   ```
   add replicat RABC EXTTRAIL /path/to/goldengate/dirdat/ab CHECKPOINTTABLE oggadm1.oggchkpt 
   ```

1. 使用下面的命令启动 `REPLICAT` 实用程序。

   ```
   start RABC
   ```