【 使用环境 】生产环境 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内都有一份