问题现象
2F1A 集群用户租户主可用区打散(Primary Zone 从 ap-xxxxx-4;ap-xxxxx-5 调整为 ap-xxxxx-4,ap-xxxxx-5)后,表的 Leader 没有按预期均衡分布。 可以看到 dba_ob_tenants.primary_zone 显示正确。

但从下图可以看到 Leader 主要还是在 Zone ap-xxxxx-4。

从下图可以看到 Follower 主要还是在 Zone ap-xxxxx-5,即表的 Leader 没有按预期均衡分布。


关键信息
查看集群磁盘空间使用情况,发现确实达到了默认参数的磁盘上限临界点 (90%)。

查询参数 data_disk_usage_limit_percentage(数据文件最大可以写入的百分比,超过这个阈值后,禁止数据迁入)的当前值,为默认的 90%。

临时将参数 data_disk_usage_limit_percentage 调整为 95 后,transfer 任务做下去了。目前已经均衡了。后续推荐进行磁盘扩容。
问题原因
查询 cdb_ob_ls 可以看到 Zone ap-xxxxx-5 到 ap-xxxxx-4 的日志流 1003 已创建。

但新的日志流 1003 上还没有用户表的 tablet。

查询 oceanbase.__all_virtual_transfer_task,发现从日志流 1001 到 1003 的 transfer 任务报错 Wait to retry due to the last failure。

查询 oceanbase.__all_virtual_transfer_task_history,发现 transfer 任务一直在报错 -4184。

根据错误码,可知是磁盘空间满的原因。
ERROR 4184 (53100) : ChunkServer out of disk space
OceanBase 错误码:4184
错误原因:磁盘空间满。
解决方式:增加服务器以扩容,或者联系技术支持人员协助排查。
问题的风险及影响
超过数据文件最大可以写入的百分比 (data_disk_usage_limit_percentage),禁止数据迁入。
适用版本
OceanBase 数据库 V4.x 版本。
解决方法
临时将参数 data_disk_usage_limit_percentage 调整为 95,让 transfer 任务做下去。后续进行磁盘扩容。
规避方式
提前配置磁盘告警。如出现问题临时将参数 data_disk_usage_limit_percentage 调整为 95。