準備要處理的表格

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

目標識別資料欄、觸發程式以及限制條件的 Replicat 考量

將資料複寫至含有識別資料欄、觸發程式以及連鎖檢查限制條件的目標 SQL Server 資料庫時,請考慮下列事項:

若要克服這些情況,可以根據複製使用案例實作數個選項。

使用陣列處理改善 IDENTITY 複製

由於每個階段作業只有一個表格可將 IDENTITY_INSERT 設為 ON,因此 Replicat 在將 IDENTITY 資料套用至階段作業中的多個表格時,必須持續切換 IDENTITY_INSERT。若要改善此情況的 Replicat 效能,請使用 BATCHSQL 參數。BATCHSQL 會讓 Replicat 使用陣列處理,而不是一次套用一個 SQL 敘述句。

確保來源和目標表格中的資料列唯一性

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 。

使用 KEYCOLS 指定自訂金鑰

如果表格沒有適用的資料列識別碼,或您偏好不使用識別碼,則您可以定義替代索引鍵,前提是表格的資料欄一律包含唯一值。您可以在 Extract TABLE 參數和 Replicat MAP 參數中包含 KEYCOLS 子句,以定義此替代索引鍵。指定的金鑰會覆寫 Oracle GoldenGate 找到的任何現有主索引鍵或唯一索引鍵。