準備要處理的表格
必須在 Oracle GoldenGate 環境中處理 TimesTen 的下列表格屬性。
移除刪除 CASCADE 限制條件
如果 Oracle TimesTen 中的目標表格具有指定 ON DELETE CASCADE 子句的外來索引鍵,且該外來索引鍵的目標表格也是 Oracle GoldenGate 複製的目標,則您必須從外來索引鍵定義中移除 ON DELETE CASCADE 子句,以避免發生錯誤。
請參考下列範例,其中來源表格為 emp_src 與 salary_src,而目標表格為 emp_targ 與 salary_targ。
-
emp_src會發出刪除。 -
它會將刪除重疊至
salary_src。 -
Oracle GoldenGate 會將這兩個刪除項目傳送至目標。
-
父項刪除會先到達,並套用至
emp_targ。 -
父項刪除會將刪除重疊套用至
salary_targ。 -
從
salary_src連鎖刪除會套用至salary_targ。 -
找不到資料列,因為該資料列已在步驟 5 中刪除。
Oracle TimesTen 不支援停用外來索引鍵限制條件或刪除連鎖限制條件。若要移除 ON DELETE CASCADE,您必須刪除表格並在沒有 ON DELETE CASCADE 子句的情況下重新建立,或者您可以使用 ALTER TABLE 來移除外來索引鍵限制條件,並在沒有 ON DELETE CASCADE 子句的情況下重新建立。
確保表格的資料列唯一性
Oracle GoldenGate 需要來源和目標表格上某種形式的唯一資料列 ID,才能尋找正確的目標資料列以進行複製的更新和刪除。
除非 TABLE 或 MAP 敘述句中使用 KEYCOLS 子句,否則 Oracle GoldenGate 會選取資料列 ID,以下列優先順序使用:1。主索引鍵
-
不包含時戳或非具體化計算資料欄的第一個唯一索引鍵文數字。
-
如果沒有任何先前的金鑰類型存在 (即使表格中可能定義了其他類型的金鑰),Oracle GoldenGate 會建構所有資料欄的虛擬金鑰資料庫允許用於唯一金鑰,不包括金鑰中 Oracle GoldenGate 不支援的金鑰或 Oracle GoldenGate 組態中排除的金鑰。注意:如果表格上有其他不可使用的金鑰,或表格上沒有金鑰,Oracle GoldenGate 會將適當的訊息記錄至報表檔案。從所有資料欄建構索引鍵,代表來源系統上 Oracle GoldenGate 的效能。在目標上,此索引鍵會讓 Replicat 使用更大且更低效率的
WHERE子句。
- 如果表格沒有適當的索引鍵,或者您偏好不使用現有的索引鍵,您可以定義替代索引鍵 (如果表格的資料欄一律包含唯一值)。您可以在 Extract
TABLE參數和 ReplicatMAP參數中包含 KEYCOLS 子句,以定義此替代索引鍵。指定的金鑰將會覆寫 Oracle GoldenGate 找到的任何現有主索引鍵或唯一索引鍵。請參閱 Oracle GoldenGate 的參數與函數參照中的 TABLE | MAP 。