关于 OceanBase 中 Primary Zone 与 Leader 分布的关系,以下说法正确的是?

A. Primary Zone 决定了该租户所有分区的 Leader 副本必须全部集中在同一个 Zone 内,不能跨 Zone 分布。

B. 当租户的 Primary Zone 设置为 'zone1,zone2,zone3' 时,系统会优先在 zone1 中选举 Leader,只有当 zone1 发生故障时才会切换到 zone2。

C. Primary Zone 仅影响租户的 Leader 分布偏好,不影响副本的存储位置,副本的存储位置由 Zone 的优先级决定。

D. 修改租户的 Primary Zone 后,系统会自动触发 Leader 的重新选举和迁移,但不会触发副本的物理迁移。

2 个赞

解析
Primary Zone 是租户级别的配置,用于指定该租户数据分区的 Leader 副本优先分布在哪些 Zone 中。修改 Primary Zone 后,系统会自动触发 Leader 的重新选举,将 Leader 迁移到新指定的 Zone 中。但 Primary Zone 的变化不会触发副本的物理迁移 (副本仍保留在原有 Zone 的 OBServer 上),只影响 Leader 角色的分布。

  • A 错误 :Primary Zone 可以设置为多个 Zone 的列表(如 'zone1,zone2,zone3' ),Leader 可以分布在这些 Zone 中,并非强制全部集中在同一个 Zone。
  • B 错误 :当 Primary Zone 设置为多个 Zone 时,系统会根据各 Zone 的优先级顺序负载均衡策略 将不同分区的 Leader 分散到这些 Zone 中,并非只有在 zone1 故障时才使用 zone2。
  • C 错误 :Primary Zone 影响 Leader 分布 ,而副本的存储位置由租户的副本分布策略 (如 replica_type 和 Zone 数量)决定,二者是不同维度的配置。
  • D 正确 :修改 Primary Zone 触发 Leader 选举和迁移,但不触发副本物理迁移。
3 个赞

正确答案:D

3 个赞

正确答案是:D

详细解析:

  • A 错误 :Primary Zone 并不强制所有 Leader 集中在同一个 Zone 内。如果 Primary Zone 设置为包含多个 Zone 的列表(如 zone1,zone2,zone3 ),Leader 副本会在这些 Zone 之间进行均衡分布23。
  • B 错误 :当设置为 'zone1,zone2,zone3' 时,这三个 Zone 具有相同的优先级 (使用逗号分隔),Leader 副本会均匀分布在所有指定的 Zone 上,而不是优先在 zone1 中选举。只有使用分号(; )分隔(如 'zone1;zone2;zone3' )时,才表示存在优先级,系统才会优先在 zone1 中调度 Leader13。
  • C 错误 :Primary Zone 仅描述 Leader 副本的偏好位置(即承载数据的容器),而副本的存储位置是由租户创建时指定的 Zone 列表决定的,并不是由 Primary Zone 的优先级决定的14。
  • D 正确 :根据 OceanBase 的机制,当用户变更租户的 PRIMARY_ZONE 后,负载均衡后台线程会根据新的 PRIMARY_ZONE 动态调整 LS(日志流)数量,并触发 Leader 切换(切主),以保证各 Zone 内 Leader 的分布符合新的优先级或均衡策略。这一过程仅涉及 Leader 角色的重新选举和调度,并不会触发底层数据副本的物理迁移2。
2 个赞

加油加油

2 个赞

very good

2 个赞

so good

1 个赞