使用obcdc_tailf无法获取到OB产生的变更(控制台没有任何输出)

【 使用环境 】测试环境
【 OB or 其他组件 】obcdc_tailf
【 使用版本 】OceanBase_CE 4.2.2,使用all-in-one安装包部署OB demo,使用oceanbase-ce-cdc-4.2.2.0中bin自带的obcdc_tailf
【问题描述】想要使用obcdc_tailf执行./obcdc_tailf -f …/conf/2libobcdc.conf -o 将OB的实时变更输出到终端控制台,但是启动obcdc_tailf后在OB侧执行DML操作(insert/update/delete等),没有观察到任何输出。

【复现路径】稳定复现,截图如下:

【附件及日志】见压缩包,2libobcdc.conf为启动时所用的配置文件,libobcdc.log为日志文件
obcdc_tailf问题20240219.zip (117.1 KB)

稍等排查一下

hello,请问有什么进展吗?

您好,配置文件有问题,需要增加 tenant_endpoint,tenant_password, tenant_user。此外,obcdc 只支持用户租户,需要在用户租户下操作。

1 个赞

谢谢,确实是这个原因。想再请教一下那cluster_url、cluster_db_name、cluster_user、cluster_password这套信息又是做什么用的呢?还有rootserver_list,这些不填貌似也可以正常使用。

由于你设置了meta_data_refresh_mode=data_dict,所以不用设置 cluster相关的配置项。原因是 refresh_mode 是指schema (如表结构等)信息从哪里获取,data_dict通过日志中的数据字典解析 schema 信息,如果 refresh_mode 为online,还需要设置 cluster 相关信息 从 observer 中获得 schema信息。可以参考obcdc 的配置项说明:OceanBase分布式数据库-海量数据 笔笔算数

这两种模式有什么优劣势吗?文档里没有看到相关的描述。另外建议在文档里明确一下refresh_mode和cluster_url/tenant_endpoint的关系~

如字面描述,data_dict 模式无需向observer发rpc,配合 fetching_log_mode 参数,可以直接读归档日志。online 模式需要依赖 observer。