oceanbase4.x非分区表保存在不同的observe上吗

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】oceanbase4.x非分区表保存在不同的observe上吗
【复现路径】问题出现前后相关操作

1 个赞

非分区表在 OceanBase 的存储分布

  • OceanBase 是分布式数据库,其数据以 Tablet(逻辑存储单元)为基本单位,存储在 OBServer 节点的 副本 中。
  • 非分区表(即没有显式分区定义的表),默认只有 一个分区(partition_id=0)。
    → 这个分区也就是 一个 Tablet

副本存储

  • 虽然是一个分区,OceanBase 仍然会把 这个 Tablet 以多副本(通常是 3 副本)形式存储在不同的 OBServer 节点上。
  • OceanBase 的 Paxos 机制 会保证这 3 个副本分布在 3 个不同 OBServer 上,分别是:
    • Leader 副本:负责读写操作。
    • Follower 副本:主要负责同步 Leader 副本的数据。

所以,非分区表虽然只有一个分区,但依然会在 3 个 OBServer 节点上各放一份副本

小结:是否分布在不同 OBServer?

结论:是的!

  • 数据副本分布在 3 个 OBServer 节点上。
  • 但是,写入请求 只会进入 Leader 副本,读请求可以通过读写分离路由到 Follower(如果启用了只读路由)。
1 个赞

谢谢

同一个zone内,非分区表只能在一台observer上,在多个zone内,非分区表的在每个zone内都有一份