---
title: "设置表组权重 - OceanBase 数据库 V4.4.2 | OceanBase 文档中心"
description: "设置表组权重 可以通过 PL 系统包 DBMS_BALANCE 为 Sharding = &#x27;NONE&#x27; 的表组设置权重，使不同的表组按照权重分布，以实现自动聚合到表组的 Database 按权重分布。 使用限制及注意事项 当前仅 MySQL 模式支持设置表组权重。 在 V4.4.2 版本中： 对于 V4.4.2 BP…"
---
切换语言

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

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

# 设置表组权重

更新时间：2026-07-01 10:41:44

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.4.2/zh-CN/600.manage/350.load-balancing-manage/430.tablegroup-weight-management/200.set-the-tablegroup-weight.md)  

可以通过 PL 系统包 `DBMS_BALANCE` 为 `Sharding = 'NONE'` 的表组设置权重，使不同的表组按照权重分布，以实现自动聚合到表组的 Database 按权重分布。

## 使用限制及注意事项

- 当前仅 MySQL 模式支持设置表组权重。
 - 在 V4.4.2 版本中：

     - 对于 V4.4.2 BP1（不含）之前版本，仅支持为 Sharding 属性为 `NONE` 的表组设置权重。
     - 对于 V4.4.2 BP1 及其之后版本，仅支持为 `SHARDING = 'NONE'` + `SCOPE = 'SERVER'` 和 `SHARDING = 'NONE'` + `SCOPE = 'ZONE'` 的表组设置权重，不支持为 `SHARDING = 'NONE'` + `SCOPE = 'CLUSTER'` 的表组设置权重。
 - 设置表组权重时，建议表组权重的档位尽量少，建议最多划分三挡：

     - 大权重 = 100% * `Sharding = 'NONE'` 的表组的总数
     - 中权重 = 50% * `Sharding = 'NONE'` 的表组的总数
     - 小权重 = 1
 - 对于修改配置项 `enable_database_sharding_none=True` 后，新建 DataBase 时创建的默认表组，其权重为 1。其他未设置过表组权重的 `Sharding = 'NONE'` 的表组，其默认权重为 0，不参与权重均衡。
 - 对于带权重的表组，表组中所有表的表级、分区级权重均无效。有关表级、分区级权重的相关操作及说明，参见 [设置分区权重](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005282870)。

## 设置权重

1. 用户登录集群的 MySQL 租户。

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

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

   ```
 2. （可选）创建 `Sharding = 'NONE'` 的表组。

   例如，创建一个表组 `TG_DB_test`。

   ```shell
   obclient(root@mysql001)[test]> CREATE TABLEGROUP TG_DB_test Sharding = 'NONE';

   ```

   #### 说明

   在 V4.4.2 版本中，对于 V4.4.2 BP1 及之后版本，创建 `Sharding = 'NONE'` 的表组时，如果不指定 `SCOPE` 属性，则默认创建的是 `SHARDING = 'NONE'` + `SCOPE = 'SERVER'` 的表组。
 3. 根据业务需求，设置表组权重。

   表组权重仅支持整数，取值范围为 [1, +∞)。设置表组的权重为 10，语句如下：

   ```shell
   obclient(root@mysql001)[test]> CALL DBMS_BALANCE.SET_TABLEGROUP_BALANCE_WEIGHT(10,'TG_DB_test');

   ```

   也支持 `sys` 租户为指定用户租户的表组设置权重，语句如下：

   ```shell
   obclient(root@sys)[(none)]> CALL DBMS_BALANCE.SET_TABLEGROUP_BALANCE_WEIGHT(10,'TG_DB_test') TENANT = 'mysql001';

   ```
 4. 完成后，查看表组的权重信息。

   ```shell
   obclient(root@mysql001)[test]> SELECT TABLEGROUP_NAME, WEIGHT, TABLEGROUP_ID, OBJECT_ID FROM oceanbase.DBA_OB_OBJECT_BALANCE_WEIGHT WHERE TABLEGROUP_NAME = 'TG_DB_test';

   ```

   查询结果如下：

   ```shell
   +-----------------+--------+---------------+-----------+
   | TABLEGROUP_NAME | WEIGHT | TABLEGROUP_ID | OBJECT_ID |
   +-----------------+--------+---------------+-----------+
   | TG_DB_test      |     10 |        500007 |    500007 |
   +-----------------+--------+---------------+-----------+
   1 row in set

   ```

## 后续操作

设置表组权重后，系统不会立即进行权重均衡。如果用户期望尽快进行权重均衡，可以通过调用 `DBMS_BALANCE.TRIGGER_PARTITION_BALANCE` 子程序，手动触发一次分区均衡。手动触发分区均衡的详细操作，参见 [手动触发分区均衡](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005282864)。

或者，用户也可以等待定时分区均衡任务的触发。有关定时分区均衡任务的相关信息，参见 [配置定时分区均衡任务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005282867)。

## 相关文档

有关表组权重的应用案例，参见 [表组权重均衡应用案例](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005282860)。

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