集群是 111 的架构,我在 ocp 中停止了 OBServer 列表中的一个 server1 ,这个 server1 对应的是 zone1,但是 Zone 列表中还是 active 状态的为什么?
把进程kill 掉状态才会显示inactive
我想问的是,为什么 1-1-1 架构中,明明所有的 server已经不可用了,那么就证明这个区域已经挂了,但 zone 的状态还是可用的呢?这样设计有什么用意吗?还有个信息补充下我把 server_permanent_offline_time 设置成了 20s
不可用说明不能对外提供服务,observer的进程还在啊,只要进程还在状态就是显示的active ,你想变成inactive,需要把节点的进程杀掉
进程停止可能是执行 stop server命令 。但是不会杀死observer在os的进程。 status代表着是Observer心跳的,进程还在心跳就在 就是active。 但是进程被Kill就会出现inactive .
当进程还在stop server了 ,查看dba_ob_servers 的stop_service_time这个字段
正常退出,oceanbase.DBA_OB_SERVERS 表中 STOP_TIME 有值,后台查看 observer 进程不在了,在 ocp 中看到 zone1 的状态是 正常运行,这个结果是预期的吗?
我个人理解,1-1-1 的架构,一个 zone 的 observer 进程只要不在(无论正常退出或kill),zone 的状态应该为 inactive,我想求证下 ob 是什么初衷要设计成 observer 进程不在,zone1 还是 active 的
zone和observer是不同的,状态上存在这种不一致的情况,符合预期
学习了
学习一下
zone 只是描述 observer 节点 的一个属性。
按你这个假设,如果 一个 zone 有两个 observer ,一个进程不在,一个进程还在,那zone 状态应该是什么呢? 实际是 active。 只要你不 stop zone, zone 的状态就是 active。
zone 为 active 就表示 这个 zone 可以接受新的节点(add server )、或者可以做一些其他什么的操作(没有完整测试过哪些跟 zone 有关的运维操作会检查 zone 的状态)。
2-2-2 的集群,一个挂了,另一个没挂 zone 的状态是 active 这是肯定的,测试集群是 1-1-1 ,一个 zone 对应一个 observer,所以才有的疑问
看下来您指的 zone active 的状态指的是可运维状态,我觉得这个有道理,我做过测试,无论直接 kill 进程或者手动关闭进程,在启动 observer 的一瞬间 zone 的状态是运维中,最后如果 observer 无异常 zone 的状态都是 active 的
对的
你说的“运维中” 具体是什么样的?你能截图吗?
你说的不是 OCP 的“运维中”那个吧?
