---
title: "手动触发分区均衡 - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: 手动触发分区均衡 除了配置定时分区均衡任务，也可以通过手动调用 DBMS_BALANCE 系统包中的 TRIGGER_PARTITION_BALANCE 子程序来触发一次分区均衡。 使用限制 仅用户租户支持手动触发分区均衡，sys 租户不支持手动触发分区均衡。 注意事项 当系统中正在进行其他均衡任务时，不能手动触发分…
---
切换语言

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

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

# 手动触发分区均衡

更新时间：2026-03-23 13:12:19

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/600.manage/350.load-balancing-manage/600.partition-balance-management/200.manually-trigger-a-partition-balancing-task.md)  

除了配置定时分区均衡任务，也可以通过手动调用 `DBMS_BALANCE` 系统包中的 `TRIGGER_PARTITION_BALANCE` 子程序来触发一次分区均衡。

## 使用限制

仅用户租户支持手动触发分区均衡，sys 租户不支持手动触发分区均衡。

## 注意事项

- 当系统中正在进行其他均衡任务时，不能手动触发分区均衡任务，需要等待当前均衡任务完成后再执行手动触发分区均衡的操作。

  sys 租户可以通过视图 [CDB_OB_BALANCE_JOBS](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004477590) 查看指定租户是否有其他正在进行的均衡任务；用户租户可以通过 [DBA_OB_BALANCE_JOBS](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004478303) 视图查看是否有正在进行的其他均衡任务。
 - 手动触发分区均衡前，需要确认租户级配置项 `enable_rebalance` 和 `enable_transfer` 的值均为 `True`。如果其中任意一个配置项的值不为 `True`，则手动触发分区均衡的命令将会执行失败。
 - 如果当前租户的分区已达到均衡，则系统会提示 `partitions are already balanced, no need to trigger partition balance` 的错误信息。

## 手动触发一次分区均衡

1. 租户管理员登录集群的 MySQL 租户或 Oracle 租户。

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

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

   ```
 2. 调用 `DBMS_BALANCE` 系统包中的 `TRIGGER_PARTITION_BALANCE` 子程序，触发一次分区均衡。

       MySQL 模式   Oracle 模式

   MySQL 模式的语句如下：

   ```sql
   CALL DBMS_BALANCE.TRIGGER_PARTITION_BALANCE(balance_timeout);

   ```

   其中，`balance_timeout` 用于控制后台分区均衡任务执行的超时时间，单位为秒。如果不指定该值，则表示后台分区均衡任务包括手动触发的和定时触发的分区均衡任务均无超时时间，一直执行，直到任务执行完成。

   示例如下：

      - 触发一次分区均衡，且后台分区均衡任务无超时时间。

       ```shell
       obclient [oceanbase]> CALL DBMS_BALANCE.TRIGGER_PARTITION_BALANCE();

       ```
      - 触发一次分区均衡，且后台分区均衡任务的超时时间为 7200 秒。

       ```shell
       obclient [oceanbase]> CALL DBMS_BALANCE.TRIGGER_PARTITION_BALANCE(7200);

       ```

   有关 `DBMS_BALANCE` 系统包中 `TRIGGER_PARTITION_BALANCE` 子程序的详细介绍，参见 [TRIGGER_PARTITION_BALANCE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479807)。

   Oracle 模式的语句如下：

   ```sql
   BEGIN
       DBMS_BALANCE.TRIGGER_PARTITION_BALANCE(balance_timeout);
   END;

   ```

   示例如下：

       ```shell
       obclient [SYS]> DELIMITER //

       ```

       ```shell
       obclient [SYS]> BEGIN
           DBMS_BALANCE.TRIGGER_PARTITION_BALANCE();
       END;//

       ```

       ```shell
       obclient [SYS]> DELIMITER ;

       ```

       ```shell
       obclient [SYS]> BEGIN
           DBMS_BALANCE.TRIGGER_PARTITION_BALANCE(7200);
       END;//

       ```

       ```

   有关 `DBMS_BALANCE` 系统包中 `TRIGGER_PARTITION_BALANCE` 子程序的详细介绍，参见 [TRIGGER_PARTITION_BALANCE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479993)。

## 后续操作

手动触发分区均衡后，实际的分区转移将由后台均衡任务异步执行。用户可以通过视图查看分区均衡任务的执行过程，具体操作参见 [查看后台的分区均衡任务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476017)。

## 相关文档

[查看后台的分区均衡任务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476017)

 上一篇 下一篇 ![有帮助](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) 咨询热线
