確保表格的資料列唯一性

Oracle GoldenGate 需要來源和目標表格上某種形式的唯一資料列 ID,才能尋找正確的目標資料列以進行複製的更新和刪除。

除非在 TABLE 或 MAP 敘述句中使用 KEYCOLS 子句,否則 Oracle GoldenGate 會選取資料列 ID,以下列優先順序使用:

  1. 主索引鍵

  2. 不包含時戳或非具體化計算資料欄的第一個唯一索引鍵文數字。

  3. 如果沒有任何先前的金鑰類型存在 (即使表格中可能定義了其他類型的金鑰),Oracle GoldenGate 會建構所有資料欄的虛擬金鑰資料庫允許用於唯一金鑰中,不包括金鑰中 Oracle GoldenGate 不支援的金鑰或 Oracle GoldenGate 組態中排除的金鑰。注意:如果表格上有其他不可使用的金鑰,或表格上沒有金鑰,Oracle GoldenGate 會將適當的訊息記錄至報表檔案。從所有資料欄建構索引鍵,代表來源系統上 Oracle GoldenGate 的效能。在目標上,此索引鍵會讓 Replicat 使用更大且更低效率的 WHERE 子句。

  1. 如果表格沒有適當的索引鍵,或者您偏好不使用現有的索引鍵,您可以定義替代索引鍵 (如果表格的資料欄一律包含唯一值)。您可以在 Extract TABLE 參數和 Replicat MAP 參數中包含 KEYCOLS 子句,以定義此替代索引鍵。指定的金鑰將會覆寫 Oracle GoldenGate 找到的任何現有主索引鍵或唯一索引鍵。請參閱 Oracle GoldenGate 的參數與函數參照中的 TABLE | MAP 。