oceanbase删除节点

oceanabase版本社区版4.2.1:
我在obclient客户端执行删除节点,这个zone里面只有一台机器,然后报错ERROR 4734 (HY000): can not migrate out unit ‘3’, no other available servers on zone ‘zone3’, delete server not allowed,这个zone只有一台机器不能迁移的话是不能删除这个节点吗

如果你本意是替换节点,需要先将新节点加入到 zone 里再删除老节点。

删除节点的方法:

  1. zone 里只有一个节点的时候 这个节点 是无法删除的。
  2. 如果你一定要删除这个节点,需求其实就是删除这个zone。 如果要删除这个zone,得先将这个zone上的租户的资源单元 unit 删除。
  3. 进入每个租户,删除租户在该zone的资源单元。
  4. 在集群里删除这个 zone。这个节点自然就删除了。

三个zone删除zone操作很少见,除非目的就是缩容为单副本架构(失去高可用)。

明白,但是我如果一共3台机器直接删除unit的话不就是两副本吗,那3副本是怎么保证的的呢

你说的对,所以删除节点的需求就不对。

不会出现删除zone这种场景吗,缩容删除zone的时候不就是得删除节点吗,另外我看unit不支持跨zone迁移,这个为什么一个zone就不能有两个或者三个以上副本呢

1)确认一下使用的 unit ‘3’ 租户是否为单副本,如果这样去删除的话,本质就是删除租户了
2)OB的Zone的概念等同于表示:如果一个租户如果分布在这个Zone上,那么这个租户内的表或者分区就在这个zone上存在一个数据的副本,即通过Zone来完成高可用,
3)如上所说,一个zone内不支持出现相同表或者分区的多个副本
4)支持删除Zone, 但删除前,需要满足一些条件,具体可以查看OCP。