首批通过分布式安全可靠测评,为关键业务系统打造
接管非 obshell 部署集群
更新时间:2026-04-10 11:58:35
本文将以一个由 OCP 部署的三副本 OceanBase 集群为例,介绍如何使用 obshell 接管 OceanBase 集群。无论 OceanBase 集群处于什么状态,obshell 都可以进行接管。
部署模式
本文中三台机器的使用情况如下:
| 角色 | 机器 | 备注 |
|---|---|---|
| OBServer 节点 | 10.10.10.1 | OceanBase 数据库 zone1 |
| OBServer 节点 | 10.10.10.2 | OceanBase 数据库 zone2 |
| OBServer 节点 | 10.10.10.3 | OceanBase 数据库 zone3 |
操作步骤
步骤 1:设置密码的环境变量
如果当前 OceanBase 集群 sys 租户的 root 用户设置了密码,则需要在任一 OBServer 节点执行如下命令以便 obshell 获得密码。此处以在 10.10.10.1 节点执行为例。
[admin@test001 ~]$ export OB_ROOT_PASSWORD="pwd"
步骤 2:进行接管集群
在 步骤 1 的节点(10.10.10.1)中执行如下命令即可拉起当前 OceanBase 集群内每个 OBServer 节点所属的 obshell 并执行接管。obshell 位于 OceanBase 数据库安装目录的 bin 目录下(/home/admin/oceanbase/bin/obshell)。命令详见 obshell cluster start。
[admin@test001 ~]$ /home/admin/oceanbase/bin/obshell cluster start -a
步骤 3:检查是否接管成功
通过调用任一 obshell 的 /api/v1/ob/info 接口,当 agent_info 中 identity 为 CLUSTER AGENT 时,当前 OceanBase 集群即被 obshell 运维。接口详情可参见 查询 OceanBase 信息。
说明
obshell 会对被调用的 API 进行安全校验。因此,您在每次调用 API 之前都需先参考 API 混合加密 一文对请求进行加密,并在 curl 命令中配置加密后的请求头部(${request_headers})和请求体(${request_body})。
调用
[admin@test001 ~]$ curl -H 'X-OCS-Header:${request_headers}' -X GET http://10.10.10.1:2886/api/v1/ob/info返回
{ ....... "agent_info": [ { "ip": "10.10.10.1", "identity": "CLUSTER AGENT", ...... }, { "ip": "10.10.10.2", "identity": "CLUSTER AGENT", ...... }, { "ip": "10.10.10.3", "identity": "CLUSTER AGENT", ...... } ], ...... }
说明
当 OceanBase 集群被 obshell 运维时,即表示接管成功。