OB社区版4.3.5 obbinlog和4.2.10 obbinlog手动升级版本后虚拟生成列记录不一样问题

部署老版本4.2.10 obbinlog(对应observer4.5.5.5)手动升级cdc包后就默认启用了virtual_generated,新部署4.3.5 obbinlog(对应observer4.5.5.5)后反而没启用virtual_generated,和官网文档上说明不符


https://www.oceanbase.com/docs/common-oblogproxy-doc-1000000004400508

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002016192

4.3.5 obbinlog部署后未启用virtual_generated


某租户开启binlog服务后,binlog instance实例里enable_output_virtual_generated_column 为0****,enable_output_by_table_def为1

[root@xxxxx-ob-c02 run]# cd /data/binlogservice/run/ &&  egrep -r 'enable_output_virtual_generated_column' ./*/etc/* &&  egrep -r 'enable_output_by_table_def' ./*/etc/*
enable_output_virtual_generated_column=0
enable_output_by_table_def=1

4.2.10 obbinlog部署手动升级cdc包后默认启用virtual_generated


某租户开启binlog服务后,binlog instance实例里未配置enable_output_virtual_generated_column和enable_output_by_table_def

[root@xxxxx-ob-c02 run]# cd /data/binlogservice/run/ &&  egrep -r 'enable_output_virtual_generated_column' ./*/etc/* &&  egrep -r 'enable_output_by_table_def' ./*/etc/*
[root@xxxxx-ob-c02 run]# 

手动升级cdc包到4.3.5.5,重启binlog服务

wget  https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/observer/v4.3.5_CE_BP5/oceanbase-ce-cdc-4.3.5.5-105000012025111711.el7.x86_64.rpm

rpm2cpio oceanbase-ce-cdc-4.3.5.5-105000012025111711.el7.x86_64.rpm | cpio -div

sudo cp -av /data/binlogservice/obcdc/obcdc-ce-4.3.5.x-access/  /data/binlogservice/obcdc/obcdc-ce-4.3.5.x-access-bak

sudo rm -f /data/binlogservice/obcdc/obcdc-ce-4.3.5.x-access/libobcdc.so*
sudo cp -av ./home/admin/oceanbase/lib64/libobcdc.so*  /data/binlogservice/obcdc/obcdc-ce-4.3.5.x-access
ps -ef | egrep -i 'binlog|logproxy'
root      187875  187867  3 17:34 pts/0    00:00:01 ./bin/logproxy -f ./conf/conf.json
root      188524  187875 39 17:35 pts/0    00:00:03 ./binlog_instance ./run/ygc2oegg3o binlog_instance.conf 8100

发现就默认开启了enable_output_virtual_generated_column和enable_output_by_table_def

[root@xxxxx-ob-c02 binlogservice]# cd /data/binlogservice/run/ &&  egrep -r 'enable_output_virtual_generated_column' ./*/etc/* &&  egrep -r 'enable_output_by_table_def' ./*/etc/*
enable_output_virtual_generated_column=1
enable_output_by_table_def=1

相关帖子:

6 个赞

@论坛小助手

4 个赞

根据您提供的信息,关于 OB 社区版 4.3.5 和 4.2.10 obbinlog 手动升级版本后虚拟生成列记录不一样的问题,可以总结如下:

  1. 官方文档说明

    • 根据官方文档,OB 社区版 4.3.5 中 enable_output_virtual_generated_column 参数默认值为 0。这意味着默认情况下,4.3.5 版本的 obbinlog 不会输出虚拟生成列。
    • 而在 4.2.10 版本中,手动升级 cdc 包后,默认启用了 enable_output_virtual_generated_column 参数,导致输出虚拟生成列。
  2. 问题分析

    • 在 4.3.5 版本中,即使手动修改 enable_output_virtual_generated_column 参数为 1,重启后参数会被重置为 0。这可能是由于 4.3.5 版本的 obbinlog 在启动时会重新加载默认配置,覆盖了手动修改的配置。
    • 4.2.10 版本在手动升级 cdc 包后,默认启用了 enable_output_virtual_generated_column 参数,这是因为 4.2.10 版本的 cdc 包中可能包含了一个默认启用该参数的配置文件。
  3. 解决方案

    • 如果您希望在 4.3.5 版本中启用虚拟生成列的输出,可以在配置文件中明确设置 enable_output_virtual_generated_column 参数为 1,并确保配置文件不会被覆盖。具体步骤如下:
      1. 找到 obbinlog 实例的配置文件,通常位于 /data/binlogservice/run/<instance_name>/etc/ 目录下。
      2. 编辑配置文件,添加或修改以下内容:
        enable_output_virtual_generated_column=1
        enable_output_by_table_def=1
        
      3. 重启 obbinlog 服务,确保配置生效。
  4. 注意事项

    • 确保配置文件的路径正确,并且具有适当的权限。
    • 如果配置文件仍然被覆盖,请检查是否有其他脚本或服务在启动时重新生成配置文件。

希望这些信息对您有所帮助。如果您还有其他问题,请随时联系官方技术支持。

检索到的文档如下:

  1. 配置文件说明
  2. 使用命令行部署 OCP Express
  3. 扩容与组件变更
4 个赞

学习了

4 个赞

这个是预期内了,为确保稳定性升级不会修改参数值。
2.10版本默认是1

5 个赞

支持一下

4 个赞

看obcdc的文档介绍,是否输出虚拟生成列是4.3.5.5版本cdc引入的,obbinlog 4.2.10自身带的4.3.5 obcdc版本看文档应该是4.3.5.3,按理是不是不会有这虚拟生成参数了,手动把obbinlog 4.2.10的obcdc升级到4.3.5.5后才引入这参数


4 个赞

厉害了

4 个赞


上面截图默认为1的是4210版本的。并不是升级后引入了这个参数
具体为什么4210就存在这个参数了这边问一下

4 个赞

支持一下

3 个赞

差异粒度太小了

2 个赞

:+1:

1 个赞