适用版本
OceanBase 数据库 V2.x、V3.x 版本。
问题现象
创建表组后,主副本分布不均匀。
以下图为例:租户 1006 的 Primary Zone 是“zone1,zone2,zone3”,其在 36.4 和 36.5 两台 OBServer 上明显承载了更多的 Leader 副本,主要原因是其上有更多的表组的 Leader。

问题原因
Leader 均衡策略以 Table Group 为单位进行,Table Group 相互之间没有均衡策略,互不影响,互不参考。
如果某张表没有指定 Table Group 并且是单分区表,则所有未指定 Table Group 的 table 属于同一个默认的 Table Group,这个默认的 Table Group 比较特殊,Leader 会在这个 Table Group 内部打散。
如果某张表没有指定 Table Group 并且是多分区表,则这张表本身是一个 Table Group。
对于一个 Table Group 内部:
- 如果都是单分区表,这些单分区表都会在一个 OBServer 上面。
- 如果都是多分区表,不同表的同一个索引分区的 leader 会在一个 OBServer 上面,不同分区的 leader 会在 primary_zone 的约束下打散。
- Table Group 内不存在分区表与单分区表都存在的场景。
解决方法
符合当前版本预期,Table Group 之间并没有负载均衡,所以是存在分布不均的可能,可以通过调整 Table Group 的 primary_zone 来人工干预。