【 使用环境 】 测试环境
【 OB or 其他组件 】
【 使用版本 】442
【问题描述】在OCP的多集群主备模式中,在主集群无法使用的情况下,应该如何让备集群接管主集群管理的OCP呢?
每一个oceanbase集群只能被一个ocp集群管理。
在主OCP无法使用的情况下,怎么让其它OCP接管这个oceanbase集群呢?
【 使用环境 】 测试环境
【 OB or 其他组件 】
【 使用版本 】442
【问题描述】在OCP的多集群主备模式中,在主集群无法使用的情况下,应该如何让备集群接管主集群管理的OCP呢?
注意:这里不要点 “日常切换(Switchover)”,日常切换要求原主 OCP 必须在线可用;原主 OCP 已经挂死,只能执行故障接管 Failover。
此时无法执行 OCP 层面 Failover,必须手动:
config_url,解绑旧 OCP;考试场景题干明确说明:OCP 的多集群主备模式,所以标准答案是执行 OCP 集群的 Failover 故障接管,不是手动迁出接管。
config_url,解绑旧 OCP;没有配置 OCP 多集群主备时,不能做 OCP Failover。换管理端只能:解绑旧 OCP → 在新 OCP 上接管集群。
一个 OceanBase 集群同时只能被一个 OCP 管。官方也要求:先从原 OCP 迁出,或把原 OCP 停掉,再接管。
有 OBProxy 且和 OB 共主机时,顺序必须是:
move out)有主备库时:先接管主集群,再接管备集群。备集群用 OBProxy 连时,集群 ID 必填。
迁出前记下备份策略;接管后要在新 OCP 上重新配。凭据建议迁出时导出,接管后再导入。
能关就关掉旧 OCP,避免两边同时管。
obconfig_url
连到业务集群 root@sys(直连或还能用的 OBProxy):
SHOW PARAMETERS LIKE 'obconfig_url';
-- 改成新 OCP 的 Config Server 地址
ALTER SYSTEM SET obconfig_url = 'http://<新OCP地址>:<端口>/services?Action=ObRootServiceInfo&User_ID=alibaba&UID=ocpmaster&ObRegion=<集群名>';
新 OCP 的 Config URL 可在新 OCP 页面或 ocp.site.url 上确认。改完一般不用重启 Observer。
如果当时还不想绑新 OCP,也可以先把 obconfig_url 置空解绑,等接管时再由新 OCP 写入。
在新 OCP 接管集群
用 ADMIN / ORG_ADMIN 登录新 OCP
集群 → 集群列表 → 接管集群
选 直连(填 RS 地址、端口、root@sys 密码)或 OBProxy
过预检查(主机凭据、OBServer 状态)
提交,到任务中心看结果
接管时 OCP 会同步纳管对应主机;凭据不一致时,要先 添加主机 再接管。
Config URL 模式的 OBProxy 会继续用缓存 RS,不重启通常还能连,但拿不到新 RS 变化。迁到新 OCP 后,尽快把 obproxy_config_server_url 指到新 OCP,或把 OBProxy 也接管过去。