擷取的對應
有效對象
擷取
說明
您也可以在 Extract 參數檔中使用 MAP,以變更 Oracle GoldenGate 為表格儲存的交易名稱。
例如,假設您擷取 scott.emp 表格。對於第一個使用案例,您可以擷取它,將所有變更套用到名為 scott.emp 的另一個表格 (具有相同的結構),但也想要擷取具有不同資料欄集的 scott.emp,並將它複製到名為 scott.emp_old 的表格。若要執行此工作,您需要有類似以下的 Extract 參數檔:
TABLE scott.emp;
MAP scott.emp,
cols(emp_no, employee_name),
target scott.emp_old;
在 Replicat 中,您可以執行下列作業:
MAP *.*, target *.*;
scott.emp 的變更會變成 scott.emp,scott.emp_old 的歷程檔資料會變成 scott.emp_old。
Extract 在傳統擷取模式中運作時,請使用 Extract 的 MAP 參數,而且您必須使用此參數的 ALTID 元件,才能將物件 ID 對應至物件名稱。如果 Extract 是從資料庫所產生的 Oracle 交易日誌擷取,而非 Extract 所連線的資料庫,則 ALTID 會指定正確的物件 ID。若 Extract 不允許直接連線至生產 (來源) 資料庫以擷取生產異動,則需有此組態。
當 Extract 無法直接連線至來源資料庫時,它會連線至即時待命資料庫或其他傳真資料庫,但會讀取從來源資料庫傳送的交易日誌。藉由查詢替代資料庫的目錄,Extract 可以取得將交易資料展開至有效 SQL 陳述式所需的中繼資料,但無法使用此查詢中的物件 ID。表格的本機物件 ID 與來源資料庫中該表格的物件 ID 不同 (因此,在交易日誌中)。您必須使用含有 ALTID 的 MAP 敘述句,將每個表格名稱手動對應至來源物件 ID。
使用 MAP 與 ALTID
-
為您要擷取的每個表格建立一個含有
ALTID的MAP敘述句。包含ALTID的MAP參數不允許使用萬用字元表格名稱。 -
若要為同一個表格 (或表格) 指定其他處理,例如資料篩選或操控,您也必須為這些表格建立
TABLE敘述句。若適用的話,可使用萬用字元指定多個含有一個TABLE陳述式的表格。 -
如常在 Replicat 參數檔中使用一般 Replicat
MAP敘述句。Extract 的MAP不會取代 Replicat 的MAP,這是將來源表格對應至目標表格所需的。 -
使用
ALTID時,不支援擷取和複製DDL。
預設
無
語法
MAP *[<container>.]<schema>.*<table>, ALTID <object_ID> [, <object_ID>]
[<container>.]<schema.table>
來源表格的完整名稱。
<object_ID>
表格在生產 (來源) 資料庫中的物件 ID。
如果表格已分割,您可以列出要複製之分割區的物件 ID,並以逗號分隔每個分割區。
範例
範例 1
此範例對應的是未分割表格,或是只對應分割表格的一個分割區。
MAP QASOURCE.T2, ALTID 75740;
範例 2
此範例會對應分割表格的分割區。
MAP QASOURCE.T_P1, ALTID 75257,75258;