首批通过分布式安全可靠测评,为关键业务系统打造
OCP 机房迁移
更新时间:2026-04-14 15:11:03
本节为您介绍如何在 OCP 中进行机房迁移。
应用场景
在 OCP 中进行机房迁移时,需按标准顺序迁出和接管 OceanBase、OBProxy。
前提条件
- 请确保当前登录 OCP 的用户为 ADMIN 角色或 ORG_ADMIN 角色。
- 待迁出的 OBProxy 集群为 RUNNING状态。
- 待迁出的 OceanBase 集群需处于 STOPPED、RUNNING 或 UNAVAILABLE 状态。
- 待接管的 OceanBase 集群中所有 OBServer 节点都正常运行。
- 待接管的 OceanBase 集群内的租户服务名与系统内现存服务名均需保持唯一。关于服务名的更多介绍,可参见 管理服务名。
- 待接管的 OBProxy 所在主机上有且仅有这一个 obproxy 进程。
- 待接管的 OBProxy 所在主机已添加到 OCP。
- 当前 OBProxy 集群为 V4.0 及以上版本时,仅支持接管 V4.0.0 及以上版本的 OBProxy。
- 当前 OBProxy 集群为 V3.x 及以下版本时,仅支持接管 V1.8 以上、V4.0.0 以下版本的 OBProxy。
- 若 OceanBase 集群已配置仲裁服务,在执行接管前,请先迁出该仲裁服务并将其接管到新 OCP 中,详情可参考 迁出仲裁服务、接管仲裁服务。
技术原理
当机器同时部署 OceanBase、OBProxy 时,单独迁出 OceanBase 集群或者 OBProxy 集群都会导致对应的主机在原 OCP 上无法进行运维操作,会存在一个主机同时被多个 OCP 管控的情况。因此,迁出和接管 OceanBase、OBProxy 的最佳顺序为:迁出 OBProxy 集群 > 迁出 OceanBase 集群 > 接管 OceanBase 集群 > 接管 OBProxy 集群。
- 如果先迁出 OceanBase,OCP 的 Config Server 服务不会返回该 OceanBase 集群信息,可能导致业务应用与 OceanBase 断连。
- 先迁出 OBProxy,OBProxy 再次访问 Config Server 会报错,但会使用缓存的 RS List 访问 OceanBase 集群,此时业务应用与 OceanBase 不会断连。
- 由于接管 OBProxy 集群时会自动添加 OceanBase 的连接信息,如果目标 OceanBase 集群不被 OCP 管理,则会报错,因此需要先接管 OceanBase,再接管 OBProxy。
操作步骤
步骤一:迁出 OBProxy 集群
在 OBProxy 集群总览页面中选择需要迁出的 OBProxy 集群,进入该集群的概览页面。
单击右上角 ... 按钮,选择 迁出OBProxy 集群。
在对话框中确认如下信息,并提交迁出 OBProxy 集群的运维任务。
若待迁出的 OBProxy 集群关联了 OBLB 或 SLB 实例,对话框中会展示关联的负载均衡器实例信息。若希望接管时继续使用这些负载均衡器实例,单击 导出,OCP 会在本地保存一份负载均衡实例配置文件,接管时可将此文件导入使用。
对话框中会展示涉及到此次迁出动作的所有主机列表,若主机没有部署其它服务,建议勾选主机,即在迁出 OBProxy 后一并删除主机。如果删除的主机为离线状态,则需要在 OCP 执行迁出任务后,手动登录到对应主机上卸载 OCP Agent。
步骤二:迁出 OceanBase 集群
在集群总览页选择需要迁出的集群,进入该集群的概览页面。
单击右上角 ... 按钮,选择 迁出集群。
在对话框中确认如下信息,并提交迁出 OceanBase 集群的运维任务。
导出凭据:配置完凭据文件加密密钥后,单击 导出凭据,系统会导出待迁出集群上的凭据信息。当集群被接管至目标 OCP 后,可通过 导入凭据 功能批量导入集群凭据信息。
迁出 OceanBase 集群时,选择是否保留集群信息。若选择保留集群信息,待集群迁出成功后,集群列表中会保留展示该集群信息(包括:集群名:集群ID、状态、OceanBase 版本号、创建时间,其余列仅展示为
-。),但不参与除删除集群之外的任何运维操作,也不可进入该集群的概览页面。
步骤三:接管 OceanBase 集群
在集群列表总览页面,单击右上角 接管集群。
连接集群,支持 直连 和 OBProxy 连接两种方式。
连接集群成功后,进入接管检查:
检查通过时,若存在某些 OBServer 对应的主机未被 OCP 管理,OCP 需要同步接管这些主机,您需先为这些主机选择凭据,以实现 OCP 的统一管理。
检查不通过时,根据页面提示修改 OBServer 节点配置,并进行重新检查。
任务提交后,您可在提交结果页面查看任务执行进度或返回集群概览页面。
步骤四:接管 OBProxy 集群
在 OBProxy 集群总览页面,选择待接管的 OBProxy 集群,进入 OBProxy 集群概览页面。
单击右上方 接管 OBProxy,进入到接管 OBProxy 页面。
在接管 OBProxy 页面填充如下信息。
root@proxysys 密码(可选)。
主机信息:依次选择待接管的 OBProxy 的机房、机型、IP、SQL 端口信息。
负载均衡管理:若希望将待接管的 OBProxy 使用的 OBLB、SLB 实例录入到目标 OCP 中,则需要将对应的负载均衡实例信息填充在此处。您也可以选择导入已有的负载均衡实例配置文件,文件来自在 OCP 迁出 OBProxy 集群时导出的负载均衡实例数据文件。
注意
- 此处填写的信息仅表示录入已使用的负载均衡实例信息,不是新创建负载均衡实例。
- 要求录入的负载均衡实例对应的 OBProxy 全部在此次待接管 OBProxy 范围中。
信息录入完毕后,单击 下一步 进入到预检查结果展示页面。
当待接管 OBProxy 与目标 OBProxy 集群参数不一致时,将无法接管,此时需要同意将待接管 OBProxy 参数修改为与目标 OBProxy 集群参数一致。若有需要重启生效的参数,在接管过程中会对 OBProxy 进行重启。单击 同意修改,并在弹出的对话框输入 confirm,提交接管 OBProxy 任务。任务运行完毕,代表 OBProxy 接管成功。
常见问题
迁出 OBProxy 后,上层业务是否会断连?
一般情况下不会。迁出 OBProxy 动作不会改变负载均衡器与 OBProxy、OBProxy 与 OBServer 之间的关联关系,因此不会使上层业务断连。
但存在一种特殊情况会导致断连:Config URL 模式的 OBProxy 从 OCP 中迁出后,再次访问 Config URL 会报错,会使用本地缓存信息访问 OceanBase,因此只要不重启 OBProxy 就不会断连。但 OBProxy 将不能再从原 Config URL 中获取最新的 OBServer RS 信息,若此时 OBServer 的 RS 信息发生了变化,将导致 OBProxy 路由错误。此情况下建议在迁出 OBProxy 后,尽快接管到目标 OCP 中;若无接管到 OCP 的计划,建议为 OBProxy 修改合适的 Config Server URL。
接管预检查时报错,报错内容为 “无法获取 obproxy 可连接集群信息。当前 obproxy 自启动后是否还未访问过 OceanBase 集群” ?
如报错信息所述,需要通过当前报错的 OBProxy 连接 OceanBase 集群后,再重新进行预检查;此时也能说明当前 OBProxy 还未被使用过,可以执行删除并重建的流程。
在准备目标 OBProxy 集群时,建立好空集群后,无法将一个 V4.x 的 OceanBase 集群添加到可连接 OceanBase 集群中,如何处理?
此种情况是因为 OCP 进行了限制,即空 OBProxy 集群不允许关联 V4.x 的可连接 OceanBase 集群。此时可以为空集群添加一个 V4.x 版本的 OBProxy,然后正常执行接管流程(添加可连接 OceanBase 集群 > 接管 OBProxy),接管流程结束后,若不需要则可删除最初临时添加的 OBProxy。
接管预检查时报错,报错内容为 "lb 实例 ip:port 所对应的 obproxy ip1,ip2,ip3 未全部包含在此次接管的范围中"
此问题说明接管预检查时填写的负载均衡实例 ip:port 所对应的 OBProxy 并未全部在此次接管的范围中,此时可以考虑将负载均衡实例对应的 OBProxy 全部在同一批次中进行接管,或接管时不填写该负载均衡实例信息,即不把这个负载均衡实例录入到新 OCP。