擷取選項
有效對象
擷取
說明
您可以使用 FETCHOPTIONS 參數來控制 Oracle GoldenGate 在下列情況下擷取資料的特定層面:
-
當交易記錄未包含足夠的資訊供 Extract 重新建構更新作業時。
-
當 Oracle GoldenGate 必須擷取作為
TABLE敘述句之MISSINGCOLS子句結果的資料欄值時。
FETCHOPTIONS 是表格特定的。FETCHOPTIONS 敘述句適用於所有後續的 TABLE 敘述句,直到遇到不同的 FETCHOPTIONS 敘述句為止。
預設擷取特性適用於大部分的安裝。
預設
忽略遺漏的資料列並繼續處理
語法
FETCHOPTIONS
[, FETCHPKUPDATECOLS]
[, MISSINGCOLS]
[, INCONSISTENTROW <action>]
[, MAXFETCHSTATEMENTS <number>]
[, MISSINGROW <action>]
[, NOFETCH]
[, SUPPRESSDUPLICATES]
[, USEKEY | NOUSEKEY]
[, USELATESTVERSION | NOUSELATESTVERSION]
[, USESNAPSHOT | NOUSESNAPSHOT]
[, USEROWID | NOUSEROWID]
FETCHPKUPDATECOLS
更新主索引鍵時,擷取所有無法使用的資料欄。此選項預設為關閉。關閉時,會根據其他啟用的 FETCHOPTIONS 選項執行資料欄擷取。
如果開啟,它只會在更新主索引鍵資料欄時生效。結果與在 TABLE 敘述句中使用 (*) 的結果相同。擷取中包含 LOB 資料欄。
使用 HANDLECOLLISIONS. 時使用此參數當 Replicat 偵測到遺漏的更新時,所有資料欄都可以將更新轉換成插入。
MISSINGCOLS
從更新和刪除作業擷取任何遺漏的資料欄,包括 LOB 資料欄。此選項僅適用於 Oracle AI Database。它可能會因擷取資料的其他查詢而對資料庫和 Extract 效能造成負面影響。特別是在需要擷取並寫入歷程檔的大型 LOB 值時。
設定此參數與設定下列參數相同:
MISSINGCOLS(*) in the TABLE statement
NOCOMPRESSDELETES FETCHMISSINGCOLS
GETUPDATEBEFORES
NOCOMPRESSUPDATES
LOGALLSUPCOLS
不過,設定 FETCHOPTIONS MISSINGCOLS 與下列參數衝突:
FETCHOPTIONS NOFETCH
FETCHOPTIONS FETCHPKUPDATECOLS
COMPRESSDELETES
COMPRESSUPDATES
GETUPDATEBEFORES
LOGALLSUPCOLS
INCONSISTENTROW <action>
指示已順利以資料列 ID 擷取資料欄資料,但索引鍵不相符。資料列 ID 已循環使用,或是在進行此作業之後 (且在擷取之前) 發生主索引鍵更新。
<action> 可以是下列其中一項:
ALLOW
允許條件並繼續處理。
IGNORE
忽略條件並繼續處理。這是預設值。
REPORT
將資料列的條件與內容報告至捨棄檔案,但繼續處理部分資料列。
DISCARD
捨棄資料,且不處理部分列。
ABEND
捨棄資料並結束處理。
MAXFETCHSTATEMENTS <number>
控制 Extract 可用來從來源資料庫擷取資料列資料的準備查詢數目上限。當沒有足夠的資訊可以從交易日誌記錄建構邏輯 SQL 敘述句時,就會使用擷取的資料。查詢會視需要準備並快取。達到以 MAXFETCHSTATEMENTS 設定的值時,最舊的查詢會被最新的查詢取代。此參數的值控制 Extract 僅供擷取查詢維護的開啟游標數目。Extract 可使用其他游標作為其他用途,例如預存程序所需的游標。此參數僅適用於 Oracle AI Database。預設值為 100 個陳述式。確定資料庫可支援指定的游標數目,以及其他應用程式和處理作業所使用的游標數目。
MISSINGROW <action>
提供當 Oracle GoldenGate 找不到要擷取的資料列時所做的回應,導致只能處理部分資料列 (變更過的值)。一般而言,無法找到資料列,因為它是在建立變更記錄到觸發擷取的時間之間被刪除,或是因為需要的資料列影像比還原保留規格舊。
<action> 可以是下列其中一項:
ALLOW
允許條件並繼續處理。這是預設值。
IGNORE
忽略條件並繼續處理。
REPORT
將資料列的條件與內容報告至捨棄檔案,但繼續處理部分資料列。
DISCARD
捨棄資料,且不處理部分列。
ABEND
捨棄資料並結束處理。
NOFETCH
避免 Extract 從資料庫擷取資料欄,此選項預設為關閉。Extract 將記錄寫入歷程檔,但插入指示遺漏資料欄的記號。
SUPPRESSDUPLICATES
適用於 Oracle。避免在 LOB 資料欄進行更新時,目標表格空間過大。依預設,SUPPRESSDUPLICATES 會設定為關閉。例如,複製 232MB 的來源表格空間之後,就會成為 7.52GB 的目標表格空間。
USEKEY |
NOUSEKEY |
決定 Oracle GoldenGate 是否使用主索引鍵來尋找要擷取的資料列。
如果同時指定 USEKEY 和 USEROWID,ROWID 會優先處理記錄的存取。USEROWID 為預設值。
USELATESTVERSION |
NOUSELATESTVERSION |
適用於 Oracle。搭配 USESNAPSHOT 使用。如果無法從還原表格空間擷取資料,預設值 USELATESTVERSION 會指示 Extract 從來源表格擷取資料。NOUSELATESTVERSION 會指示 Extract 在快照擷取失敗後忽略條件,並繼續處理。
若要在快照擷取失敗時提供替代動作,請使用 MISSINGROW 選項。
USESNAPSHOT |
NOUSESNAPSHOT |
適用於 Oracle。預設值 USESNAPSHOT 會讓 Extract 使用 Oracle Flashback 機制擷取重新建構無法從重做記錄完全擷取之特定作業所需的正確資料快照。NOUSESNAPSHOT 會讓 Extract 從來源表格擷取所需的資料,而不是從倒溯日誌擷取。
USEROWID |
NOUSEROWID |
適用於 Oracle。決定 Oracle GoldenGate 是否使用 ID 資料列來尋找要擷取的資料列。
如果同時指定 USEKEY 和 USEROWID,ROWID 會優先處理記錄的存取。USEROWID 為預設值。
範例
範例 1
下列指示 Extract 使用「倒溯查詢」擷取資料,以及忽略條件並在擷取失敗時繼續處理記錄。
FETCHOPTIONS USESNAPSHOT, NOUSELATESTVERSION
範例 2
MAXFETCHSTATEMENTS 150
範例 3
下列指示 Extract 使用「倒溯查詢」擷取資料,並在資料無法使用時導致 Extract 中止。
FETCHOPTIONS USESNAPSHOT, NOUSELATESTVERSION, MISSINGROW ABEND