準備要處理的表格

必須在 Oracle GoldenGate 環境中處理 TimesTen 的下列表格屬性。

移除刪除 CASCADE 限制條件

如果 Oracle TimesTen 中的目標表格具有指定 ON DELETE CASCADE 子句的外來索引鍵,且該外來索引鍵的目標表格也是 Oracle GoldenGate 複製的目標,則您必須從外來索引鍵定義中移除 ON DELETE CASCADE 子句,以避免發生錯誤。

請參考下列範例,其中來源表格為 emp_src 與 salary_src,而目標表格為 emp_targ 與 salary_targ。

  1. emp_src 會發出刪除。

  2. 它會將刪除重疊至 salary_src。

  3. Oracle GoldenGate 會將這兩個刪除項目傳送至目標。

  4. 父項刪除會先到達,並套用至 emp_targ。

  5. 父項刪除會將刪除重疊套用至 salary_targ。

  6. 從 salary_src 連鎖刪除會套用至 salary_targ。

  7. 找不到資料列,因為該資料列已在步驟 5 中刪除。

Oracle TimesTen 不支援停用外來索引鍵限制條件或刪除連鎖限制條件。若要移除 ON DELETE CASCADE,您必須刪除表格並在沒有 ON DELETE CASCADE 子句的情況下重新建立,或者您可以使用 ALTER TABLE 來移除外來索引鍵限制條件,並在沒有 ON DELETE CASCADE 子句的情況下重新建立。

確保表格的資料列唯一性

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

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

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

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

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