
本文转载自微信公众号【vivo 互联网技术】,作者是 vivo 互联网数据库团队 Xu Shaohui。文章总结了 vivo 目前遇到的痛点问题以及 OceanBase 提供的解决方案和实施落地。













🧐 问题:OMS 迁移任务提示 The response from the CM service is not success 。
🙋♂️ 解决方案:分析任务 connector.log 日志,提示 CM service is not success,但查看 CM 服务状态是正常的,分析同步任务的内存使用情况,发现内存严重不足,FGC 次数非常高,导致服务异常,调整 CM 内存:进入 OMS 容器,修改:
/home/admin/conf/command/start_oms_cm.sh,jvm修改为 -server -Xmx16g -Xms16g -Xmn8g
🧐 问题:增量同步 RPS 过低,加大并发后基本也就是 8000 左右,而且数据库与 OMS 并没有明显的压力。
🙋♂️ 解决方案:分析增量任务 connector.log 日志,发现增量追平全量同步位点时还一直提示有大量的 PRIMARY 冲突,但发现源和目标端的数据并没有异常,不存在数据冲突问题,最后发现是 CDC 写入重复数据的原因,进而使 OMS 无法批量写入,导致 RPS 过低。目前 OMS 版本还没有针对这个场景优化,只能加大写入并发数让 RPS 有一定的提升。
🧐 问题:索引空间放大问题,在集群空间使用率只有 50% 左右,空间充裕时创建索引时报空间不足:ERROR 4184 (53100): Server out of disk space。
🙋♂️ 解决方案:分析集群节点空间使用率,集群的节点剩余空间还有一半,空间还是比较充裕的,正常来说不应该会空间不足。从 OBServer 日志可见,索引创建时空间放大了 5.5 倍,需要 5.41TB,而目前集群只剩余 1.4TB,明显空间不足。
排序时落盘的中间结果,同时有元数据记录; 外部排序有两轮数据记录; 排序的时候,数据是解压缩解码的。









