请问OB在分布式环境中数据是如何存储的,每个OBServer都是完整数据吗?若不是,当某OBServer挂掉了,如何实现数据同步的?
正常情况下分布式环境中每个zone相当于一个完整副本数据一个zone可存在多台observer,当某个observer挂掉,该节点的leader副本将自动切主到其他zone上,数据同步超过永久下线时间自动补齐可参考该文档。OceanBase分布式数据库-海量数据 笔笔算数
1.如果是三个单zone单observer是一份数据。如果某OBServer挂掉了,且超过 server_permanent_offline_time时间限制会永久下线,需要把这个单zone单observer下掉。重新部署上去。
2.如果是三个单zone多observer,且primary_zone 为 RANDOM 时,ob数据是以分布式存储的(以分区形式来的,按分区的粒度自动均衡到不同的OBServer节点,打散数据)
当某个OBServer节点挂掉时:
多副本机制:ob通常会在不同的OBServer上存储数据的多个副本(通常是3个副本)。这意味着即使一个节点失败,其他节点上仍然有数据的副本。
自动故障转移:当检测到observer节点故障时,RS会自动将故障节点的数据服务转移到其他健康的节点上。
数据同步:在节点恢复后,ob会自动同步该节点上的数据,确保所有节点上的数据副本保持一致。
3 个赞
明白了,谢谢!