

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 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
   ```