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异常终止。