【 使用环境 】测试环境
【 OB or 其他组件 】ob
【 使用版本 】4.2
【问题描述】
分布式应该是每个节点存储一部分数据吗?这3个节点合起来才应该是整体的数据?是这样的吧?
我现在搭建得是1-1-1,插入一条数据后,三个节点都有这条数据,这个应该只是容灾吧,还不是分布式?如果要做分布式,需要怎么操作呢?
ob的 分布式 是 基于 表的 分区的 ,如果 表不做分区,就相当于 mysql 或 oracle 的 集中式了
表结构 加了 partition 的话,就会按照partition 进行分布式了,而且是要 三个zone 的 。要是 一个zone 也不会
有参考文档吗? 在已有数据得情况下做分区还可以吗?还是只有在空表得时候做分区呢?
首先,分布式存储,以三节点为例,每个节点都保存了表的完整数据,相当于表拥有三个副本(一主两副),表的写入只会在主副本上进行操作。如果表为分区表,相当于表的每个分区拥有三个副本。这样当一个节点出现宕机等情况,其他节点可以迅速接管。
其次,当前分区在节点上的情况还要根据primaryzone设置来判断,如果primaryzone设置为random,分区的主副本会打散在多个节点上。对已有数据表增加分区且primaryzone有做相关设置下,表的分区是可以打散存储在多个节点上的
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218086
收到,非常感谢