Lunara
2026 年2 月 24 日 10:37
#1
【 使用环境 】生产环境 and 测试环境
【 OB or 其他组件 】obbinlog
【 使用版本 】4.3.5-100000262026010516
【问题描述】需要obcdc输出虚拟生成列,obbinlog v4.3.5 enable_output_virtual_generated_column参数默认为0,直接修改binlog实例的配置重启后参数又被改回0了
【复现路径】问题出现前后相关操作
【附件及日志】
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手 ] 即可召唤小助手,欢迎试用!
5 个赞
辞霜
2026 年2 月 24 日 10:45
#3
数据库为 V4.3.5 BP5 或之后的 V4.3.x 系列版本时,cdc 支持输出虚拟生成列
2 个赞
Lunara
2026 年2 月 24 日 10:51
#4
oceanbase版本:
Server version: OceanBase_CE 4.3.5.5 (r105000012025111711-c10174c0486c38f64a2222486986bbe15d5da0dc) (Built Nov 17 2025 12:20:08)
obbinlog版本:
4.3.5-100000262026010516
表结构:
binlog解析:实测binlog里没有记录虚拟列呢
2 个赞
辞霜
2026 年2 月 24 日 11:09
#5
enable_output_by_table_def这个参数也配置一下
1 个赞
Lunara
2026 年2 月 24 日 11:21
#6
enable_output_by_table_def=1 默认是1,enable_output_virtual_generated_column这个参数默认是0,怎么改成1呢,直接修改binlog实例的配置重启后又被改回0了
1 个赞
辞霜
2026 年2 月 24 日 11:32
#7
设置下
enable_output_virtual_generated_column=1
enable_output_by_table_def=1
1 个赞
Lunara
2026 年2 月 24 日 13:40
#9
在哪设置呢?我黑屏修改了,重启Binlog 实例后又被改回0了
1 个赞
辞霜
2026 年2 月 24 日 16:50
#14
拷贝实例下面的 binlog_instance.conf 中的 cdc_config.extra_obcdc_cfg 的值
Lunara
2026 年2 月 24 日 17:16
#15
“extra_obcdc_cfg”: “cluster=rtaprod02 enable_convert_timestamp_to_unix_timestamp=1 enable_output_by_table_def=1 enable_output_hidden_primary_key=0 enable_output_invisible_column=1 enable_output_trans_order_by_sql_operation=1 first_start_timestamp_us=0 initial_trx_gtid_seq=1 initial_trx_seeking_abort_timestamp=0 memory_limit=4G sort_trans_participants=1 tb_white_list=mysql3.. tenant=mysql3 working_mode=storage”,
辞霜
2026 年2 月 24 日 17:30
#16
使用这种方法修改,直接在上述示例结果上空格拼接添加,引号改为英文单引号
ALTER BINLOG INSTANCE xxxx SET EXTRA_OBCDC_CFG=‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX enable_output_virtual_generated_column=1’
Lunara
2026 年2 月 24 日 18:06
#18
老师,建议最新版的obbinlog还是应该默认打开这个参数,跟mysql binlog行为一致是不是更好一点,加个判断?不能因为老版本限制影响到新版本的发展了
本身就是作为兼容逻辑组件按理行为就该和mysql binlog一致,本身输出所有列也更符合常识一点。