在OCP的多集群主备模式中,在主集群无法使用的情况下,应该如何让备集群接管主集群管理的OCP呢?

【 使用环境 】 测试环境
【 OB or 其他组件 】
【 使用版本 】442
【问题描述】在OCP的多集群主备模式中,在主集群无法使用的情况下,应该如何让备集群接管主集群管理的OCP呢?


每一个oceanbase集群只能被一个ocp集群管理。


在主OCP无法使用的情况下,怎么让其它OCP接管这个oceanbase集群呢?

3 个赞

操作步骤(V4.4.2,主 OCP 完全无法连通)OceanBase

  1. 登录备 OCP 集群(Follower OCP),使用 ADMIN 管理员账号
  2. 菜单:【系统管理】→【OCP 多集群模式】→【主备详情】页签
  3. 找到操作按钮:切换为主 OCP(Failover,故障接管)

:warning:注意:这里不要点 “日常切换(Switchover)”,日常切换要求原主 OCP 必须在线可用;原主 OCP 已经挂死,只能执行故障接管 Failover

  1. 确认执行 Failover,等待后台任务完成。
  2. Failover 完成后:
  • 当前备 OCP 升级为新的 Leader 主 OCP;
  • 原来归旧主 OCP 管理的全部 OceanBase 集群,自动归这个新主 OCP 管控,直接可以查看、运维、监控;
  • 旧主 OCP 恢复后,会变成 Follower 备 OCP,不允许再作为主,避免双主冲突

如果没有配置 OCP 多集群主备模式(没有做 OCP 集群间主备)

此时无法执行 OCP 层面 Failover,必须手动:

  1. 在 OB 集群 sys 租户,修改config_url,解绑旧 OCP;
  2. 在新 OCP 页面执行【接管集群】,重新纳管该 OB 集群;

考试场景题干明确说明:OCP 的多集群主备模式,所以标准答案是执行 OCP 集群的 Failover 故障接管,不是手动迁出接管。

1 个赞
  1. 在 OB 集群 sys 租户,修改config_url,解绑旧 OCP;
    那么应该要如何去修改config_url呢?
1 个赞

没有配置 OCP 多集群主备时,不能做 OCP Failover。换管理端只能:解绑旧 OCP → 在新 OCP 上接管集群。

一个 OceanBase 集群同时只能被一个 OCP 管。官方也要求:先从原 OCP 迁出,或把原 OCP 停掉,再接管。

旧 OCP 还能用:迁出再接管

有 OBProxy 且和 OB 共主机时,顺序必须是:

  1. 旧 OCP:迁出 OBProxy
  2. 旧 OCP:迁出 OceanBase(输入 move out
  3. 新 OCP:接管 OceanBase
  4. 新 OCP:接管 OBProxy

有主备库时:先接管主集群,再接管备集群。备集群用 OBProxy 连时,集群 ID 必填。

迁出前记下备份策略;接管后要在新 OCP 上重新配。凭据建议迁出时导出,接管后再导入。

旧 OCP 已经挂死:改 config_url + 接管

  1. 确认旧 OCP 不再管这个集群

能关就关掉旧 OCP,避免两边同时管。

  1. 在 OB 的 sys 租户改 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 写入。

  1. 在新 OCP 接管集群

  2. 用 ADMIN / ORG_ADMIN 登录新 OCP

  3. 集群 → 集群列表 → 接管集群

  4. 选 直连(填 RS 地址、端口、root@sys 密码)或 OBProxy

  5. 过预检查(主机凭据、OBServer 状态)

  6. 提交,到任务中心看结果

接管时 OCP 会同步纳管对应主机;凭据不一致时,要先 添加主机 再接管。

  1. 业务侧 OBProxy

Config URL 模式的 OBProxy 会继续用缓存 RS,不重启通常还能连,但拿不到新 RS 变化。迁到新 OCP 后,尽快把 obproxy_config_server_url 指到新 OCP,或把 OBProxy 也接管过去。