跳到主要内容

Oracle

支持的对端数据源及功能

请选择对端数据源,文档相关内容会根据对端数据源不同而调整。

选择对端:

核心能力

功能PostgreSQL
结构迁移

全量数据迁移

增量实时同步

数据校验

数据订正

DDL实时同步
  • 增加列
  • 减少列
  • 修改列
  • 增加主键约束
  • 增加唯一性约束

使用限制与注意点

说明
无主键表迁移与同步

待同步的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据,例如无主键表的迁移与同步

字段类型与映射

OraclePostgreSQL
ANYDATANot Supported
ANYDATASETNot Supported
ANYTYPENot Supported
BFILENot Supported
BINARY DOUBLEnumeric
BINARY FLOATnumeric
BLOBNot Supported
CHARcharacter
CLOBtext
DATEtimestamp without time zone
DBURITYPENot Supported
FLOATreal
HTTPURITYPEcharacter varying
INTERVAL DAY TO SECONDNot Supported
INTERVAL YEAR TO MONTHNot Supported
LONGtext
LONG RAWNot Supported
NCHARcharacter
NCLOBtext
NESTED_TABLENot Supported
NUMBER BIGINTbigint
NUMBER DECIMALnumeric
NVARCHARcharacter varying
NVARCHAR2character varying
OBJECTNot Supported
ORDAUDIONot Supported
ORDDICOMNot Supported
ORDDOCNot Supported
ORDIMAGENot Supported
ORDVIDEONot Supported
PLSQL_BOOLEANNot Supported
RAWNot Supported
REFNot Supported
ROWIDcharacter varying
SDO_GEOMETRYNot Supported
SDO_GEORASTERNot Supported
SDO_TOPO_GEOMETRYNot Supported
SI_AVERAGE_COLORNot Supported
SI_COLORNot Supported
SI_COLOR_HISTOGRAMNot Supported
SI_FEATURE_LISTNot Supported
SI_POSITIONAL_COLORNot Supported
SI_STILL_IMAGENot Supported
SI_TEXTURENot Supported
TIMESTAMPtimestamp without time zone
TIMESTAMP WITH LOCAL TIME ZONEtimestamp with time zone
TIMESTAMP WITH TIME ZONEtimestamp with time zone
UROWIDNot Supported
VARCHAR2character varying
VARRAYNot Supported
XDBURITYPENot Supported
XMLTYPExml

必要条件

必要条件说明
账号权限见:Oracle需要的权限

数据源添加参数说明

项名称说明
网络地址类型分为内网地址和外网地址。一个数据源可以包含一个内网地址和一个外网地址。网络地址格式为ip地址和port。默认添加的为内网地址,需要添加外网地址可以点击右侧+号
连接方式支持SID、ServiceName、TNS、PDB连接方式
认证方式支持选择不同的认证方式,例如有账号无密码或者无账号无密码
账号数据库服务端账号
密码数据库服务端密码
描述非必填项,填写描述信息,方便管理数据源
物理位置物理位置仅仅是一个标记,在管理多地域数据库时方便识别

额外参数

额外参数保留数据源的一些额外参数,一般都是数据源本身类型独有的参数。

项名称说明
logminerUserORACLE源端增量任务使用redo解析(logminer)方式时使用的账号,需要CDB类型用户
logminerPasswdORACLE源端增量任务使用redo解析(logminer)方式时使用的账号密码
logminerConnectTypeORACLE源端增量任务使用redo解析(logminer)方式时使用的连接方式,目前支持ORACLE_SID或ORACLE_SERVICE模式
logminerSidOrServiceORACLE源端增量任务使用redo解析(logminer)方式时使用的连接标识符,和logminerConnectType参数配合使用,ORACLE_SID连接方式,则填写sid,ORACLE_SERVICE连接方式,则填写service name

常用源端任务参数

参数名称说明
filterDDL设置为true时将不会同步源端产生的DDL SQL
dbHeartbeatEnable默认为false,设置为true允许CloudCanal定时向源端执行dbHeartbeatOp参数指定的SQL,从而避免源端实例没有任何变更时,增量任务会延迟的问题。
oraBuildRedoDicStrategyOracle redo 字典创建策略,INTERVAL_HOUR 表示按小时间隔创建,TIMES_PER_DAY 表示每天固定时间点创建 ,两者具体值由 oraBuildDicValue 参数确定
oraMiningSessionPauseSec使用Logminer挖掘日志间隙停顿时间,单位为秒

Tips: 所有数据源均有的通用参数配置请参考 通用参数配置

高级功能

开启心跳

CloudCanal 提供了 ORACLE 源端的心跳能力,以解决无任何数据写入时的位点延迟问题。

功能通过定时更新心跳表实现,对数据库有一定侵入,如需添加,请给到账号相应的写权限。

步骤

  1. 源 schema 中添加 __CC_HB_TAB 表(或其他名字)。

    create table "__CC_HB_TAB"
    (
    ID NUMBER(6) NOT NULL,
    GMT_MODIFIED DATE DEFAULT sysdate NOT NULL,
    PRIMARY KEY (ID)
    );

    insert into "__CC_HB_TAB" (ID, GMT_MODIFIED) VALUES (1,sysdate));
  2. 在CloudCanal上创建好任务。

  3. 任务详情>参数配置,将 dbHeartbeatEnable 设置为true,并设置相应的心跳语句。

  • 语句参考如下
     update "__CC_HB_TAB" set GMT_MODIFIED=SYSDATE where ID=1;

参考资料

链路创建示例

相关案例