大数据智能体工作台 DataBuddy Oracle 数据源

Oracle 是企业级关系型数据库,广泛应用于金融、电信、政府等行业的核心业务系统。DataBuddy 数据接入支持将 Oracle 作为来源端,覆盖离线同步、实时整库同步、分库分表同步等场景。这里说明其连接配置、能力支持范围、前提条件与常。

相关产品
大数据智能体工作台 DataBuddy 产品页,含版本规格、价格与购买入口。

二、支持的版本

类型 支持版本
Oracle 12c / 19c

三、读取能力

能力 支持情况 说明
离线同步(读 / 写) ✓ / – 支持作为离线同步任务的源端读取数据;DataBuddy 数据源仅支持接入读取,不支持写入
实时同步(读 / 写) ✓ / – 支持作为实时同步任务的源端读取整库数据变更;DataBuddy 数据源仅支持接入读取,不支持写入
分库分表同步(读 / 写) ✓ / – 支持以分库分表方式读取多个分表数据;DataBuddy 数据源仅支持接入读取,不支持写入

完整数据源能力对照参见 支持的数据源与读取能力。

五、实时同步限制(基于 LogMiner)

限制项 说明
日志保留时间 增量日志至少保留 72 小时
备库支持 仅支持 logical standby,不支持 physical standby
无主键表 无主键表无法保证 exactly-once 语义
账号限制 严禁使用 system 或 sys 账号配置数据源
DDL 风险 加列带默认值可能导致解析异常;LogMiner 可能导致 DML 与 DDL 顺序错乱
性能瓶颈 LogMiner 读取超过 5k/s 时可能出现较大延迟
RAC 模式风险 日志文件切换可能导致 LogMiner 不感知,造成数据缺失

若无法接受上述限制,建议使用 OGG (Oracle GoldenGate) 方案。

六、离线同步限制

限制项 说明
视图 支持读取视图
编码格式 仅支持 UTF8 / AL32UTF8 / AL16UTF16 / ZHS16GBK

七、支持的字段类型

完整字段类型请参见 Oracle 产品文档。

字段类型 离线读 实时读
NUMBER / INTEGER / INT / SMALLINT / NUMERIC / DECIMAL ✅ ✅
FLOAT / BINARY_FLOAT / DOUBLE PRECISION / BINARY_DOUBLE / REAL ✅ ✅
CHAR / VARCHAR / VARCHAR2 / NCHAR / NVARCHAR2 ✅ ✅
CLOB / NCLOB ✅ ✅
DATE / TIMESTAMP / TIMESTAMP WITH TIME ZONE / TIMESTAMP WITH LOCAL TIME ZONE ✅ ✅
BLOB / RAW / LONG RAW ✅ ✅
ROWID ✅ ✅
INTERVAL YEAR TO MONTH / INTERVAL DAY TO SECOND ✅ ✅
XMLTYPE ✅ ❌
BFILE ❌ ❌

八、字段类型映射(离线同步)

同步时源端字段类型会转换为 DataBuddy 内部类型(同步链路中的中间类型)。配置任务前请重点核对「备注」列标注的类型,避免精度丢失或语义变化。

源端类型 DataBuddy 内部类型 备注
NUMBER / INTEGER / INT / SMALLINT / NUMERIC / DECIMAL Double 按 BigDecimal 读取后转为双精度浮点数,超出精度范围会丢失小数精度;对精度敏感的场景建议在目标端改用 Decimal 或字符串类型
FLOAT / DOUBLE PRECISION / REAL Double 遵循 IEEE 754 浮点精度
BINARY_FLOAT / BINARY_DOUBLE String 按文本读取,与实时链路落 FLOAT / DOUBLE 不同
CHAR / VARCHAR / VARCHAR2 / NCHAR / NVARCHAR2 String –
LONG String –
CLOB / NCLOB String 按文本读取
DATE / TIMESTAMP / TIMESTAMP WITH TIME ZONE / TIMESTAMP WITH LOCAL TIME ZONE Date 均按日期时间读取,不区分时区语义
BLOB / RAW / LONG RAW Bytes 不做内容解析
ROWID / UROWID String –
INTERVAL YEAR TO MONTH / INTERVAL DAY TO SECOND String 按文本读取,不落数值
XMLTYPE String 按文本读取,不解析 XML 结构
BFILE – 不支持,任务报错并提示不支持的字段类型
上表未列出的其他类型 – 任务报错并提示不支持的字段类型

九、字段类型映射(实时同步)

实时同步(整库多表 / 分库分表)由 CDC 连接器解析源端类型并写入 TCLake。下表为自动建表时目标表实际使用的字段类型 ,配置任务前请重点核对「备注」列标注的类型。

源端类型 TCLake 目标类型 备注
CHAR / VARCHAR / VARCHAR2 STRING –
CLOB / NCLOB STRING 长度截断到 4000 字符
NUMBER DECIMAL 有精度时按 DECIMAL 保留;未指定精度时按 DECIMAL(38, 10) 建表
BINARY_FLOAT FLOAT –
BINARY_DOUBLE DOUBLE –
DATE TIMESTAMP Oracle DATE 含时分秒,落 TIMESTAMP 而非 DATE
TIMESTAMP TIMESTAMP 不带时区
TIMESTAMP WITH TIME ZONE / TIMESTAMP WITH LOCAL TIME ZONE TIMESTAMPTZ 带时区语义,与 TIMESTAMP 落点不同
BLOB / RAW STRING 二进制按字符串承载
ROWID / UROWID STRING –
INTERVAL YEAR TO MONTH / INTERVAL DAY TO SECOND LONG –

注意:说明:

十一、DML

操作 是否支持
INSERT / DELETE / UPDATE ✅

十二、DDL

操作 是否支持
新增表 / 新增列 / 删除列 / 重命名列 / 修改列类型 ✅
删除表 / 清空表 / 重命名表(RENAME TABLE) ❌

DDL 变更响应仅在增量阶段 生效;加列带默认值可能导致解析异常,LogMiner 可能导致 DML 与 DDL 顺序错乱。

十四、1. 配置账号权限

离线同步 :

CREATE USER wedata_user IDENTIFIED BY your_password;GRANT CREATE SESSION TO wedata_user;GRANT SELECT ANY TABLE TO wedata_user;

实时同步 :

CREATE USER wedata_cdc_user IDENTIFIED BY your_password DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS;GRANT CREATE SESSION, SELECT ANY TABLE, SELECT_CATALOG_ROLE TO wedata_cdc_user;GRANT ANALYZE ANY TO wedata_cdc_user;GRANT EXECUTE_CATALOG_ROLE TO wedata_cdc_user;GRANT LOGMINING TO wedata_cdc_user; — 12c 及以上版本需要GRANT EXECUTE ON DBMS_LOGMNR TO wedata_cdc_user;GRANT EXECUTE ON DBMS_LOGMNR_D TO wedata_cdc_user;– 系统视图查询权限GRANT SELECT ON V_$DATABASE TO wedata_cdc_user;GRANT SELECT ON V_$LOG TO wedata_cdc_user;GRANT SELECT ON V_$LOG_HISTORY TO wedata_cdc_user;GRANT SELECT ON V_$LOGMNR_CONTENTS TO wedata_cdc_user;GRANT SELECT ON V_$LOGMNR_LOGS TO wedata_cdc_user;GRANT SELECT ON V_$ARCHIVED_LOG TO wedata_cdc_user;GRANT SELECT ON V_$ARCHIVE_DEST_STATUS TO wedata_cdc_user;

注意:监控表字段变更时,严禁使用 system 或 sys 账号配置数据源。

十五、2. 开启日志归档(仅实时同步)

需要重启数据库,并占用磁盘空间。

sqlplus / as sysdbaALTER SYSTEM SET db_recovery_file_dest_size = 10G;ALTER SYSTEM SET db_recovery_file_dest = '/opt/oracle/oradata/recovery_area' scope=spfile;SHUTDOWN IMMEDIATE;STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;ARCHIVE LOG LIST; — 验证归档模式

十六、3. 开启补充日志(仅实时同步)

未开启会导致 UPDATE 操作下游其他列为空。

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;ALTER TABLE schema_name.table_name ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

十八、操作步骤

1. 登录 DataBuddy 控制台。

2. 在顶部切换到目标地域和 Workspace。

3. 进入 数据集成 > 数据源管理 (或 平台管理 > 数据源管理 )。

4. 点击 添加数据源 ,选择 Oracle 。

5. 填写连接配置与认证信息,详见 参数说明。

6. 点击 连通性测试 (参见 数据源连通性测试)。

7. 测试通过后点击 保存 或 保存 & 创建任务 。

十九、参数说明

参数 说明 是否必填
数据源名称 数据源在工作空间内的唯一标识 是
JDBC URL jdbc:oracle:thin:@host:port:sid 或 jdbc:oracle:thin:@//host:port/service_name 是
用户名 数据库连接账号(不允许使用 system / sys) 是
密码 数据库连接密码(支持 SSM 凭证托管) 是
数据源版本 12c / 19c 是

21、实时整库

配置项 说明
来源表范围 指定表 (仅同步选中的表,新增表需重启)/ 正则匹配 (指定库名 + 表名正则,符合规则的新增表自动接入)
读取模式 全量 + 增量 / 仅增量

22、离线单表

参数 说明
库 / Schema / 表 必填;支持指定与正则匹配
切割键 建议主键或索引列;用于并行同步
筛选条件 标准 WHERE 语法

详细任务配置参见 表到表同步 与 实时整库多表任务配置。

23、最佳实践

·账号权限最小化 :使用专用账号,避免 system / sys。

·日志保留时间 :归档日志至少保留 72 小时。

·切割键选择 :主键或索引列。

·性能考量 :LogMiner 超过 5k/s 时建议使用 OGG 方案替代。

25、Q:实时同步延迟较大?

A:LogMiner 读取超过 5k/s 时存在性能瓶颈。可优化作业并行度、减少同步表数量;高吞吐场景建议 OGG。

26、Q:加列带默认值后任务异常?

A:LogMiner 对带默认值的加列解析存在问题。建议先加列、再 UPDATE 默认值。

27、Q:RAC 环境下部分数据未同步?

A:日志文件切换可能导致 LogMiner 不感知。请增加日志保留时间,优化归档日志配置。

28、Q:UPDATE 后目标端其他列为空?

A:未开启补充日志。执行:

ALTER TABLE schema_name.table_name ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

29、Q:连接超时或被拒绝?

A:检查网络连通性、监听器状态、防火墙端口。

30、相关文档

·添加数据源连接

·数据源连通性测试

·支持的数据源与读取能力

·实时整库多表任务配置

赞 (0)
上一篇 4天前
下一篇 4天前