首批通过分布式安全可靠测评,为关键业务系统打造
Unit 在服务器之间自动地频繁来回迁移
更新时间:2026-03-05 11:06
问题现象
在完成 Unit 缩容后,出现 Unit 在两个服务器之间不断的来回迁移的现象。
关键信息
系统行为: Unit 在两个服务器之间来回迁移。
触发条件: 磁盘占用 >80% + 同 Zone 存在没有这个要迁移 Unit 资源的 server + sys 租户
enable_rebalance = true。
问题原因
当磁盘占用超过 server_balance_critical_disk_waterlevel(默认 80%)将尝试把高水位 server 上的 Unit 迁移走,这个时候如果出现同 Zone 还存在没有这个租户 Unit 资源的空闲的服务器,同时 sys 租户的 enable_rebalance 设置为 true 时,系统就会触发 Unit 均衡机制,让这个 Unit 迁移到那个空闲服务器上。但是如果迁移到那个空闲机器上有别的租户的 Unit 资源或者本身要迁移的这个 Unit 所需的资源占用就很大,通过 CPU 和内存的加权计算负载发现这个机器负载高又会触发 Unit 均衡又迁回原来的机器,那原来的机器又会因为超过磁盘又迁回来,这样不断的来回迁移。 首先,server 的磁盘水位线超过了磁盘容量的 80%,这触发了基于磁盘大小的均衡策略;随后,在完成迁移后,又触发了基于 CPU 和内存的均衡策略,导致 Unit 被迁回原服务器。

问题的风险及影响
单元迁移频繁可能导致系统性能下降。
存在一定的稳定性风险。
适用版本
OceanBase 数据库 V3.x、V4.x 版本。
解决方法
关闭 sys 租户的
enable_rebalance配置项,以防止 Unit 因负载均衡策略而频繁迁移。调整
server_balance_critical_disk_waterlevel参数值,提高在均衡过程中对磁盘不均衡的容忍度。警告
调整
server_balance_critical_disk_waterlevel参数值有一定的风险,请勿在生产库上自行调整,请联系咨询 OceanBase 技术支持团队获得帮助。
规避方式
对于不需要多租户 Unit 均衡的私有云环境,建议关闭 sys 租户的
enable_rebalance配置。定期检查并及时删除空闲的服务器,以减少 Unit 迁移的可能性。
在进行缩容操作前,评估 Unit 的磁盘占用情况,确保不会超过 80% 的阈值,或预先调整
server_balance_critical_disk_waterlevel参数值。警告
调整
server_balance_critical_disk_waterlevel参数值有一定的风险,请勿在生产库上自行调整,请联系咨询 OceanBase 技术支持团队获得帮助。