---
title: "创建表组 - OceanBase 数据库 V4.4.2 | OceanBase 文档中心"
description: 创建表组 您可以根据业务需要，创建表组。 使用限制 OceanBase 数据库升级过程中，禁止创建表组。 对于 V4.4.2 版本，从 V4.4.2 BP1 版本开始表组内分区的分布方式由 SHARDING 和 SCOPE 共同决定，当前版本只支持 SHARDING 属性和 SCOPE 属性的部分组合，指定不支持的组…
---
切换语言

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

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

# 创建表组

更新时间：2026-07-16 19:52:04

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.4.2/zh-CN/700.reference/300.database-object-management/200.manage-object-of-oracle-mode/300.manage-table-groups-of-oracle-mode/200.create-a-table-group-of-oracle-mode.md)  

您可以根据业务需要，创建表组。

## 使用限制

- OceanBase 数据库升级过程中，禁止创建表组。
 - 对于 V4.4.2 版本，从 V4.4.2 BP1 版本开始表组内分区的分布方式由 `SHARDING` 和 `SCOPE` 共同决定，当前版本只支持 `SHARDING` 属性和 `SCOPE` 属性的部分组合，指定不支持的组合会报错。支持的组合包括：

     - `SHARDING = 'NONE'` + `SCOPE = 'SERVER'`
     - `SHARDING = 'NONE'` + `SCOPE = 'ZONE'`
     - `SHARDING = 'NONE'` + `SCOPE = 'CLUSTER'`
     - `SHARDING = 'PARTITION'` + `SCOPE = 'CLUSTER'`
     - `SHARDING = 'ADAPTIVE'` + `SCOPE = 'CLUSTER'`

## 语法

创建表组的 SQL 语句如下：

```sql
CREATE TABLEGROUP tablegroup_name
    [sharding_option,]
    [scope_option];

sharding_option:
    SHARDING = '{NONE | PARTITION | ADAPTIVE}'

scope_option:
    SCOPE = '{SERVER | ZONE | CLUSTER}'

```

**参数说明：**

- `tablegroup_name`：待创建的表组名。
 - `sharding_option`：用于指定表组 `SHARDING` 属性，`SHARDING` 决定了表组内各表之间对应分区的聚合方式，聚合的一组分区称为 Partition Group（分区组），是分布打散的最小单位。取值如下：

     - `NONE`：表示对加入表组内各表的分区方式无限制，且表之间分区不作聚合。在 V4.4.2 BP1 之前版本中，`NONE` 语义还包含所有分区都在同一日志流上不作打散，新版本去除该语义，具体是否打散还取决于 `SCOPE` 属性。

           - 对于一级分区表: 每个一级分区作为一个独立的 Partition Group。
           - 对于二级分区表: 每个二级分区作为一个独立的 Partition Group。
           - 对于非分区表: 整个表作为一个 Partition Group。
           - 全局索引：`SHARDING = NONE` 表组内表的全局索引表自动绑定到同一表组。全局非分区索引表整体作为一个 Partition Group，全局分区索引表每个分区作为一个独立的 Partition Group。
     - `PARTITION`：整个表组是一个 Balance Group（均衡组），同一一级分区索引的分区聚合在同一 Partition Group。要求加入表组的所有表其对应的一级分区必须与表组中所有表的一级分区的分区定义一致，包括分区类型、分区个数、分区值。相同的分区定义具体指：

           - 分区类型相同，例如，都是 Range 分区。
           - 如果是 Hash 分区，要求引用的列数相同，并且分区个数相同。
           - 如果是 Range 分区，要求引用的列数相同，分区数相同，Range 分割点也相同。
     - `ADAPTIVE`：默认值，要求加入表组的所有表其对应的一级分区和二级分区必须与表组中所有表的一级分区和二级分区的分区定义一致，包括分区类型、分区个数、分区值。

           - 全部是一级分区表：整个表组是一个 Balance Group，同一一级分区索引的分区聚合在同一 Partition Group；
           - 全部是二级分区表：同一一级分区索引的为一个 Balance Group，Balance Group 下同一二级分区索引的二级分区聚合在同一 Partition Group。

      相同的分区定义具体指：

           - 分区类型相同，例如，都是 Hash + Range 分区。
           - 如果是 Hash 分区，要求引用的列数相同，并且分区个数相同。
           - 如果是 Range 分区，要求引用的列数相同，分区数相同，Range 分割点也相同。
           - 对于二级分区，根据其分区类型，与一级分区的要求相同。
 - `scope_option`：可选项，用于指定表组的 `SCOPE` 属性。`SCOPE` 决定了表组内所有聚合后的 Partition Group 的分布范围。取值如下：

     - `SERVER`：表示所有 Partition Group 的 Leader 聚集在同一节点上。
     - `ZONE`：表示所有 Partition Group 的 Leader 分布在同一 Zone 内，且打散在 Zone 内各节点。
     - `CLUSTER`：表示所有 Partition Group 的 Leader 打散在集群内各节点。

  表组未指定 `SCOPE` 时，会根据 `SHARDING` 属性自动设置为对应的默认 `SCOPE` 属性。具体对应关系如下：

     - `SHARDING = 'NONE'` 时，`SCOPE` 取值为 `SERVER`。
     - `SHARDING = 'PARTITION'` 时，`SCOPE` 取值为 `CLUSTER`。
     - `SHARDING = 'ADAPTIVE'` 时，`SCOPE` 取值为 `CLUSTER`。  

  #### 注意

     - 对于 V4.4.2 版本，从 V4.4.2 BP1 版本开始支持表组的 `SCOPE` 属性。
     - 低版本升级上来的表组也根据相同规则确定 `SCOPE`。

## 分区分布方式

表组内分区的分布方式由 `SHARDING` 和 `SCOPE` 共同决定，`SHARDING` 和 `SCOPE` 属性的各种组合方式下的分布方式如下：

| SHARDING \ SCOPE | SERVER | ZONE | CLUSTER |
| --- | --- | --- | --- |
| NONE | 全部分区聚合到一个节点。   #### 说明    等价于 V4.4.2 BP1 之前版本的 `SHARDING = 'NONE'`。 | 表组内全部分区平等地在某个 Zone 内打散。 | 表组内全部分区平等地在各节点平均打散。 |
| PARTITION | 不支持 | 暂不支持 | 按一级分区聚合，各 Partition Group 随机打散。   #### 说明    等价于 V4.4.2 BP1 之前版本的 `SHARDING = 'PARTITION'`。 |
| ADAPTIVE | 不支持 | 暂不支持 | - 一级分区：按一级分区聚合，各 Partition Group 全集群范围打散。 - 二级分区：每个一级分区下，按二级分区聚合，各 Partition Group 全集群范围聚合。    #### 说明    等价于 V4.4.2 BP1 之前版本的 `SHARDING = 'ADAPTIVE'`。 |

## 示例

- 创建 `SHARDING = 'NONE'` + `SCOPE = 'ZONE'` 的表组 `tblgroup1`。

  ```shell
  obclient> CREATE TABLEGROUP tblgroup1
      SHARDING = 'NONE',
      SCOPE = 'ZONE';

  ```
 - 创建 `SHARDING = 'NONE'` 的表组 `tblgroup2`。

  ```shell
  obclient> CREATE TABLEGROUP tblgroup2
      SHARDING = 'NONE';

  ```
 - 创建 `SCOPE = 'CLUSTER'` 的表组 `tblgroup3`。

  ```shell
  obclient> CREATE TABLEGROUP tblgroup3
      SCOPE = 'CLUSTER';

  ```
 - 创建仅指定 `SCOPE = 'ZONE'` 的表组会报错。因为 `SHARDING` 默认为 `ADAPTIVE`，不支持 `SHARDING = 'ADAPTIVE'` + `SCOPE = 'ZONE'` 的组合。

  ```shell
  obclient> CREATE TABLEGROUP tblgroup4
      SCOPE = 'ZONE';

  ```

  返回结果如下：

  ```shell
  OBE-00600: internal error code, arguments: -4179, create tablegroup with sharding is ADAPTIVE and scope is ZONE not allowed

  ```

## 后续操作

创建表组后，可以将符合条件的已有表加入到表组中，具体操作请参见 [将表添加到表组](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005283506)。

## 相关文档

- [关于表组](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005283503)
 - [将表添加到表组](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005283506)
 - [修改表组的 SHARDING 属性](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005283504)
 - [管理表组内的表](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005283507)
 - [删除表组](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005283508)
 - [设置表组权重](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005282863)

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