Fusion Middleware Installing and Configuring Oracle GoldenGate for Oracle Database(12.2.0.1)
1.6.7 Large Object Data Types
支持的數據類型:
- CLOB
- NCLOB
- BLOB
- SECUREFILE和BASICFILE
1.6.7.1 integrated和classic捕獲方式通用的限制
- OGG不支持大小超過4k的LOB的過濾,列映射和操作。
- 如果開啓了DDL支持,OGG會複製CTAS操作並且允許從源表查詢數據。這是由參數GET_CTAS_DMLS控制的,並且適用於所有類型的表。如果啓用了這個參數,OIDs被保留。
1.6.7.2 classic捕獲方式的限制
BASICFILE類型的LOBs數據從redo log獲取,但是如下情況會從數據庫中獲取:
- Extract判定LOB不可用
- Redo log中沒有LOB數據,有可能創建BASICFILE LOB時啓用了nologging選項。
- 創建LOB時指定了CACHE屬性
- LOB部分更新
- Extract檢測到LOB數據異常
SECUREFILE類型的LOBs數據從redo log獲取需要同時滿足的條件如下:
- LOB是全部更新(不是部分更新)
- LOB沒有被轉換transformed(壓縮、解壓、去重)
- Out-of-row方式存儲
SECUREFILE類型的LOBs數據從數據庫中獲取的場景:
- In-row方式存儲
- LOB被轉換
- 創建LOB時指定了CACHE屬性
- Extract判定LOB實例不可用
- Redo log中不存在LOB數據,可能創建時指定了nologging選項
- LOB使用函數進行了部分更新
- Extract檢測到其他異常情況
當修改SECUREFILE LOB的存儲屬性時,oracle會更新整個表,extract從log中捕獲這些更新。所以,這就像是oracle更新了與表相關的所有數據塊。這種情況在給一個包含null值的列設置默認值時也會出現。
- 在一個高可用環境中,當表包含JSON列時,extracts可以捕獲數據,但是默認的replicat模式不能應用數據。必須設置DBOPTIONS NOSKIPTEMPLOB參數防止replicat異常終止。