首批通过分布式安全可靠测评,为关键业务系统打造
取消 Balance Job
更新时间:2026-06-01 18:21:45
每个租户在同一时间只能有一个负载均衡工作(Balance Job)在运行,如果当前正在进行的 Balance Job 不符合业务需求,您可以取消本次任务。或者,如果您发起了 Transfer Partition,但是当前有正在执行的 Balance Job,导致 Transfer Partition 任务延迟调度,可以先取消当前的 Balance Job。
使用限制
取消 Balance Job 操作只能在主库(即主租户)上执行。
背景信息
每个租户在同一时间只能有一个负载均衡工作(JOB)在运行,这些负载均衡工作包括扩容、缩容、迁移均衡、分区均衡等。每个负载均衡工作会生成含多个负载均衡任务(Task),用于实现负载均衡的具体操作。取消 Balance Job 会取消该 Balance Job 下所有正在运行的 Task。
系统租户取消正在进行的 Balance Job
使用
root用户登录到集群的sys租户。连接示例如下,连接数据库时请以实际环境为准。
obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -A查询视图
CDB_OB_BALANCE_JOBS,获取当前正在执行的任务。obclient(root@sys)[oceanbase]> SELECT TENANT_ID, JOB_ID, BALANCE_STRATEGY, JOB_TYPE, STATUS FROM oceanbase.CDB_OB_BALANCE_JOBS WHERE TENANT_ID = 1002;查询结果的示例如下:
+-----------+--------+----------------------+------------+--------+ | TENANT_ID | JOB_ID | BALANCE_STRATEGY | JOB_TYPE | STATUS | +-----------+--------+----------------------+------------+--------+ | 1002 | 520683 | LS balance by shrink | LS_BALANCE | DOING | +-----------+--------+----------------------+------------+--------+ 1 row in set根据查询结果,如果确认该任务不符合预期,可以执行以下操作取消该 Balance Job。
ALTER SYSTEM CANCEL BALANCE JOB TENANT = 'tenant_name';示例如下:
obclient(root@sys)[oceanbase]> ALTER SYSTEM CANCEL BALANCE JOB TENANT ='mysql_tenant';
用户租户取消正在进行的 Balance Job
MySQL 模式租户或 Oracle 模式租户的租户管理员连接数据库。
连接示例如下,连接数据库时请以实际环境为准。
obclient -h10.xx.xx.xx -P2883 -uroot@mysql_tenant#obdemo -p***** -A查询视图
DBA_OB_BALANCE_JOBS,获取当前正在执行的任务。MySQL 模式Oracle 模式MySQL 模式下的查询语句如下:
obclient [oceanbase]> SELECT * FROM oceanbase.DBA_OB_BALANCE_JOBS;Oracle 模式下的查询语句如下:
obclient [SYS]> SELECT * FROM SYS.DBA_OB_BALANCE_JOBS;根据查询结果,如果确认不符合预期,可以执行以下操作取消该 Balance Job。
obclient> ALTER SYSTEM CANCEL BALANCE JOB;