看教程上面缩容的步骤,
直接修改unit_num之后,ob自动启动“rebalance”过程,将待下线机器上面的分区迁移到zone内其他机器上。
复制完成后,ob自动切换服务,并删除待下线机器上面的分区数据。
执行delete server删除机器,完成下线。
停止observer进程。
我不明白的是,ob是如何判断待下线的机器是哪一台呢?又或者这个步骤中漏掉了"alter system stop server"这样的操作?还有就是ob又如何确定分区该迁往哪个(些)server的?
看教程上面缩容的步骤,
直接修改unit_num之后,ob自动启动“rebalance”过程,将待下线机器上面的分区迁移到zone内其他机器上。
复制完成后,ob自动切换服务,并删除待下线机器上面的分区数据。
执行delete server删除机器,完成下线。
停止observer进程。
我不明白的是,ob是如何判断待下线的机器是哪一台呢?又或者这个步骤中漏掉了"alter system stop server"这样的操作?还有就是ob又如何确定分区该迁往哪个(些)server的?
可以参考下下面文档,该举例架构为2-2-2,减少unit_num缩容至1-1-1。同一个zone内一个 Unit 只能分布在一台observer上,即减少多少unit就是需要下线多少 observer。之后需执行命令,从集群中删除各 Zone 中的 1台 OBServer,架构变为1-1-1.
这边建议缩容在ocp上操作,尽量避免黑屏操作。
https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000357847