Binlog 服务日志保留时间未生效

【 使用环境 】生产环境
【 OB or 其他组件 】OceanBase binlog服务
【 使用版本 】obbinlog-ce-4.0.1-1
【问题描述】设置binlog实例日志过期时间为7天,但实际日志数量只显示保留两个,应用每天会执行数据同步任务,定时写入数据到OB数据库中,因此想请问该问题应该怎么检查,是否有其他相关参数调整,指定保留日志个数。
# cat binlog_instance.conf
“binlog_expire_logs_seconds”: 2592000,
“binlog_expire_logs_size”:53687091200,
“max_binlog_size”: 536870912
【复现路径】问题出现前后相关操作
修改命令:
ALTER BINLOG obcluster.obtest SET BINLOG_TENANT_EXPIRE_LOGS_SECONDS =2592000;
默认日志过期时间为3天。
【附件及日志】
该问题会导致应用时不时会报 Could not find first log file name in binary log index file

2 个赞

只有 BINLOG_EXPIRE_LOGS_SECONDS,BINLOG_EXPIRE_LOGS_SIZE 这两个参数控制binlog过期,是不是这3天就生成了2个binlog呢?

另外 4.0.1-1 这个版本太老了,建议升级到最新版本

是的,不管应用写入量多大,binlog日志只会保留两个,但是binlog编号会变,是在往前推进的。

客户环境是arm架构的服务器,麒麟v10系统,安装新版本会提示报jemalloc: Unsupported system page size

部署binlog 4.2.10-ce版本有这个报错吗

看着问题挺复杂啊 :joy:

最新版本安装没有报错, BINLOG_EXPIRE_LOGS_SECONDS,BINLOG_EXPIRE_LOGS_SIZE 两个参数是不是只能通过alter修改,不能直接调整配置文件。我发现每次重启oblobproxy服务,就会将配置项重置。

jemalloc: Unsupported system page size

错误原因:

该问题为Binlog在ARM平台的制品rpm包存在的缺陷,具体解释如下:

jemalloc默认是4KB编译的,并且采用了静态编译 ,所以在PAGESIZE=64KB的机器上logproxy进程无法启动,而ARM64上最常见的内存PAGESIZE均为64KB 。相关官方资料链接:Make `--with-lg-page=16` the default option on ARM64 architecture · Issue #2639 · jemalloc/jemalloc · GitHub

修复版本:

  • Binlog V4.2.8

你的意思是通过alter修改 重启后会重置?

我观察了下是不能直接修改配置文件,只能通过ALTER变更才行

是的