首批通过分布式安全可靠测评,为关键业务系统打造
使用 obd 执行接管
更新时间:2026-07-09 15:25:37
obd 目前支持接管 OceanBase 集群和 seekdb 实例,本文将分别介绍具体操作。
前提条件
待接管的 OceanBase 集群需为社区版 V4.2.1 BP4 或之后版本,且已启动过 obshell,具体确认操作可参见下文 查看 OceanBase 集群信息。
待接管的 OceanBase 集群处于正常运行状态,查看方法可参见《OceanBase 数据库》文档 检查 OBServer 状态 一文。
您已安装 V2.8.0 或之后版本的 obd,建议安装最新版本,详细信息请参考 安装 obd。
obd 所在机器与 OceanBase 集群中的节点网络连通。
接管 OceanBase 集群
接管 OceanBase 集群
[admin@obtest ~]$ obd cluster takeover test -h 10.10.10.1 -P 2881 -p ****** --ssh-user=admin --ssh-key-file=/home/admin/.ssh/id_rsa接管命令的详细介绍可参见 集群命令组 中 obd cluster takeover。
通过 obd 查看集群状态
[admin@obtest ~]$ obd cluster display test输出如下:
Get local repositories and plugins ok Open ssh connection ok Cluster status check ok Connect to observer 10.10.10.1:2881 ok Wait for observer init ok +----------------------------------------------+ | oceanbase-ce | +------------+---------+------+-------+--------+ | ip | version | port | zone | status | +------------+---------+------+-------+--------+ | 10.10.10.1 | 4.3.0.1 | 2881 | zone1 | ACTIVE | +------------+---------+------+-------+--------+ obclient -h10.10.10.1 -P2881 -uroot -p'********' -Doceanbase -A obshell program health check ok display obshell dashboard ok +-----------------------------------------------------------+ | obshell Dashboard | +---------------------------+------+---------------+--------+ | url | user | password | status | +---------------------------+------+---------------+--------+ | http://10.10.10.1:2886 | root | '********' | active | +---------------------------+------+---------------+--------+ Trace ID: 093ddc0c-039b-11ef-865a-00163e0808cc If you want to view detailed obd logs, please run: obd display-trace 093ddc0c-039b-11ef-865a-00163e0808cc
查看 OceanBase 集群信息
使用 root 用户登录待接管 OceanBase 集群的 sys 租户
[admin@obtest ~]$ obclient -h10.10.10.1 -P2883 -uroot@sys#obdemo -p -c -Doceanbase -A参数说明:
-h:提供 OceanBase 数据库连接 IP,通常是一个 ODP 地址。此处以
10.10.10.1为例,您需根据实际情况进行替换。-u:提供租户的连接账户,格式有:
用户名@租户名#集群名、集群名:租户名:用户名、集群名-租户名-用户名或者集群名.租户名.用户名。此处以root@sys#obdemo为例,您需根据实际情况进行替换。说明
- 当使用 ODP 连接 OceanBase 集群时,可以通过以下方式获取集群名:
先通过直连的方式连接 OceanBase 数据库,之后使用SHOW PARAMETERS LIKE 'cluster';命令来获取集群的名称,该命令的返回结果中VALUE的值对应 OceanBase 集群的名称。 - 如果 ODP 代理多个集群,连接时必须指定集群名;如果 ODP 只代理一个集群,连接时则不需指定集群名。
- 当使用 ODP 连接 OceanBase 集群时,可以通过以下方式获取集群名:
-P:提供 OceanBase 数据库连接端口,直连时需配置为
mysql_port值(默认为2881),通过 ODP 连接时需配置为listen_port值(默认为2883)。此处以2883为例,您需根据实际情况进行替换。-c:表示在 OBClient 运行环境中不要忽略注释。
说明
Hint 是特殊的注释,不受 -c 影响。
-A:表示在 OBClient 连接数据库时不自动获取统计信息。
-D:设置要访问的数据库的名称,可以更改为业务数据库。
查看 OceanBase 数据库版本
obclient [oceanbase]> SELECT OB_VERSION();输出如下:
+--------------+ | OB_VERSION() | +--------------+ | 4.3.0.1 | +--------------+查看 obshell 信息
obclient [oceanbase]> select * from ocs.all_agent;输出如下,能输出 obshell 信息即表示集群中已启动过 obshell:
+------------+------+---------------+----------------------+-------+--------------+-------+------------+----------+--------------------------------+------------------------------------------------------------------------------------------------------+ | ip | port | identity | version | os | architecture | zone | mysql_port | rpc_port | home_path | public_key | +------------+------+---------------+----------------------+-------+--------------+-------+------------+----------+--------------------------------+------------------------------------------------------------------------------------------------------+ | 10.10.10.1 | 2886 | CLUSTER AGENT | 4.2.3.0-102024031414 | linux | x86_64 | zone1 | 2881 | 2882 | /home/admin/oceanbase-ce | MEgCQQCoegOM/lKWUfz0ZUOg+KK+bpW7jr16xvQy7foOqZc5yB8F+8J5pNvD0pHNH+2IeG2bIMbhnUbV/B0XeqkACD/xAgMBAAE= | +------------+------+---------------+----------------------+-------+--------------+-------+------------+----------+--------------------------------+------------------------------------------------------------------------------------------------------+
相关文档
前提条件
待接管的 seekdb 实例需为 V1.2.0 或之后版本。
待接管的 seekdb 实例处于正常运行状态,可执行
sudo systemctl status seekdb命令查看。Active展示为active (running),且Status展示为seekdb is ready and running,表示 seekdb 实例处于正常运行状态。您已安装 V4.3.0 或之后版本的 obd,建议安装最新版本,详细信息请参考 安装 obd。
obd 所在机器与 seekdb 实例所在节点网络连通。
操作步骤
接管 seekdb 实例
[admin@obtest ~]$ obd seekdb takeover test -h 10.10.10.1 -P 2881 --ssh-user=root接管命令的详细介绍可参见 seekdb 命令组 中 obd seekdb takeover。
通过 obd 查看 seekdb 状态
[admin@obtest ~]$ obd seekdb display test输出如下:
Get local repositories and plugins ok Open ssh connection ok Connect to seekdb 10.10.10.1:2881 ok Wait for seekdb init ok +--------------------------------+ | seekdb | +---------------+---------+------+ | ip | version | port | +---------------+---------+------+ | 10.10.10.1 | 1.2.0.0 | 2881 | +---------------+---------+------+ obclient -h10.10.10.1 -P2881 -uroot -Doceanbase -A