將表格發展變更從來源傳輸至目標

Oracle GoldenGate 會複製表格變更,包括遺漏的表格事件。啟用 AUTOSCHEMA 時,在處理歷程檔中的「表格定義記錄 (TDR)」時,會在表格對應期間偵測到遺漏的表格事件。

下列步驟說明此工作流程:

  1. Replicat 會嘗試解析目標表格的描述資料。如果描述資料解析因 object not found 錯誤而失敗,則表示目標資料庫上沒有目標表格。

  2. 如果啟用 AUTOSCHEMA 功能,則會根據 TDR 記錄中的來源中繼資料產生遺漏目標表格的 CREATE TABLE 陳述式。

    1. 預設資料類型對應範本 (根據目標資料庫類型) 會在為目標表格的資料欄選取適當的資料類型時使用。

    2. CREATE TABLE 陳述式是根據目標資料庫的 SQL 語法 (若有指定使用者偏好設定) 所產生。您可以指定下列偏好設定:

      1. Replicat 參數檔中對應 MAP 統計資料集之 TARGET 子句中指定的目標表格名稱。

      2. 依照預設,目標表格資料欄的名稱與來源表格資料欄相同,不過,您可以使用 COLMAP 選取不同的名稱。

      3. 您可以使用 TYPEMAP 選取特定來源資料類型名稱 (或來源資料欄) 的自訂資料類型名稱 (目標資料庫上提供)。適用於來源與目標資料庫之間支援的資料類型 (及其限制) 可能不同的情況。

  3. 如果作業符合設定的篩選條件 (例如 INCLUDE/EXCLUDE 規則),便會由複製處理作業自動處理使用產生的 CREATE TABLE 敘述句建立新表格。如果發生暫時性問題,系統會根據設定的重試設定,嘗試套用變更數次。如果在重試之後仍無法套用變更,複寫將會停止並回報錯誤。

傳輸目標表格中的資料欄進化

在表格對應期間偵測到目標表格事件中遺漏的資料欄。更具體地說,在處理表格定義記錄 (TDR) 時。

  1. Replicat 會嘗試解析目標表格的描述資料。在此情況下,由於目標表格存在,中繼資料解析不會失敗,但會傳回有效的目標表格定義結構。

  2. 如果啟用 AUTOSCHEMA,則目標表格定義中的中繼資料會與內送 TDR 記錄中的來源表格中繼資料進行比較。這是用來偵測目標表格定義中無法使用的來源表格中繼資料中,在上一個步驟中擷取的任何其他資料欄。

    1. 根據目標資料庫類型,預設資料類型對應樣板是在為目標表格的新資料欄選擇最合適的資料類型時使用。

    2. ALTER TABLE ADD COLUMN 陳述式會根據目標資料庫的 SQL 語法產生。

      您可以為特定來源資料類型名稱 (或來源資料欄) 選擇自訂資料類型名稱 (目標資料庫上提供)。適用於來源與目標資料庫之間支援的資料類型 (及其限制) 可能不同的情況。

  3. 如果已識別任何此類其他資料欄,則會根據 TDR 記錄中的來源中繼資料 (特別是 TDR 記錄中的其他資料欄) 產生現有目標表格的 ALTER TABLE ADD COLUMN 陳述式。

只有在對應的 DDL 傳遞 DDL 檔案字串條件 (DDL INCLUDE/EXCLUDE 條件搭配 OBJTYPE/OPTYPE/OBJNAME 選項) 時,才會由現有的 DDL 複製基礎架構執行產生的 ALTER TABLE DDL。由於 DDL 複製基礎架構也用於 AUTOSCHEMA,因此也會使用非嚴重錯誤代碼的重試邏輯。重試邏輯也具有可設定的重試次數,以及重試之間的延遲。如果產生的 DDL 執行失敗 (即使在重試之後),Replicat 就會中止。