如何評估 DDL 進行處理
瞭解 Oracle GoldenGate 參數中不同條件的處理順序,以及 Extract 和 Replicat 每次處理 DDL 的差異。
擷取 1。擷取會擷取 DDL 陳述式。
-
Extract 會將註解 (如果有的話) 與主要敘述句分開。
-
擷取搜尋
DDL參數。(此範例假設它存在。) -
擷取搜尋
IGNOREREPLICATES參數。如果有此 DDL,且 Replicat 在此系統上產生此 DDL,則 Extract 會忽略 DDL 敘述句。(此範例假設此系統上沒有 Replicat 作業。) -
Extract 決定 DDL 敘述句是否為
RENAME。如果是,則會在內部標示重新命名。 -
Extract 會取得基礎物件名稱,如果存在,則會取得衍生的物件名稱。
-
如果陳述式為
RENAME,則 Extract 會將其變更為ALTER TABLE RENAME。 -
擷取搜尋
DDLOPTIONS REMOVECOMMENTS BEFORE參數。如果存在,則 Extract 會從 DDL 敘述句中移除註解,但若有使用INSTR或INSTRCOMMENTS的DDL INCLUDE或DDL EXCLUDE子句,則會加以儲存。 -
Extract 決定 DDL 範圍:
MAPPED、UNMAPPED或OTHER:-
如果對應支援作業和物件類型,且基礎物件名稱和 (或) 衍生物件名稱 (如果是
RENAME) 位於TABLE參數中,則為MAPPED。 -
如果對應不支援作業和物件類型,且基礎物件名稱和 (或) 衍生物件名稱 (如果是
RENAME) 不在TABLE參數中,則為UNMAPPED。 -
否則,作業會識別為
OTHER。
-
-
Extract 會檢查
INCLUDE和EXCLUDE子句的DDL參數,並評估這些子句中的DDL參數條件。所有選項都必須評估為TRUE,INCLUDE或EXCLUDE才能評估為TRUE。就會出現以下情況:-
如果
EXCLUDE子句評估為TRUE,則 Extract 會捨棄 DDL 敘述句並評估另一個 DDL 敘述句。在此情況下,處理步驟會重新開始。 -
如果
INCLUDE子句評估為TRUE,或DDL參數沒有任何INCLUDE或EXCLUDE子句,則 Extract 會包含 DDL 敘述句,並繼續處理邏輯。
-
-
擷取搜尋
DDLSUBST參數並評估INCLUDE與EXCLUDE子句。如果這些子句中的準則加總為TRUE,則 Extract 會執行字串替代。Extract 會根據參數檔中的每個DDLSUBST參數評估 DDL 敘述句。對於所有真正的DDLSUBST規格,「擷取」會依照檔案中列出DDLSUBST參數的順序執行字串替代。 -
現在已經處理
DDLSUBT,擷取會搜尋REMOVECOMMENTS AFTER參數。如果存在,則 Extract 會從 DDL 敘述句中移除註解。 -
擷取搜尋
DDLOPTIONS ADDTRANDATA。如果存在,且作業為CREATE TABLE,則 Extract 會在表格上發出ALTER TABLEnameADD SUPPLEMENTAL LOG GROUP命令。 -
Extract 會將 DDL 敘述句寫入歷程檔。