obbinlog V4.0.1 + flinkcdc 同步数据失败

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】obbinlog V4 OceanBase 4.2.1.8
【 使用版本 】社区版
【问题描述】使用obbinlog创建完租户的binlog实例 ,通知下游人员用flinkcdc验证一下数据是否可以同步过去。同步任务是可以连接到2983端口,但是数据并没有推到下游flinkcdc

【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

根据您提供的信息,您正在使用 obbinlog V4.0.1 版本与 FlinkCDC 进行数据同步,但在同步过程中遇到了问题。您提到同步任务可以连接到 2983 端口,但数据并未推送到下游 FlinkCDC。

分析与建议

  1. 检查 obbinlog 配置

    • 确认 obbinlog 的配置文件是否正确设置,特别是与租户相关的配置项。
    • 检查 obbinlog 是否正确启动,并且监听在 2983 端口上。
  2. 检查 FlinkCDC 配置

    • 确认 FlinkCDC 的配置文件中,连接 obbinlog 的地址和端口是否正确。
    • 检查 FlinkCDC 的日志,查看是否有任何错误或警告信息。
  3. 检查网络连接

    • 确保 obbinlog 和 FlinkCDC 之间的网络连接是畅通的,可以使用 telnetnc 工具进行测试。
    • 检查防火墙设置,确保没有阻止 2983 端口的流量。
  4. 检查 obbinlog 日志

    • 查看 obbinlog 的日志文件,寻找任何可能的错误或异常信息。
    • 特别关注与 binlog 生成和传输相关的日志条目。
  5. 检查 OceanBase 租户配置

    • 确认 OceanBase 租户的 binlog 功能已经启用。
    • 检查租户的 binlog 格式和 binlog 行为是否符合预期。
  6. 使用 obdiag 收集诊断信息

    • 您提到可以使用 obdiag 工具收集诊断信息,建议按照提供的链接进行操作,收集详细的日志和配置信息,以便进一步分析问题。

示例命令

检查 obbinlog 配置

cat /path/to/obbinlog/config.yaml

检查 FlinkCDC 配置

cat /path/to/flinkcdc/config.yaml

测试网络连接

telnet <obbinlog_host> 2983

查看 obbinlog 日志

tail -f /path/to/obbinlog/logs/obbinlog.log

使用 obdiag 收集诊断信息

obdiag collect -t all -o /path/to/output

总结

根据您提供的信息,问题可能出在 obbinlog 的配置、FlinkCDC 的配置、网络连接或 OceanBase 租户的配置上。建议按照上述步骤逐一排查,收集详细的日志和配置信息,以便更准确地定位问题。如果问题仍然无法解决,建议联系 OceanBase 的技术支持人员获取进一步的帮助。

具体信息可参考以下文档:

  1. 6000 ~ 6999
  2. 0001 ~ 3999
  3. 9000 ~ 9499

正在上传:logproxy (2).7z…
建表语句

CREATE TABLE IF NOT EXISTS oceanbase_scts_scts_gn_cer_file (
    `id` bigint,
    `cer_mat_type_id` bigint,
    `file_id` bigint,
    `tenant_id` bigint,
    `object_version_number` bigint,
    `created_by` bigint,
    `creation_date` varchar,
    `last_updated_by` bigint,
    `last_update_date` varchar,
    PRIMARY KEY (id) NOT ENFORCED
) WITH (
    'logproxy.host'='${^^^_data_ops_custom_param_oceanbase_scts_scts_logproxy.host_^^^}',
    'server-time-zone'='+00:00',
    'scan.startup.mode'='latest-offset',
    'tenant-name'='${^^^_data_ops_custom_param_oceanbase_scts_scts_tenant-name_^^^}',
    'connect.timeout'='30 s',
    'password'='${^^^_data_ops_custom_param_oceanbase_scts_scts_password_^^^}',
    'hostname'='${^^^_data_ops_custom_param_oceanbase_scts_scts_url_cdc_^^^}',
    'connector'='oceanbase-cdc',
    'logproxy.port'='${^^^_data_ops_custom_param_oceanbase_scts_scts_logproxy.port_^^^}',
    'port'='${^^^_data_ops_custom_param_oceanbase_scts_scts_port_^^^}',
    'rootserver-list'='${^^^_data_ops_custom_param_oceanbase_scts_scts_rootserver-list_^^^}',
    'working-mode'='storage',
    'table-list'='scts_test.scts_gn_cer_file',
    'compatible-mode'='mysql',
    'jdbc.driver'='com.mysql.cj.jdbc.Driver',
    'username'='${^^^_data_ops_custom_param_oceanbase_scts_scts_username_^^^}'
);

– 查看指定租户的 Binlog 任务的实例运行状态
SHOW BINLOG INSTANCES FOR cluster.tenant;

– 查看指定租户的主 Binlog 实例的 Binlog 文件和资源指标数据
SHOW BINLOG STATUS FOR TENANT cluster.tenant;

run/${instance_name}/log 确认该目录中的文件是否包含 ERROREDIAG 信息

Binlog 应该接 Flink MySQL CDC,就用 OBProxy 对应 Binlog 任务的租户的连接,整体上把 OBProxy 连接完全当作 MySQL 连接来用。

binlog实例运行没有问题,binlog一直在刷新,binlog实例日志没有报错

我看日志一直是正常的状态
image

根据您提供的日志和截图信息,obbinlog 实例运行正常,binlog 也在持续刷新,且没有报错。然而,数据并未成功同步到下游 FlinkCDC。这表明问题可能出在 FlinkCDC 与 obbinlog 之间的数据传输环节。

分析与建议

  1. 检查 FlinkCDC 配置

    • 确认 FlinkCDC 的配置文件中,连接 obbinlog 的地址和端口是否正确。
    • 检查 FlinkCDC 的日志,查看是否有任何错误或警告信息。
  2. 检查 FlinkCDC 任务状态

    • 确认 FlinkCDC 任务是否已经启动,并且处于运行状态。
    • 检查 FlinkCDC 任务的监控指标,如数据吞吐量、延迟等,以确定任务是否正常工作。
  3. 检查网络连接

    • 确保 FlinkCDC 和 obbinlog 之间的网络连接是畅通的,可以使用 telnetnc 工具进行测试。
    • 检查防火墙设置,确保没有阻止 2983 端口的流量。
  4. 检查数据格式和编码

    • 确认 obbinlog 输出的数据格式和编码是否符合 FlinkCDC 的要求。
    • 检查 FlinkCDC 的数据解析逻辑,确保能够正确解析 obbinlog 输出的数据。
  5. 使用 obdiag 收集诊断信息

    • 您提到可以使用 obdiag 工具收集诊断信息,建议按照提供的链接进行操作,收集详细的日志和配置信息,以便进一步分析问题。

示例命令

检查 FlinkCDC 配置

cat /path/to/flinkcdc/config.yaml

检查 FlinkCDC 日志

tail -f /path/to/flinkcdc/logs/flinkcdc.log

测试网络连接

telnet <obbinlog_host> 2983

检查 FlinkCDC 任务状态

# 假设您使用的是 Flink 的 Web UI
curl http://<flink_web_ui_host>:8081/jobs/overview

使用 obdiag 收集诊断信息

obdiag collect -t all -o /path/to/output

总结

根据您提供的信息,问题可能出在 FlinkCDC 的配置、任务状态、网络连接或数据格式和编码上。建议按照上述步骤逐一排查,收集详细的日志和配置信息,以便更准确地定位问题。如果问题仍然无法解决,建议联系 OceanBase 的技术支持人员获取进一步的帮助。

具体信息可参考以下文档:

  1. 6000 ~ 6999
  2. 0001 ~ 3999
  3. 9000 ~ 9499

详情请参考:

  1. 数据格式说明
  2. 单地域多节点部署

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

老师,我们对接的下游就是flinkcdc, 是不是flinkcdc的表结构创建的有问题,表结构楼上发出来了