---
title: "Database 下用户表的聚合 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: "Database 下用户表的聚合 用户表的聚合是指将同一租户下的指定用户表绑定在同一个日志流上。OceanBase 数据库通过将 Database 绑定到一个 Sharding = &#x27;NONE&#x27; 的表组上来实现该 Database 下所有用户表的聚合。同时，通过将多个 Database 绑定到同一个表组，也可以实现多…"
---
切换语言

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

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

# Database 下用户表的聚合

更新时间：2026-06-20 15:21:46

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/600.manage/350.load-balancing-manage/430.tablegroup-weight-management/100.aggregation-of-user-tables-in-a-database.md)  

用户表的聚合是指将同一租户下的指定用户表绑定在同一个日志流上。OceanBase 数据库通过将 Database 绑定到一个 `Sharding = 'NONE'` 的表组上来实现该 Database 下所有用户表的聚合。同时，通过将多个 Database 绑定到同一个表组，也可以实现多个 Database 下用户表的聚合。

## 使用限制

当前仅 MySQL 模式支持 Database 下用户表的聚合功能，Oracle 模式暂不支持。

## 开启新建 Database 下用户表的自动聚合

Database 下用户表的自动聚合开关由租户级配置项 `enable_database_sharding_none` 控制。默认为 `False`，表示未开启 Database 下用户表的自动聚合。

用户可以根据业务需要，开启 Database 下用户表的自动聚合。开启新建 Database 下用户表的自动聚合的方法如下：

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

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

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

   ```
 2. 查看租户配置项 `enable_database_sharding_none` 的值。

   ```shell
   obclient(root@mysql001)[(none)]> SHOW PARAMETERS LIKE '%enable_database_sharding_none%';

   ```

   查询结果如下：

   ```shell
   +-------+----------+----------------+----------+-------------------------------+-----------+-------+----------------------------------------------------------------------------------------+--------------+--------+---------+-------------------+---------------+-----------+
   | zone  | svr_type | svr_ip         | svr_port | name                          | data_type | value | info                                                                                   | section      | scope  | source  | edit_level        | default_value | isdefault |
   +-------+----------+----------------+----------+-------------------------------+-----------+-------+----------------------------------------------------------------------------------------+--------------+--------+---------+-------------------+---------------+-----------+
   | zone1 | observer | 172.xx.xxx.xxx |     2882 | enable_database_sharding_none | BOOL      | False | Enable automatic creation of sharding none tablegroup for new databases in MySQL mode. | LOAD_BALANCE | TENANT | DEFAULT | DYNAMIC_EFFECTIVE | False         |         1 |
   +-------+----------+----------------+----------+-------------------------------+-----------+-------+----------------------------------------------------------------------------------------+--------------+--------+---------+-------------------+---------------+-----------+
   1 row in set

   ```
 3. 将配置项 `enable_database_sharding_none` 的值修改为 `True`。

   ```shell
   obclient(root@mysql001)[(none)]> ALTER SYSTEM SET enable_database_sharding_none = True;

   ```

开启 Database 下用户表的自动聚合（`enable_database_sharding_none` 的值为 `True`）后，后续该租户下创建的所有 Database 默认均会绑定一个 Sharding 属性为 `NONE` 的表组，且表组名称的格式为：`TG_DB_{database_id}`。

#### 注意

开启 Database 下用户表的自动聚合后：

- 只对后续创建的 Database 生效，并不会影响之前已经存在的 Database。
 - 在创建数据库时，如果默认绑定的表组名与用户自建的表组名冲突，则数据库会创建成功，但不会自动绑定表组，需要用户使用 `ALTER DATABASE TABLEGROUP` 语句自行绑定一个 Sharding 属性为 `NONE` 的表组。

例如，假设开启 Database 下用户表的自动聚合后，创建了一个数据库 `infotest`。

```shell
obclient(root@mysql001)[(none)]> CREATE DATABASE infotest;

```

可以通过视图 `DBA_OB_DATABASES`(`sys` 租户下查询视图 `CDB_OB_DATABASES`)，查看该数据库的默认表组。

```shell
obclient(root@mysql001)[(none)]> SELECT * FROM oceanbase.DBA_OB_DATABASES WHERE DATABASE_NAME = 'infotest';

```

```shell
+---------------+---------------+--------------------+-----------+---------+-----------------+
| DATABASE_NAME | IN_RECYCLEBIN | COLLATION          | READ_ONLY | COMMENT | TABLEGROUP_NAME |
+---------------+---------------+--------------------+-----------+---------+-----------------+
| infotest      | NO            | utf8mb4_general_ci | NO        |         | TG_DB_500004    |
+---------------+---------------+--------------------+-----------+---------+-----------------+
1 row in set

```

根据查询结果可知，该数据库的默认表组为 `TG_DB_500004`。其中，`500004` 为数据库的 ID。

## 设置多个 Database 下用户表的聚合

用户可以修改多个 Database 的 `TABLEGROUP` 属性，使其绑定在同一个 `Sharding = 'NONE'` 的表组下，以实现多个 Database 下用户表的聚合。

操作方法如下：

   ```
 2. 执行以下命令，修改目标 Database 的 `TABLEGROUP` 属性。

   语句如下：

   ```sql
   ALTER DATABASE [database_name] TABLEGROUP [=] tablegroup_name;

   ```

   其中：

      - `database_name`：目标 Database 的名称。可选，不显式指定时，表示待修改的 Database 为当前 Database。
      - `tablegroup_name`：待绑定的 Sharding 属性为 `NONE` 的表组名。
      - 该语句将会修改目标 Database 下所有表的 `TABLEGROUP` 属性。
      - 如果目标 Database 下存在表无法满足表组 Sharding 要求的分布，则语句执行会报错。

   示例如下：

   ```shell
   obclient(root@mysql001)[infotest]> ALTER DATABASE infotest TABLEGROUP =tg_test;

   ```
 3. 通过视图 `DBA_OB_DATABASES`(`sys` 租户下查询视图 `CDB_OB_DATABASES`)，确认表组是否修改成功。

   ```

   查询结果如下：

   ```shell
   +---------------+---------------+--------------------+-----------+---------+-----------------+
   | DATABASE_NAME | IN_RECYCLEBIN | COLLATION          | READ_ONLY | COMMENT | TABLEGROUP_NAME |
   +---------------+---------------+--------------------+-----------+---------+-----------------+
   | infotest      | NO            | utf8mb4_general_ci | NO        |         | tg_test         |
   +---------------+---------------+--------------------+-----------+---------+-----------------+
   1 row in set

   ```
 4. 重复上述操作，将多个目标 Database 绑定到同一个表组。

## 后续操作

修改 Database 的 `tablegroup` 属性后，系统不会立即将所有用户表的分区对齐到同一个日志流。如果用户期望尽快进行用户表的聚合，可以通过调用 `DBMS_BALANCE.TRIGGER_PARTITION_BALANCE` 子程序，手动触发一次分区均衡。手动触发分区均衡的详细操作，参见 [手动触发分区均衡](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682441)。

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

## 相关文档

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

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