---
title: "暂停和恢复 Balance Job - OceanBase 数据库 V4.4.1 | OceanBase 文档中心"
description: 暂停和恢复 Balance Job 当租户有正在执行的 Balance Job 时，又有其他紧急变更需要执行，为了防止该 Balance Job 的执行影响紧急变更，用户可以选择先暂停当前正在执行的 Balance Job，待紧急变更执行完后，再恢复该 Job，继续执行。 使用限制 暂停或恢复 Balance Job…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.4.1

# 暂停和恢复 Balance Job

更新时间：2025-11-20 18:45:14

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.4.1/zh-CN/600.manage/350.load-balancing-manage/420.suspend-or-resume-a-balance-job.md)  

当租户有正在执行的 Balance Job 时，又有其他紧急变更需要执行，为了防止该 Balance Job 的执行影响紧急变更，用户可以选择先暂停当前正在执行的 Balance Job，待紧急变更执行完后，再恢复该 Job，继续执行。

## 使用限制

- 暂停或恢复 Balance Job 的操作只能在主库（即主租户）上执行。
 - 暂停或恢复 Balance Job 时，要求该 Balance Job 的状态不能是 `CANCELING`。

## 暂停正在进行的 Balance Job

### 系统租户暂停用户租户上正在进行的 Balance Job

1. 使用 `root` 用户登录到集群的 `sys` 租户。

   连接示例如下，连接数据库时请以实际环境为准。

   ```shell
   obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -A

   ```
 2. 获取租户相关信息。

   ```shell
   obclient(root@sys)[oceanbase]> SELECT TENANT_ID, TENANT_NAME, TENANT_ROLE FROM oceanbase.DBA_OB_TENANTS WHERE tenant_name = 'mq_t1';

   ```

   查询结果的示例如下：

   ```shell
   +-------------+-----------+-------------+
   | TENANT_NAME | TENANT_ID | TENANT_ROLE |
   +-------------+-----------+-------------+
   | mq_t1       |      1002 | PRIMARY     |
   +-------------+-----------+-------------+
   1 row in set

   ```
 3. 查询视图 `CDB_OB_BALANCE_JOBS`，获取当前正在执行的任务及状态。

   ```shell
   obclient(root@sys)[oceanbase]> SELECT TENANT_ID, JOB_ID, JOB_TYPE, STATUS FROM oceanbase.CDB_OB_BALANCE_JOBS WHERE TENANT_ID = 1002;

   ```

   ```shell
   +-----------+--------+--------------------+--------+
   | TENANT_ID | JOB_ID | JOB_TYPE           | STATUS |
   +-----------+--------+--------------------+--------+
   |      1002 |  62944 | TRANSFER_PARTITION | DOING  |
   +-----------+--------+--------------------+--------+
   1 row in set

   ```

   根据查询结果，当前 Balance Job 的状态为 `DOING`，不是 `CANCELING`，可以暂停该 Job。
 4. 执行以下语句，暂停该 Balance Job。

   ```sql
   ALTER SYSTEM SUSPEND BALANCE JOB TENANT = 'tenant_name';

   ```

   示例如下：

   ```shell
   obclient(root@sys)[oceanbase]> ALTER SYSTEM SUSPEND BALANCE JOB TENANT ='mq_t1';

   ```
 5. 执行成功后，再次查询视图 `CDB_OB_BALANCE_JOBS`，可以看到当前任务的状态变为 `SUSPEND`。

   ```

   查询结果如下：

   ```shell
   +-----------+--------+--------------------+---------+
   | TENANT_ID | JOB_ID | JOB_TYPE           | STATUS  |
   +-----------+--------+--------------------+---------+
   |      1002 |  62944 | TRANSFER_PARTITION | SUSPEND |
   +-----------+--------+--------------------+---------+
   1 row in set

   ```

### 用户租户暂停本租户上正在进行的 Balance Job

1. MySQL 模式租户或 Oracle 模式租户的租户管理员连接数据库。

   ```shell
   obclient -h10.xx.xx.xx -P2883 -uroot@mysql_tenant#obdemo -p***** -A

   ```
 2. 查询视图 `DBA_OB_BALANCE_JOBS`，获取当前正在执行的任务及状态。

       MySQL 模式   Oracle 模式

   MySQL 模式下的查询语句如下：

   ```shell
   obclient(root@mysql001)[oceanbase]> SELECT JOB_ID, JOB_TYPE, STATUS FROM oceanbase.DBA_OB_BALANCE_JOBS;

   ```

   Oracle 模式下的查询语句如下：

   ```shell
   obclient(SYS@oracle001)[SYS]> SELECT JOB_ID, JOB_TYPE, STATUS FROM SYS.DBA_OB_BALANCE_JOBS;

   ```

   ```shell
   +--------+--------------------+---------+
   | JOB_ID | JOB_TYPE           | STATUS  |
   +--------+--------------------+---------+
   |  62944 | TRANSFER_PARTITION |   DOING |
   +--------+--------------------+---------+
   1 row in set

   ```

   根据查询结果，当前 Balance Job 的状态为 `DOING`，不是 `CANCELING`，可以暂停该 Job。
 3. 执行以下语句，暂停该 Balance Job。

   ```shell
   obclient> ALTER SYSTEM SUSPEND BALANCE JOB;

   ```
 4. 执行成功后，再次查询视图 `DBA_OB_BALANCE_JOBS`，可以看到当前任务的状态变为 `SUSPEND`。

   ```

   ```

   ```shell
   +--------+--------------------+---------+
   | JOB_ID | JOB_TYPE           | STATUS  |
   +--------+--------------------+---------+
   |  62944 | TRANSFER_PARTITION | SUSPEND |
   +--------+--------------------+---------+
   1 row in set

   ```

## 恢复被暂停的 Balance Job

### 系统租户恢复用户租户被暂停的 Balance Job

1. 使用 `root` 用户登录到集群的 `sys` 租户。

   ```

   查询结果如下：

   ```
 3. 查询视图 `CDB_OB_BALANCE_JOBS`，获取当前被暂停的任务及状态。

   ```

   ```

   根据查询结果，当前 Balance Job 的状态为 `SUSPEND`。
 4. 执行以下语句，恢复被暂停的 Balance Job。

   ```

   示例如下：

   ```shell
   obclient(root@sys)[oceanbase]> ALTER SYSTEM RESUME BALANCE JOB TENANT ='mq_t1';

   ```
 5. 执行成功后，再次查询视图 `CDB_OB_BALANCE_JOBS`，可以看到当前的任务状态变为 `DOING`。

   ```

   ```shell
   +-----------+--------+--------------------+---------+
   | TENANT_ID | JOB_ID | JOB_TYPE           | STATUS  |
   +-----------+--------+--------------------+---------+
   |      1002 |  62944 | TRANSFER_PARTITION |  DOING  |
   +-----------+--------+--------------------+---------+
   1 row in set

   ```

### 用户租户暂停本租户被暂停的 Balance Job

1. MySQL 模式租户或 Oracle 模式租户的租户管理员连接数据库。

   ```
 2. 查询视图 `DBA_OB_BALANCE_JOBS`，获取当前被暂停的任务及状态。

   ```

   ```

   ```

   根据查询结果，当前 Balance Job 的状态为 `SUSPEND`。
 3. 执行以下语句，恢复被暂停的 Balance Job。

   ```shell
   obclient> ALTER SYSTEM RESUME BALANCE JOB;

   ```
 4. 执行成功后，再次查询视图 `DBA_OB_BALANCE_JOBS`，可以看到当前的任务状态变为 `DOING`。

   ```

   ```

   ```

## 相关文档

- [取消 Transfer Partition](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003976598)
 - [取消 Balance Job](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003976602)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
