OceanBase 常用 CLI 命令与工具详解

OceanBase CE 常用 CLI 命令与工具详解:obclient 连接 sys/业务租户、OBD 集群管理(list/start/status/display/scale_out)、observer 进程运维、sys 租户管理 SQL,附真实回显。

OceanBaseOceanBaseNewSQL2026/10/07

OceanBase 常用 CLI 命令与工具详解

目标:详解 OceanBase CE 的命令行工具与运维入口,覆盖 obclient(MySQL 协议客户端,连接 sys 租户与业务租户)、OBD(obd cluster list/start/status/display/stop/scale_out 等集群管理)、observer 进程运维(启动/停止/日志)、以及 sys 租户下的管理 SQL(SHOW PARAMETERS、ALTER SYSTEM、租户/资源管理)。回显采自真实部署(OB CE 5.0.1.0,OBD 4.6.0,obclient 2.2.14)。

一、工具总览

工具作用连接/使用方式
obclientMySQL 兼容 CLI 客户端obclient -h<ip> -P2881 -u"user@tenant#cluster" -p
OBD(obd)部署/启停/扩容/日志运维工具obd cluster <cmd> <cluster>
observer数据库服务进程(bin)命令行 -z/-p/-P/-d 启动,直接由 OBD 托管
obshellobserver 附属运维工具手动起步时使用
obproxy访问代理(可选组件)MySQL 协议,默认 2883

版本实测:

$ obd --version
OceanBase Deploy: 4.6.0
REVISION: fdae0807c058820e32de5b61f449268d34ea9f5a

$ obclient --version
/u01/obclient/bin/obclient  Ver 2.2.14 Distrib 10.4.18-MariaDB, for Linux (x86_64)

二、obclient 用法

2.1 连接 sys 租户

sys 租户的登录账号为 root@sys(面向集群全局管理):

obclient -h127.0.0.1 -P2881 -uroot@sys -A -c

-A 关闭缓存提示、-c 允许 SQL 注释。连接后执行版本验证(实测回显):

mysql> select version();
+--------------------+
| version()          |
+--------------------+
| 5.7.25-OceanBase_CE-v5.0.1.0 |
+--------------------+

2.2 连接业务租户

业务租户登录形式为 user@tenant#cluster:

obclient -h172.16.10.11 -P2881 -uapp_user@app_tenant#obprod -p

租户内建库建表:

mysql> create database testdb;
mysql> use testdb;
mysql> create table t_user (id int primary key, name varchar(50));
mysql> insert into t_user values (1,'alice'),(2,'bob');
mysql> select * from t_user;
+----+-------+
| id | name  |
+----+-------+
|  1 | alice |
|  2 | bob   |
+----+-------+

2.3 非交互执行(脚本/自动化)

obclient -h127.0.0.1 -P2881 -uroot@sys -e "show databases;"
obclient -h127.0.0.1 -P2881 -uroot@sys -e "show parameters like 'memory_limit';"

exec 连续执行多条时用分号分隔,即可用于巡检脚本(配合 --skip-column-names)。

三、OBD 集群管理命令

clusters 相关全集(obd cluster --help 实测命令清单):autodeploy、check4ocp、chst、component、deploy、destroy、display、edit-config、export-to-ocp、init4env、list、prune-config、redeploy、reinstall、reload、restart、scale_in、scale_out、start、stop、takeover、tenant、upgrade。

3.1 集群列表与状态

obd cluster list

实测回显:

+----------------------------------------------------+
|                    Cluster List                    |
+-------+--------------------------+-----------------+
| Name  | Configuration Path       | Status (Cached) |
+-------+--------------------------+-----------------+
| obtest| /root/.obd/cluster/obtest| running         |
+-------+--------------------------+-----------------+
Trace ID: 6b7068f4-c216-11f1-b35b-4626a1345c00

查看详细状态(节点、zone、版本、端口、状态):

obd cluster display obtest
obd cluster status obtest      # status 别名,查看进程级健康

display 输出每节点:host、Status: active、zone、版本 5.0.1.0、mysql/rpc 端口、数据目录。

3.2 启停与生命周期

obd cluster start obtest
obd cluster stop obtest
obd cluster restart obtest       # 含 stop + start
obd cluster reload obtest        # 仅更新配置不重启进程(动态参数)
obd cluster destroy obtest       # 销毁并清数据(谨慎)

start 内含完整 bootstrap:会依次拉起每节点 observer 并做健康检查直到 active。

3.3 配置与运维

obd cluster edit-config obtest   # 交互式编辑部署 yaml
obd cluster list                 # 全部集群
obd cluster scale_out obprod -c ob-scale-out.yaml   # 扩容
obd cluster scale_in obprod -n obs4                 # 缩容
obd component list obs4 --version                   # 组件版本
obd cluster tenant create ...                        # 租户管理

日志排查:obd display-trace <trace-id>(在命令末尾的 Trace ID),obd cluster log 查看集群日志。

3.4 初始部署命令速览

obd cluster init4env                          # 初始化节点环境
obd cluster deploy obtest -c ob-mini-single.yaml   # 部署
obd cluster start obtest
obd cluster display obtest

四、observer 进程运维

4.1 启动参数

./bin/observer -z zone1 -n obtest -c 1 -p 2881 -P 2882 -d /data/ob -i lo \
  -o 'memory_limit=8G,system_memory=2G,datafile_size=8G,log_disk_size=10G,cpu_count=4,production_mode=false'
参数含义
-z所属 zone
-n集群名(cluster name)
-c集群 ID(cluster_id)
-pMySQL 协议端口(默认 2881)
-PRPC 端口(默认 2882,observer 间通信)
-d数据目录(含 store/clog/slog)
-i网卡/设备名(如 lo、eth0)
-o其他参数 k=v,...

4.2 查看运行状态与日志

ps -ef | grep observer
ss -lnpt | grep 2881          # SQL 端口监听
tail -f /home/admin/oceanbase/log/observer.log    # 主日志
tail -f /home/admin/oceanbase/log/rootservice.log # 根服务日志
tail -f /home/admin/oceanbase/log/election.log    # 选主日志

启动日志标志性输出:

[2026-10-07 06:02:01] INFO [SERVER] inner_main: observer starts(observer_version="OceanBase_CE 5.0.1.0")
[2026-10-07 06:02:02] INFO [SERVER] init: [server_start 1/18] observer init begin.
... [server_start 18/18]

4.3 停止

# 推荐通过 OBD 停止(有健康检查与状态管理)
obd cluster stop obtest
# 手动 kill(配合 cat run/observer.pid)
kill -9 $(cat /home/admin/oceanbase/run/observer.pid)

五、sys 租户管理 SQL

连接 root@sys 后高频管理语句:

5.1 参数与配置

mysql> SHOW PARAMETERS LIKE 'memory_limit';
mysql> SHOW PARAMETERS LIKE '%tcp%';
mysql> SELECT name,value,scope,edit_level FROM oceanbase.__all_virtual_parameter_stat WHERE name='cpu_count';
mysql> ALTER SYSTEM SET enable_sql_audit = false;

5.2 节点与 zone

mysql> SELECT zone, svr_ip, svr_port, status FROM oceanbase.__all_server;
mysql> ALTER SYSTEM ADD ZONE 'zone1' REGION 'hz';
mysql> ALTER SYSTEM STOP SERVER '172.16.10.11:2882';
mysql> ALTER SYSTEM FORCE STOP SERVER '172.16.10.11:2882';

5.3 租户与资源

-- 资源单元(unit)与资源池(resource pool)
mysql> CREATE RESOURCE UNIT u1 MAX_CPU 4, MEMORY_SIZE '8G', MIN_CPU 4, MAX_DISK_SIZE '64G';
mysql> CREATE RESOURCE POOL pool1 UNIT 'u1', UNIT_NUM 1, ZONE_LIST ('zone1','zone2','zone3');
-- 租户
mysql> CREATE TENANT app_tenant RESOURCE_POOL_LIST=('pool1'), PRIMARY_ZONE='zone1', LOCALITY='F@zone1,F@zone2,F@zone3';
mysql> SHOW TENANT;
mysql> ALTER TENANT app_tenant LOCALITY='F@zone1,F@zone2,F@zone3,F@zone4';
mysql> DROP TENANT app_tenant FORCE;

5.4 数据合并与副本

mysql> ALTER SYSTEM MAJOR FREEZE TENANT='app_tenant';                -- 触发合并
mysql> ALTER SYSTEM SWITCH REPLICA ROLE PRIMARY ZONE='zone2';        -- 主副本切换
mysql> SELECT * FROM oceanbase.__all_ls_replica WHERE tenant_id=1002; -- 日志流副本

六、常规排障命令速查

目标命令
集群状态obd cluster display <名>
查参数SHOW PARAMETERS LIKE '%xxx%'
版本select version(); / observer -V
监听端口ss -lnpt | grep -E '2881|2882'
主日志tail -f /home/admin/oceanbase/log/observer.log
节点列表SELECT * FROM oceanbase.__all_server;
系统表__all_sys_parameter、__all_server、__all_tenant

附:工具安装

# 仅装 obclient
yum install -y obclient          # 或 apt install -y obclient
# 仅装 OBD
yum install -y ob-deployer       # 或 pip3 install ob-deployer
OceanBase 常用 CLI 命令与工具详解 - Quzuo