机器扩容进度如何查询?
查询 DBA_OB_SERVERS,主要观察 STATUS 及 START_SERVICE_TIME 字段,当 STATUS 为 ACTIVE 以及 START_SERVICE_TIME 为有效值,则表示节点可以对外提供服务,START_SERVICE_TIME 的值是对外提供服务的时间点,语句如下:
-- sys 租户有查询 OceanBase 库的权限的用户都可以,比如 root 用户
obclient(root@sys)[(none)]> select * from oceanbase.dba_ob_servers order by zone;
+----------------+----------+------+-------+----------+-----------------+--------+----------------------------+-----------+-----------------------+----------------------------+----------------------------+-------------------------------------------------------------------------------------------+-------------------+
| SVR_IP | SVR_PORT | ID | ZONE | SQL_PORT | WITH_ROOTSERVER | STATUS | START_SERVICE_TIME | STOP_TIME | BLOCK_MIGRATE_IN_TIME | CREATE_TIME | MODIFY_TIME | BUILD_VERSION | LAST_OFFLINE_TIME |
+----------------+----------+------+-------+----------+-----------------+--------+----------------------------+-----------+-----------------------+----------------------------+----------------------------+-------------------------------------------------------------------------------------------+-------------------+
| xxx.xx.xxx.xxx | 2882 | 1 | zone1 | 2881 | YES | ACTIVE | 2025-12-29 15:41:16.744016 | NULL | NULL | 2025-12-29 15:41:11.439245 | 2025-12-29 15:41:18.390862 | 4.3.5.5_105000212025111617-d80d6bc14b5cac50896d7fc5c6d317ae116da8f8(Nov 16 2025 17:52:45) | NULL |
+----------------+----------+------+-------+----------+-----------------+--------+----------------------------+-----------+-----------------------+----------------------------+----------------------------+-------------------------------------------------------------------------------------------+-------------------+
1 row in set (0.003 sec)
租户扩容进度如何查询?
这里主要是查询副本的均衡进度,详情参见:OceanBase 数据库 V4.2 如何查询副本均衡进度。
也使用如下 SQL 多次查看 Leader 分区所在的位置及数量及其变化情况。
select tenant_id, zone, svr_ip, count(*)
from oceanbase.cdb_ob_table_locations
where table_type = 'user table'
group by tenant_id, zone, svr_ip;
扩容建议使用 OCP 操作,详情参见:扩容 OceanBase 集群及租户。
OBServer 由单节点扩展为多节点集群后,业务系统的连接字符串需要修改吗?如何修改?
生产上业务系统一般通过 OBProxy 连接 OceanBase 数据库而不是直连,通常的系统架构如下。


可以使用多个 OBProxy,OBProxy 前面架设 F5 等负载均衡器,这样应用可以不用修改连接字符串了。
如何安全缩容?如何查看缩容进度?
当集群中的资源有富余,或业务流量下降时,可以通过缩减租户的 UNIT 规格或 UNIT 数量来减少 OBServer 的资源占用,并通过删除 OBServer 来实现集群的弹性缩容。这些指标可以通过 OCP 上的性能监控,数据库性能,主机性能,OBServer 性能观察,通过自定义时间分析和历史数据形成对比。
进行租户缩容前,建议进行一轮合并以便释放租户正在使用的内存。
缩容租户可能涉及到副本的迁移,耗时可能较长,缩容进度查询:
OceanBase 数据库 V4.0 及之后版本查询租户缩容任务,JOB_STATUS 为 INPROGRESS 表示任务正在进行中。
SELECT TENANT_ID, JOB_ID, JOB_TYPE, JOB_STATUS, PROGRESS
FROM oceanbase.DBA_OB_TENANT_JOBS
WHERE JOB_TYPE ='SHRINK_RESOURCE_POOL_UNIT_NUM'
ORDERBY JOB_ID DESC;
缩容建议使用 OCP 操作,详情参见:缩容 OceanBase 集群及租户。
DEMO 集群(127.0.0.1)是否可以扩容?
DEMO 集群不能直接添加新节点,不支持扩容,可以先部署新集群,然后使用 OMS 将数据迁移过去。
如何确认请求是否落在了新扩容的节点上?
运行如下语句可以查看集群 SQL 请求流量是否均衡。
SELECT/*+ PARALLEL(15)*/t2.zone, t1.svr_ip, COUNT(*) AS QPS,
AVG(t1.elapsed_time), AVG(t1.queue_time)
FROM oceanbase.GV$OB_SQL_AUDIT t1, oceanbase.__all_server t2
WHERE t1.svr_ip = t2.svr_ip AND IS_EXECUTOR_RPC = 0
AND request_time > (time_to_usec(now()) - 1000000)
AND request_time < time_to_usec(now())
GROUP BY t1.svr_ip ORDER BY t2.zone;
+--------+----------------+------+----------------------+--------------------+
| zone | svr_ip | QPS | avg(t1.elapsed_time) | avg(t1.queue_time) |
+--------+----------------+------+----------------------+--------------------+
| ET2_1 | xx.xx.xx.xx | 379 | 5067.3034 | 33.7071 |
| ET2_1 | xx.xx.xx.xx | 507 | 5784.1538 | 12.5878 |
| ET2_1 | xx.xx.xx.xx | 370 | 5958.2162 | 10.9811 |
| ET2_1 | xx.xx.xx.xx | 356 | 5730.9972 | 39.4185 |
| ET2_1 | xx.xx.xx.xx | 369 | 5851.7886 | 64.9621 |
| EU13_2 | xx.xx.xx.xx | 354 | 6182.6384 | 11.3107 |
| EU13_2 | xx.xx.xx.xx | 349 | 5881.3209 | 10.7393 |
| EU13_2 | xx.xx.xx.xx | 347 | 5936.0144 | 11.9049 |
| EU13_2 | xx.xx.xx.xx | 390 | 5988.4846 | 12.0487 |
| EU13_3 | xx.xx.xx.xx | 284 | 5657.2218 | 11.7993 |
| EU13_3 | xx.xx.xx.xx | 372 | 5360.6989 | 11.6290 |
| EU13_3 | xx.xx.xx.xx | 416 | 4154.2861 | 12.2524 |
| EU13_3 | xx.xx.xx.xx | 446 | 6487.6009 | 24.5112 |
| EU13_3 | xx.xx.xx.xx | 364 | 5444.4203 | 12.3462 |
+--------+----------------+------+----------------------+--------------------+
适用版本
OceanBase 数据库社区版 V4.x。