更新記錄格式

有效對象

擷取所有資料庫。此參數只能用於 TRANLOG Extract。它無法用於擷取或分配服務。

說明

使用 UPDATERECORDFORMAT 參數讓 Extract 將 UPDATE 作業的前置與後續影像合併為歷程檔中的單一記錄。它適用於傳統與整合式擷取模式中的 Extract。

使用 GETUPDATEBEFORES、GETBEFORECOLS 和 LOGALLSUPCOLS 參數時,產生影像之前。(如果是更新主索引鍵、唯一索引或使用者指定的 KEYCOLS 索引鍵,依預設,之前和之後影像會儲存在相同的記錄中。UPDATERECORDFORMAT 不適用於這些情況。) 非 Oracle 資料庫需要 NOCOMPRESSUPDATES 參數。

為單一資料列的更新產生兩筆記錄時,會產生額外的磁碟 I/O 以及 Extract 和 Replicat 的處理。如果在所有資料欄啟用補充記錄日誌,則未修改的資料欄可以在記錄之前和之後重複。歷程檔的整體大小也較大。使用 UPDATERECORDFORMAT 可降低此負荷。

使用 UPDATERECORDFORMAT 時,Extract 會將前後影像寫入單一記錄,其中包含處理 UPDATE 作業所需的所有資訊。除了提升下游處理的讀取效能之外,這可讓資料欄對應函數在相同的時間點存取資料欄前後的值,而不必在讀取之後的值時快取之前的影像資料欄值。

UPDATERECORDFORMAT 會對參數檔中的所有 TABLE 敘述句生效。

如果您同時指定 UPDATERECORDFORMAT 和 ```FORMATRELEASE` 11.x or earlier, then Extract will abend. Note: Many-columned tables can cause the trail record to reach its maximum size when UPDATERECORDFORMAT`。其餘記錄會在一或多個其他鏈結的記錄片段中繼續。這對處理效能有輕微的影響。

注意:INSERTALLRECORDS 只能與 ``UPDATERECORDFORMAT` 搭配使用

                 `FULL``. So if you are using ``INSERTALLRECORDS`` in Replicat, you must set ``UPDATERECORDFORMAT` `FULL`` in the Extract.
                 {: .infoboxnote}

預設

如果您指定 UPDATERECORDFORMAT,則必須設定 COMPACT 或 FULL。但對於 Oracle AI Database,如果未指定任何參數 logallsupcols 或 updaterecordformat,則預設會設定 logallsupcols 和 updaterecordformat compact。

如果您指定參數,則必須指定 full 或 compact 選項。

對於異質資料庫,如果使用參數,您必須設定 compact 或 full。如果不使用參數,則 updaterecordformat 完全不是 on,且您在歷程檔中會取得單一的後續影像 (除非您啟用 getupdatebefores),則會在歷程檔中取得兩筆記錄,而非統一記錄。

語法

UPDATERECORDFORMAT [FULL | COMPACT]

FULL

產生一筆包含 UPDATE 之前和之後影像的歷程檔記錄,其中先前的影像包含之前和之後影像交易記錄中所有可用的資料欄。在 Logdump 公用程式中檢視時,此記錄會顯示為 GGSUnifiedUpdate。

COMPACT

產生一筆包含 UPDATE 之前和之後影像的歷程檔記錄,其中前面的影像包含交易記錄中可用的所有資料欄,但後面的影像僅限於主索引鍵資料欄,以及 UPDATE 中修改的資料欄。對於包含整合式 Replicat 的組態,建議使用 UPDATERECORDFORMAT COMPACT。這是預設值。

在 Logdump 公用程式中檢視 FULL 或 COMPACT 時,記錄會顯示為 GGSUnifiedUpdate。記錄包含下列項目:

範例

UPDATERECORDFORMAT COMPACT