【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
- 问题现象
我搭建了 OceanBase 双节点集群(2 台机器),配置如下:
- zone1:192.168.20.99:2882(ACTIVE)
- zone2:192.168.20.100:2882(ACTIVE)已为 sys 租户设置
locality = "FULL{1}@zone1, FULL{1}@zone2",并新建了分区表tbl4(2 个分区 p0/p1)。但查询表分区位置发现:所有分区的 Leader 均固定在 zone1(192.168.20.99),zone2(192.168.20.100)仅为 READONLY Follower,未出现 Leader 分布在 zone2 的情况,不符合预期。
创建分区表SQL:
CREATE TABLE tbl4 (c1 INT, c2 INT) PARTITION BY HASH(c1) PARTITIONS 2;
- 关键环境 / 配置信息
-
集群节点信息:

-
资源池配置:
-
租户 Locality 配置:
-
表分区位置(核心异常):
- 疑问点
我已将租户 Locality 设置为F@zone1, F@zone2(实际查询为 FULL {1}@zone1/zone2),预期分区 Leader 应在 zone1/zone2 节点均衡分布,但实际所有 Leader 均在 zone1,zone2 仅为 Readonly Follower。
如何才能让分区Leader在zone1和zone2节点上均衡分布呢?
补充说明:我之前做过测试,当集群有4台机器、设置UNIT_NUM=2时,是可以正常打散数据、实现Leader均衡分布的。但我始终想不明白,为什么集群是1-1(双节点)或1-1-1(三节点)架构、设置UNIT_NUM=1时,就无法实现数据和Leader的均衡分布?难道在UNIT_NUM=1的情况下,数据和Leader就只能集中在一台机器上,无法在多个节点间均衡分配吗?



