问题现象:
- 分区数据量达到ob_partition_max_row_count触发自动 split 分裂分区;
- 分裂过程同步触发 Mini 合并、Major 合并,磁盘 IO 100%,全租户查询 RT 上涨 10 倍;
- 分裂完成后,使用ob_check_index校验,二级索引存在缺失行、重复行;
- 手动重建索引耗时极长,大表重建会阻塞业务 DML
问题现象:
你这个是OB 分区分裂会拆分原有 SSTable,分裂瞬间未完成索引同步写入,若分裂期间后台合并压缩 SSTable,会出现索引行过滤逻辑异常;自动分裂并发不受控,短时间数百个分区同时分裂,IO 资源耗尽。 处理方案
临时关闭自动分区分裂,业务低峰手动执行 split:
ALTER SYSTEM SET ob_partition_auto_split_enable = 0;
控制分裂并发,限制同时分裂分区数量:
ALTER SYSTEM SET ob_split_concurrency = 16;
修复不一致索引(在线修复,不停业务,区分本地索引 / 全局索引)
轻量校验索引差异
CHECK INDEX table_name INDEX idx_name;
ALTER TABLE table_name REBUILD INDEX idx_name ONLINE;
架构优化:提前预分区,避免数据膨胀触发自动 split;调整ob_partition_max_row_count阈值拉大,减少分裂频次;分裂前手动暂停 major 合并。
学到了。