errcode=-4184 磁盘空间不足导致租户长时间处于合并状态

【 使用环境 】生产环境
【 OB or 其他组件 】 4.2.0.0 CE版本
【 使用版本 】
【问题描述】某业务租户在执行每日合并操作后,某张表scn长时间没有推进,目前排查下来原因是数据盘空间不足,在合并期间写放大,使用的sstable超过 data_disk_usage_limit_percentage = 98 阈值无法继续推进合并。现场环境客户磁盘目前无法进行扩容,datafile_size 无法调大数据文件大小,sstable最大使用限制已经调到100%,是否有其他方式可以消除合并,或者跳过本次合并,防止阻塞后续的操作。
【附件及日志】
合并99%卡住问题排查.txt (7.1 KB)

@论坛小助手 是否有解决方法。

根据您描述的情况,OceanBase集群中某个租户因磁盘空间不足而长时间处于合并(compaction)状态,并且由于已经接近设定的磁盘使用率上限(98%),直接进行扩容或调整datafile大小变得不可行。针对这种状况,首先推荐使用obdiag工具来收集当前环境下的相关信息,这将有助于进一步诊断问题的根本原因以及探索可能的解决方案。

日志采集场景: 合并问题
日志采集命令: obdiag gather scene run --scene=observer.compaction

该命令会自动搜集与合并操作相关的日志和其他重要文件,帮助我们了解具体的合并过程为何停滞不前、是否存在潜在错误信息等。

另外,为能更准确地定位问题,请您提供以下详细信息:

  1. 这个租户的数据存储量大概有多大?是否有特别大的表或者索引?
  2. 磁盘空间不足的具体情况是什么样的?是整个集群的存储都满了还是只有特定的服务器/分区满了?
  3. 在出现此问题之前,是否有执行过大量写入操作或其他可能导致数据增长的操作?
  4. 您是否尝试了任何手动干预措施来解决这个问题,比如调整compaction策略参数?如果尝试过,请告知具体采取了哪些步骤及其结果。
  5. 除了提供的错误代码(-4184),在系统日志里是否还有其他异常记录或警告?

请运行上述给出的日志采集命令,并将生成的日志压缩包发送给我们。同时,基于上面列出的问题点尽可能多地分享相关细节,这对我们来说非常重要,以便尽快找到合适的处理方案。谢谢!

附上敏捷诊断工具 obdiag 使用帮助链接

[2026-06-07 19:28:18.605450] INFO [RS] check_tablet_compaction_scn (ob_major_merge_progress_checker.cpp:481) [25077][T1002_MergeSche][T1002][YB420A042168-000605987BEBC902-0-0] [lt=127] replica not merged to target version or status not match(tenant_id=1002, current_version=1780682401315116260, global_broadcast_scn={val:1780768803189255053, v:0}, current_status=0, compaction_replica={tenant_id:1002, tablet_id:{id:1152921504606847159}, ls_id:{id:1002}, server:“192.168.33.104:2882”, snapshot_version:1780682401315116260, data_size:78448332115, required_size:80308338688, report_scn:1780682401315116260, status:0})

仅当前server:“192.168.33.104” 无法推进scn,另外两个节点无异常

1 个赞