反馈已提交

网络繁忙

OceanBase环境准备

  • 文档创建者:Wendy123456
  • 历史版本:5
  • 最近更新:Wendy123456 于 2026-07-09
  • 1. 概述

    1.1 版本

    FineDataLink 版本
    功能变动
    4.2.20.2实时管道任务和实时任务支持读取OceanBase(MySQL模式)数据源、OceanBase(Oracle模式)数据源

    1.2 功能简介

    使用实时管道任务、数据开发-实时任务同步 OceanBase 数据前,需要参考本文在数据源中进行一些配置,为后续的数据同步做好准备。

    1.3 FDL 读取变更日志原理

    6.png

    读取 OceanBase 的变更日志需要同时能访问租户 SQL 入口OBServer 内部 RPC 地址OBServer 内部 RPC 地址只有集群内网能通,但 FDL 服务器通常不在 OceanBase 的内网里,连接不上 RPC 地址。

    所以,需要在内网里放一台跳板机,上面跑一个叫 obcdc_wrapper 的程序作为中间层。

    FDL 侧实际启动的是 WEB-INF 下的本地包装脚本;包装脚本通过 SSH 在数据库内网跳板机上执行远端 obcdc_wrapper。FDL 与 wrapper 之间的 JSON-RPC + stdio 通信也复用这条 SSH 会话:

    • FDL 写入本地脚本 stdin,经 SSH 转发到远端 wrapper stdin。

    • 远端 wrapper stdout 再经 SSH 返回给本地脚本 stdout,最终被 FDL Reader 读取。

    2. 操作步骤

    2.1 前提条件

    注:云上 OceanBase 或无法在数据库内网运行 CDC 组件的环境,不适用于当前部署方案。

    环境
    要求
    数据库
    数据源
    版本业务负载类型
    OceanBase(Oracle模式)4.3.3;4.4.2.1

    Express OLTP 

    HTAP

    OLAP

    Complex OLTP

    OceanBase(MySQL模式)oceanbase4.3.3.1  企业版-MySQL实例;oceanbase4.4.2.1  企业版-MySQL实例

    跳板机

    位于 OceanBase 数据库集群内网,能访问租户 SQL 端口和 OBServer RPC 端口

    FDL 服务器

    能通过 SSH 免密登录跳板机,且 WEB-INF 目录下可放置可执行包装脚本

    obcdc_wrapper

    使用与客户 CDC 组件包兼容的二进制文件

    2.2 数据库账号与权限

    建议为 CDC 单独创建采集用户,避免直接使用高权限业务账号。

    2.2.1 OceanBase(MySQL模式)

    CREATE USER cdc_reader IDENTIFIED BY 'your_password';
    GRANT SELECT ON oceanbase.* TO cdc_reader;

    FDL 数据连接用户名按 OceanBase 租户格式填写,例如:cdc_reader@mysql_tenant

    2.2.2 OceanBase(Oracle模式)

    CREATE USER CDC_READER IDENTIFIED BY "your_password";
    GRANT CREATE SESSION TO CDC_READER;
    GRANT SELECT ANY DICTIONARY TO CDC_READER;

    FDL 数据连接用户名按 OceanBase 租户格式填写,例如:CDC_READER@oracle_tenant

    2.3 跳板机部署

    2.3.1 安装 CDC组件包

    在跳板机上安装与目标 OceanBase 版本匹配的 CDC 组件包。企业版组件包通常需要联系 OceanBase 技术支持获取。

    安装后需要确认 libobcdc.so 等依赖库可以被运行时找到。若无法直接找到,可通过系统库路径或启动脚本中的环境变量处理。

    2.3.2 放置obcdc_wrapper

    1)联系技术支持获取 obcdc_wrapper。

    2)将 obcdc_wrapper 二进制放到跳板机任意目录,例如:

    /root/obcdc_wrapper_4.4.2.1_drcmsg_x86_64

    3)赋予执行权限:

    chmod +x /root/obcdc_wrapper_4.4.2.1_drcmsg_x86_64

    4)检查版本输出:

    /root/obcdc_wrapper_4.4.2.1_drcmsg_x86_64 --version

    如果执行时报错缺少 libaio.so.1,按系统类型安装:

    # Debian / Ubuntu
    apt-get install -y libaio1

    # Ubuntu 24.04 及更高版本
    apt-get install -y libaio1t64

    # Red Hat / CentOS / Fedora
    dnf install -y libaio
    # 旧系统可使用:yum install -y libaio

    如果出现 libobcdc.so 相关报错,优先检查:

    • CDC 组件包是否与数据库版本匹配。

    • 动态库路径是否已加入系统搜索路径。

    • 当前 wrapper 是否用匹配的 SDK / 头文件版本编译。

    • 若仍不兼容,需要客户提供对应版本 CDC 组件包后重新编译 wrapper。

    2.4 FDL 服务器部署

    2.4.1 配置 SSH 免密登录

    FDL 服务器需要能免密 SSH 登录跳板机。建议使用专用系统用户和密钥,并限制该用户的操作范围。

    验证命令:

    ssh -T -p <ssh_port> <ssh_user>@<ssh_host> 'echo ok'

    2.4.2 创建包装脚本

    在 FDL 工程 WEB-INF 下创建包装脚本。推荐路径:

    WEB-INF/assist/obcdc/obcdc_wrapper.<connName>

    其中 <connName> 可以自定义,且不能重复

    未在数据连接里显式配置 wrapper 路径时,FDL 会按该默认规则查找。示例脚本:

    #!/usr/bin/env bash
    set -euo pipefail

    exec ssh \
      -T \
      -o BatchMode=yes \
      -o ConnectTimeout=8 \
      -o StrictHostKeyChecking=no \
      -o UserKnownHostsFile=/dev/null \
      -p <ssh_port> \
      <ssh_user>@<ssh_host> \
      /root/obcdc_wrapper_4.4.2.1_drcmsg_x86_64 \
      "$@"

    如果 SSH 端口为默认 22,可以去掉 -p <ssh_port> 这一行。

    赋予执行权限:

    chmod +x WEB-INF/assist/obcdc/obcdc_wrapper.<connName>

    本地验证:

    WEB-INF/assist/obcdc/obcdc_wrapper.<connName> --version

    2.5 数据连接中配置 wrapper 路径

    1)数据连接配置步骤: OceanBase(Oracle模式)数据连接OceanBase(MySQL模式)数据连接

    2)4.2.20.2 及之后版本,数据连接中新增设置项 obcdc_wrapper 路径。如下图所示:

    1783481797297259.png

    配置方式
    说明

    不配置

    默认查找 WEB-INF/assist/obcdc/obcdc_wrapper.<connName>

    相对路径

    相对于当前 FDL 工程的 WEB-INF 目录

    绝对路径

    必须位于当前 FDL 工程的 WEB-INF 目录下,否则检查项失败

    出于安全考虑,FDL 只允许执行 WEB-INF 目录下的 wrapper 或包装脚本。

    2.6 wrapper 预设配置文件

    如果需要临时调整部分 libobcdc 配置,可在 wrapper 执行文件旁放置同名 .conf 文件。

    例如执行文件为:

    WEB-INF/assist/obcdc/obcdc_wrapper.ob_oracle.sh

    则预设配置文件为:

    WEB-INF/assist/obcdc/obcdc_wrapper.ob_oracle.sh.conf

    配置文件格式与官方 libobcdc.conf 保持一致,使用 key=value:

    memory_limit=4G
    timezone=+8:00
    log_level=ALL.*:INFO;PALF.*:WARN;SHARE.SCHEMA:WARN
    max_log_file_count=20

    配置合并优先级:

    动态运行配置 > 同名 .conf 预设配置 > FDL 固定默认配置

    当前 FDL 固定默认配置:

    memory_limit=4G
    timezone=+8:00

    动态运行配置由 FDL 每次启动采集时生成,通常不建议写入 .conf 覆盖,包括:

    • tenant_endpoint

    • tenant_user

    • tenant_password

    • tb_white_list

    • tb_black_list

    • fetching_log_mode

    • output_heartbeat_interval_msec

    不要在 .conf 文件中写入数据库密码。即使写入,也会被 FDL 动态生成的连接密码覆盖;同时本地明文文件会增加安全风险。

    2.7 启动前检查清单

    检查项
    验证方式
    数据库账号权限

    在 FDL 数据连接检查中确认权限检查通过

    跳板机网络

    在跳板机上能连接 OceanBase SQL 端口,且 CDC 组件能访问内部 RPC 地址

    wrapper 可执行

    在跳板机上执行 obcdc_wrapper --version 成功

    FDL 包装脚本

    在 FDL 服务器上执行包装脚本 --version 成功。

    wrapper 路径

    数据连接中配置的路径位于 WEB-INF 下,或默认路径文件存在

    collector.check

    FDL 数据连接检查项中 wrapper 可用性检查通过

    3. 后续步骤

    创建实时管道任务、实时任务即可。数据源特性说明请参见:OceanBase(Oracle模式)数据连接OceanBase(MySQL模式)数据连接




    附件列表


    主题: 数据管道
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持