如何評估 DDL 進行處理

瞭解 Oracle GoldenGate 參數中不同條件的處理順序,以及 Extract 和 Replicat 每次處理 DDL 的差異。

擷取 1。擷取會擷取 DDL 陳述式。

  1. Extract 會將註解 (如果有的話) 與主要敘述句分開。

  2. 擷取搜尋 DDL 參數。(此範例假設它存在。)

  3. 擷取搜尋 IGNOREREPLICATES 參數。如果有此 DDL,且 Replicat 在此系統上產生此 DDL,則 Extract 會忽略 DDL 敘述句。(此範例假設此系統上沒有 Replicat 作業。)

  4. Extract 決定 DDL 敘述句是否為 RENAME。如果是,則會在內部標示重新命名。

  5. Extract 會取得基礎物件名稱,如果存在,則會取得衍生的物件名稱。

  6. 如果陳述式為 RENAME,則 Extract 會將其變更為 ALTER TABLE RENAME。

  7. 擷取搜尋 DDLOPTIONS REMOVECOMMENTS BEFORE 參數。如果存在,則 Extract 會從 DDL 敘述句中移除註解,但若有使用 INSTR 或 INSTRCOMMENTS 的 DDL INCLUDE 或 DDL EXCLUDE 子句,則會加以儲存。

  8. Extract 決定 DDL 範圍:MAPPED、UNMAPPED 或 OTHER:

    • 如果對應支援作業和物件類型,且基礎物件名稱和 (或) 衍生物件名稱 (如果是 RENAME) 位於 TABLE 參數中,則為 MAPPED。

    • 如果對應不支援作業和物件類型,且基礎物件名稱和 (或) 衍生物件名稱 (如果是 RENAME) 不在 TABLE 參數中,則為 UNMAPPED。

    • 否則,作業會識別為 OTHER。

  9. Extract 會檢查 INCLUDE 和 EXCLUDE 子句的 DDL 參數,並評估這些子句中的 DDL 參數條件。所有選項都必須評估為 TRUE,INCLUDE 或 EXCLUDE 才能評估為 TRUE。就會出現以下情況:

    • 如果 EXCLUDE 子句評估為 TRUE,則 Extract 會捨棄 DDL 敘述句並評估另一個 DDL 敘述句。在此情況下,處理步驟會重新開始。

    • 如果 INCLUDE 子句評估為 TRUE,或 DDL 參數沒有任何 INCLUDE 或 EXCLUDE 子句,則 Extract 會包含 DDL 敘述句,並繼續處理邏輯。

  10. 擷取搜尋 DDLSUBST 參數並評估 INCLUDE 與 EXCLUDE 子句。如果這些子句中的準則加總為 TRUE,則 Extract 會執行字串替代。Extract 會根據參數檔中的每個 DDLSUBST 參數評估 DDL 敘述句。對於所有真正的 DDLSUBST 規格,「擷取」會依照檔案中列出 DDLSUBST 參數的順序執行字串替代。

  11. 現在已經處理 DDLSUBT,擷取會搜尋 REMOVECOMMENTS AFTER 參數。如果存在,則 Extract 會從 DDL 敘述句中移除註解。

  12. 擷取搜尋 DDLOPTIONS ADDTRANDATA。如果存在,且作業為 CREATE TABLE,則 Extract 會在表格上發出 ALTER TABLE name ADD SUPPLEMENTAL LOG GROUP 命令。

  13. Extract 會將 DDL 敘述句寫入歷程檔。