ADD SCHEMATRANDATA

適用於 Oracle。

使用 ADD SCHEMATRANDATA 來啟用表格適用的綱要層次補充日誌記錄。ADD SCHEMATRANDATA 會對指定綱要中的所有目前和未來表格採取動作,以自動記錄 Oracle GoldenGate 需要以進行資料列識別的可用索引鍵超集。

注意:Oracle GoldenGate 23.6 不支援在 JSON Relational Duality Views (JSON DV) 和 JSON Collection Tables (JCT) 的綱要層次啟用邏輯複製。

若要對多用戶資料庫 PDB 中的綱要執行 ADD SCHEMATRANDATA,您需要登入 PDB 以發出命令。

ADD SCHEMATRANDATA 可與 Extract 搭配使用,並執行下列作業:

依照預設,ADD SCHEMATRANDATA 會以下列優先順序來記錄表格的索引鍵資料欄:

  1. 主索引鍵

  2. 若沒有主索引鍵,則記錄表格所有的唯一索引鍵,包括已停用、無法使用或隱藏的索引鍵。也會記錄包含 ADT 成員資料欄的唯一索引鍵。只有虛擬資料欄 (以函數為基礎的索引) 的唯一索引鍵不會被記錄。

  3. 如果上述索引鍵都不存在,則會記錄表格的所有純量資料欄。(一律記錄系統產生的資料列 OID)。

ADD SCHEMATRANDATA 也支援使用整合式 Replicat 的條件性或非條件性日誌記錄需求。

在下列情況下使用 ADD SCHEMATRANDATA:

UsingADD SCHEMATRANDATA 的資料庫層次記錄日誌需求

Oracle 強烈建議在使用 Oracle GoldenGate 時,將來源資料庫設為強制日誌記錄模式,並在資料庫層級啟用最低層級補充日誌記錄。這會將資料列鏈結資訊 (若有的話) 新增至重做日誌以進行更新作業。

UsingADD SCHEMATRANDATA 的其他考量

語法

ADD SCHEMATRANDATA schema
{
[ALLOWNONVALIDATEDKEYS]
[NOSCHEDULINGCOLS | ALLCOLS]}
[NOVALIDATE]
[PARTIALJSON]
[PREPARECSN  {WAIT | LOCK | NOWAIT | NONE}]

schema

您要記錄補充索引鍵資訊的綱要。請勿使用萬用字元。若要為多用戶容器資料的多個可插拔資料庫發行 ADD SCHEMATRANDATA,請分別以 DBLOGIN 登入每個可插拔資料庫,然後發行 ADD SCHEMATRANDATA。您可以從根容器中,使用容器前置碼 ADD SCHEMATRANDATA [pdb_name].schema 來新增 Schematrandata

如果您從 cdb$root 執行命令,請確定同時在資料庫端設定下列使用者權限:

ALTER USER userID SET CONTAINER_DATA = ALL  CONTAINER = CURRENT;

ALLOWNONVALIDATEDKEYS

它包含補充日誌記錄中的 NON VALIDATED 和 NOT VALID 主索引鍵。這些索引鍵會覆寫 Oracle GoldenGate 所使用的一般索引鍵選擇條件。如果正在使用 GLOBALS 參數 ALLOWNONVALIDATEDKEYS,ADD SCHEMATRANDATA 會以 ALLOWNONVALIDATEDKEYS 執行,無論是否已指定該參數。依預設,不會記錄 NON VALIDATED 和 NOT VALID 主索引鍵,請參閱 GLOBALS ALLOWNONVALIDATEDKEYS 參數。

NOSCHEDULINGCOLS | ALLCOLS

這兩個選項控制 Oracle 目標資料庫的補充日誌記錄。您可以同時使用這兩個選項,但是會使用後面這個選項。例如,使用 ADD SCHEMATRANDATA oggadm_ext ALLCOL NOSCHEDULINGCOLS 指令時,會使用 NOSCHEDULINGCOLS 選項。

NOSCHEDULINGCOLS

停用排程資料欄的日誌記錄。依照預設,ADD SCHEMATRANDATA 會啟用主索引鍵的無條件記錄,以及指定綱要中目前和未來所有表格之所有唯一索引鍵和外來索引鍵的條件補充記錄日誌。無論是否在目前作業中變更主索引鍵,無條件性日誌記錄都會強制使用日誌的主索引鍵值。如果在目前作業中至少變更外來或唯一索引鍵其中之一,則條件性日誌記錄會記錄外來或唯一索引鍵的所有資料欄值。內送伺服器必須能夠使用整合式 Replicat 的主索引鍵、唯一索引鍵及外來索引鍵才能運算相依性。

如果您要啟用 auto_capture,請勿使用此選項。這將允許自動擷取此綱要中的表格,除非該表格明確排除 / 停用複製 (例如透過 TABLEEXCLUDE、DELETE TRANDATA 或 ALTER TABLE DISABLE LOGICAL REPLICATION DDL)。

ALLCOLS

針對指定綱要中所有目前與未來的表格,啟用所有支援索引鍵與非索引鍵資料欄的非條件性補充日誌記錄。此選項會啟用運算相依性所需之索引鍵的日誌記錄,還會啟用篩選、衝突解決或其他用途所需的資料欄。LOB、LONG 及 ADT 等資料欄則不包括在內。

NOVALIDATE

適用於所有 ADD SCHEMATRANDATA 支援的資料庫。

隱藏 ADD SCHEMATRANDATA 正在處理之表格的其他資訊。此選項預設為啟用。處理其他資訊會導致命令回應延遲,因此這個選項可用來增加回應時間。

PARTIALJSON

適用於 Oracle。

在綱要層級擷取局部 JSON 更新。若啟用,重做將會包含局部 JSON 記錄。

另請參閱 TRANLOGOPTIONS FETCHPARTIALJSON 參數。

PREPARECSN {WAIT | LOCK | NOWAIT | NONE}

適用於 Oracle DML 與 DDL。

自動準備來源表格,讓 Oracle 資料汲取匯出傾印檔能夠包括實例 CSN。Replicat 會使用 Oracle 資料汲取 (在匯入時)所設定的每個表格實例 CSN,來篩除歷程檔記錄。在目標上,資料汲取匯入會使用 DBOPTIONS ENABLE_INSTANTIATION_FILTERING 參數填入具有建立 SCN 的系統表格與檢視,以啟用表格層次的建立篩選。

WAIT

等待所有進行中異動並準備表格實例。

LOCK

鎖定表格 (以準備表格實例)。

NOWAIT

預設行為,實例會立即準備完成。

NONE

不會準備實例。

範例


下列功能會啟用綱要 hr 的補充記錄日誌。

ADD SCHEMATRANDATA hr

下列範例會記錄綱要中所有目前與未來表格 (名為 hr) 的所有支援金鑰與非金鑰資料欄。

ADD SCHEMATRANDATA hr ALLCOLS

下列範例會隱藏處理中的其他表格資訊。

ADD SCHEMATRANDATA hr NOVALIDATE