【 使用环境 】生产环境
【 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
只有 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版本有这个报错吗
看着问题挺复杂啊 ![]()
最新版本安装没有报错, 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变更才行
是的

