OceanBase
  • 产品
  • 解决方案
  • 客户
  • 合作伙伴
  • 资源与服务
  • 文档
  • 社区
云控制台登录 / 注册
  • 免费试用
OceanBase AI 数据平台

基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。

一体化能力

TP 事务处理

关键业务稳定运行,保障数据零丢失

AP 实时分析

事务分析一体,驱动智能决策与运营

AI 现代负载

统一多模态数据,支撑生产级应用

关键产品
OceanBase 分布式数据库

首批通过安全可靠测评,面向关键业务

OceanBase 集中式数据库

集中式架构,兼具性能与成本优势

OceanBase AI 数据库

面向 AI 应用与 Agent 的多模数据库

OceanBase AI 湖库

湖库一体的 AI 多模态数据系统

OceanBase DataPilot

企业级 AI 数据分析 Agent

OceanBase Agentbase

企业级 Agent 后端基础设施

OceanBase OAgent

数据库 AI 运维 Agent

OB Cloud

一体化云数据库,提供多云一致体验

OceanBase 数据库一体机

软硬一体,极致性能与高可靠性保障

OceanBase AI 一体机

开箱即用的 AI 数据库一体机

OMA 迁移评估工具

全链路数据库迁移评估

OMS 数据迁移工具

一站式数据传输与同步

OCP 运维管理工具

数据库全生命周期管理

ODC 开发者工具

数据库开发与管控协同

OAS 自治服务工具

数据库智能诊断与自治

通用场景
全场景业务系统 OLTP
实时分析混合负载
异地多活
多基础设施部署
一站式传统数据库升级
混合云部署
一库多芯软硬件混合部署
分布式数据库单机部署
大存储类数据库降本
冷数据归档降本
多实例资源整合
分库分表一体化升级
高并发场景
数据中台
行业解决方案
国有大行和股份制银行核心系统解决方案
区域性银行核心系统解决方案
寿险核心系统解决方案
产险核心系统解决方案
资管交易类系统解决方案
资管 TA 清算类系统解决方案
运营商核心系统解决方案
人社核心系统解决方案
电力核心系统解决方案
行业专区
银行专区

助力银行完成各类核心业务系统升级

保险专区

寿险、产险核心系统升级的更佳选择

零售专区

助力200+零售行业客户规模化落地

DB 大咖说
oceanbase爱奇艺

百亿级卡券业务的“单库双擎”架构升级

oceanbase四川银行

800个测试用例选定分布式数据库

oceanbase太平洋保险

先难后易,核心系统数据库升级复盘

行业案例
oceanbase交通银行

核心数据库的“分布式革命”

oceanbase中国移动

B域核心CRM&BOSS近乎零改造分布式升级

oceanbase理想

打造领先的智能制造系统和自动驾驶体验

演讲实录
oceanbase中国联通

集团应用分布式数据库覆盖B/O/M域

oceanbase国泰海通

智能推送系统稳定支撑单日亿级消息处理量

oceanbase中国联合航空

中国首款机票盲盒背后的数据库力量

用户实践
oceanbase北京银行

最快速度完成40余套系统国产数据库升级

oceanbaseVIVO

替换 MySQL 分库分表,探索成本效益最优

oceanbase滴滴

数据库大规模运维体系建设及落地实践

合作伙伴
合作伙伴类型
联合解决方案
产业生态伙伴
经销商伙伴
技术服务伙伴
培训认证伙伴
生态联合解决方案
神州信息 x OceanBase 银行核心系统
长亮科技 x OceanBase 新核心系统
中电金信 x OceanBase 金融分布式核心系统
天阳科技 x OceanBase 贷记卡方案
易诚互动 x OceanBase 手机银行方案
恒生 x OceanBase UF3.0/O45/TA/估值方案
商业发行版
云树®数据库软件 ActionDB
服务
支持与服务
提交工单
软件下载
OceanBase 企业版
OceanBase 社区版
OB Cloud
学习
培训与认证
在线课堂
在线体验
开发者
开发者中心
资料
行业报告与白皮书
官方博客
年度发布会资料
开发者大会资料
oceanbase白皮书

金融核心系统数据库升级路径与场景实践

oceanbase白皮书

人社关键业务数据库一体化升级实践

产品文档
oceanbaseOceanBase 数据库
数据库一体机
oceanbaseOceanBase AI 数据库
工具与组件
oceanbaseOB Cloud 云数据库
驱动和中间件
快速上手
OceanBase 数据库
OB Cloud 云数据库
知识库
汇聚常见产品使用问题案例
在线体验

Demo与实验,感受 OceanBase 的核心能力与应用场景

OceanBase 最佳实践
了解 OceanBase 分布式数据库的架构与系统原理
技术博客

技术解析 | 用户实践 | 社区月报

在线课堂

电子书 |视频课程|在线培训

Developer Hub
应用开发Demo | 数据开发与集成工具
问答论坛

快速答疑 | 常见问题 | 技术交流

社区活动

Meetup | 技术公开课

GitHub

查看源码 | 贡献代码 | 建议反馈

加入社区

社区组织 | 社区用户贡献 |开发者贡献

进入社区首页
oceanbase数据库大赛

第六届OceanBase数据库大赛

oceanbase免费课程

《Easy Data x AI》:面向所有 AI 爱好者的 Data 与 AI 基础知识入门教程

切换语言
  • 中文站 - 简体中文
  • International - English
  • 日本站 - 日本語

OceanBase

OceanBase 海扬数据库始创于 2010 年,是完全自主研发的数据库公司。2020年开始独立商业化运作,历经15年大规模核心场景验证,目前是中国数据库的领军企业之一。从分布式数据库到 AI 数据库,为企业提供安全、稳定、可扩展的数据底座,推动数据基础设施全面拥抱 AI 时代。

关于我们

关于 OceanBase最新动态资质荣誉客户专家委员会招贤纳士合作伙伴年度发布会开发者大会

资源与服务

支持与服务文档知识库软件与工具下载培训与认证在线体验数据库专题视频

社区

快速上手开发者中心博客活动学习问答GitHub

数据库百科

分布式数据库国产数据库OLTP 数据库OLAP 数据库HTAP 数据库数据库向量数据库向量检索

联系我们

服务热线:
400-109-0633
商务咨询
培训认证技术支持媒体合作
京公网安备11010802047223号京公网安备11010802047223号
京ICP备20024574号-1
合字B1.B2-20250395
网站服务协议隐私协议安全响应协议
OceanBase 版权所有 © 2026 基础资源和备案服务由阿里云提供
文档反馈
  1. 文档中心
  2. OceanBase 数据库
  3. 分布式版
  4. V5.0.1
  5. 参考指南
  6. 数据库对象管理
  7. Oracle 模式
  8. 创建和管理表组
  9. 修改表组属性
分布式版-V5.0.1
  • 简介
  • 快速上手
  • 应用开发
  • 部署
  • 升级
  • 数据迁移
  • 管理数据库
  • AP
  • AI
  • 生态集成
  • 实践教程
  • 参考指南
    • 系统原理
    • 系统管理
    • 数据库对象管理
      • 数据库对象管理概述
      • MySQL 模式
      • Oracle 模式
        • 创建和管理表
        • 创建和管理分区
        • 创建和管理表组
          • 表组概述
          • 创建表组
          • 查看表组信息
          • 将表添加到表组
          • 修改表组属性
          • 管理表组内的表
          • 删除表组
        • 创建和管理索引
        • 管理视图
        • 管理序列
        • 管理同义词
        • 创建和管理触发器
        • 管理目录
        • 创建和管理 DBLink
    • 数据库设计规范和约束
    • SQL 参考
    • PL 参考
    • 系统视图
    • 配置项和系统变量
    • 错误码
    • 性能调优
    • 数据库代理
    • 驱动
    • 平台产品
    • 组件 & 工具
    • 数据库插件
  • 常见问题
  • 版本发布记录
  • 术语
  1. 文档中心
  2. OceanBase 数据库
  3. 分布式版
  4. V5.0.1
  5. 参考指南
  6. 数据库对象管理
  7. Oracle 模式
  8. 创建和管理表组
  9. 修改表组属性

修改表组属性

更新时间:2026-08-30 22:11:55

github-fill编辑
编组分享

创建表组后,根据业务调整,可以修改表组属性。

使用限制

  • OceanBase 数据库升级过程中,禁止修改表组属性。
  • 执行该语句需要确保当前用户拥有全局 ALTER 权限。

修改规则

修改表组的 SHARDING 属性时,需要先查看表组内是否存在表,以及表组内表的分区信息,查看表组内的表的具体操作请参见 查看表组信息。

  • 如果表组内没有表,则可以任意修改表组的 SHARDING 属性。

  • 如果表组内已有表,则需要遵循以下修改规则:

    • 将表组的 SHARDING 属性修改为 NONE 时,不需要考虑表组内表的分区定义,可以直接修改。

    • 将表组的 SHARDING 属性修改为 PARTITION 时:

      • 如果表组内的所有表都是非分区表,则可以直接修改。
      • 如果表组内同时有非分区表和分区表,则无法修改。
      • 如果表组内仅有一级分区表或二级分区表,则要求表组内所有表的一级分区对应的分区类型、分区个数及分区值均相同,否则无法修改。
    • 将表组的 SHARDING 属性修改为 ADAPTIVE 时:

      • 如果表组内的所有表都是非分区表,则可以直接修改。
      • 如果表组内同时有非分区表和分区表,则无法修改。
      • 如果表组内同时有一级分区表和二级分区表,则无法修改。
      • 如果表组内全部是一级分区表,则要求所有一级分区表对应分区类型、分区个数、分区值均相同。
      • 如果表组内全是二级分区表,则要求所有一级分区表和二级分区表对应分区类型、分区个数、分区值均相同。
  • V5.0.1 及之后版本修改表组属性时,还需满足 SHARDING 和 SCOPE 以下组合:

    说明

    对于 V5.x 版本,从 V5.0.1 版本开始支持表组的 SCOPE 属性。

    • SHARDING = 'NONE' + SCOPE = 'SERVER'
    • SHARDING = 'NONE' + SCOPE = 'ZONE'
    • SHARDING = 'NONE' + SCOPE = 'CLUSTER'
    • SHARDING = 'PARTITION' + SCOPE = 'CLUSTER'
    • SHARDING = 'ADAPTIVE' + SCOPE = 'CLUSTER'
    • SHARDING = 'SUBPARTITION' + SCOPE = 'CLUSTER'
  • 将表组的 SHARDING 属性改为 SUBPARTITION 时:

    • 表组内必须均为二级分区表。
    • 所有表的一级分区和二级分区方式完全一致。
    • 表组内没有表时无需检查。

语法

修改表组属性的 SQL 语句如下:

ALTER TABLEGROUP tablegroup_name
    [sharding_option,]
    [scope_option];

table_name_list:
    table_name [, table_name ...]

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

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

参数说明:

  • tablegroup_name:待修改的表组名。

  • sharding_option:用于修改表组 SHARDING 属性,SHARDING 决定了表组内各表之间对应分区的聚合方式,聚合的一组分区称为 Partition Group(分区组),是分布打散的最小单位。取值如下:

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

      • 对于一级分区表: 每个一级分区作为一个独立的 Partition Group。
      • 对于二级分区表: 每个二级分区作为一个独立的 Partition Group。
      • 对于非分区表: 整个表作为一个 Partition Group。
      • 全局索引:非分区表视作一个分区,每个分区作为一个 Partition Group。
    • PARTITION:整个表组是一个 Balance Group,同一一级分区索引的分区聚合在同一 Partition Group。要求加入表组的所有表其对应的一级分区必须与表组中所有表的一级分区的分区定义一致,包括分区类型、分区个数、分区值。相同的分区定义具体指:

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

      • 全部是一级分区表:整个表组是一个 Balance Group,同一一级分区索引的分区聚合在同一 Partition Group;
      • 全部是二级分区表:同一一级分区索引的为一个均衡组,均衡组下同一二级分区索引的二级分区聚合在同一 Partition Group。

      相同的分区定义具体指:

      • 分区类型相同,例如,都是 Hash + Range 分区。
      • 如果是 Hash 分区,要求引用的列数相同,并且分区个数相同。
      • 如果是 Range 分区,要求引用的列数相同,分区数相同,Range 分割点也相同。
      • 对于二级分区,根据其分区类型,与一级分区的要求相同。
    • SUBPARTITION:表示加入表组的表必须为二级分区表,不同表一级分区方式必须相同,二级分区方式必须相同,包括分区键类型、分区函数、分区数、分区边界值等。

      说明

      对于 V5.x 版本,从 V5.0.1 版本开始支持表组的 SHARDING = 'SUBPARTITION' 属性。

  • scope_option:可选项,用于指定表组的 SCOPE 属性。SCOPE 决定了表组内所有聚合后的 Partition Group 的分布范围。取值如下:

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

    说明

    对于 V5.x 版本,从 V5.0.1 版本开始支持表组的 SCOPE 属性。

示例

示例一:修改 SHARDING = 'PARTITION' 表组属性

注意

本示例适用于 V5.0.1 之前版本(不含 V4.4.2 版本)。

  1. 创建一个 SHARDING 属性为 PARTITION 的表组 tblgroup1。

    CREATE TABLEGROUP tblgroup1 SHARDING = 'PARTITION'; 
    
  2. 创建两个分区定义相同的一级分区表 tbl1 和 tbl2,并加入到表组 tblgroup1。

    CREATE TABLE tbl1(col1 NUMBER,col2 VARCHAR2(50)) TABLEGROUP = tblgroup1
    PARTITION BY LIST(col1)
    (PARTITION p0 VALUES('01'),
    PARTITION p1 VALUES('02')
    );
    
    CREATE TABLE tbl2(col1 NUMBER,col2 VARCHAR2(50)) TABLEGROUP = tblgroup1
    PARTITION BY LIST(col1)
    (PARTITION p0 VALUES('01'),
    PARTITION p1 VALUES('02')
    );
    
  3. 将表组 tblgroup1 的 SHARDING 属性修改为 ADAPTIVE。

    ALTER TABLEGROUP tblgroup1 SHARDING = 'ADAPTIVE';
    
  4. 查看表组属性。

    SHOW TABLEGROUPS WHERE tablegroup_name = 'TBLGROUP1';
    

    结果如下:

    +-----------------+------------+---------------+----------+
    | TABLEGROUP_NAME | TABLE_NAME | DATABASE_NAME | SHARDING |
    +-----------------+------------+---------------+----------+
    | TBLGROUP1       | TBL1       | SYS           | ADAPTIVE |
    | TBLGROUP1       | TBL2       | SYS           | ADAPTIVE |
    +-----------------+------------+---------------+----------+
    2 rows in set
    

    表组内的表 TBL1 和 TBL2 全部是一级分区表,且分区类型、分区个数、分区值均相同,符合修改规则,SHARDING 属性修改成功。

示例二:修改 SHARDING = 'NONE' + SCOPE = 'ZONE' 表组属性

  1. 创建 SHARDING = 'NONE' + SCOPE = 'ZONE' 的表组 tblgroup2。

    obclient> CREATE TABLEGROUP tblgroup2
        SHARDING = 'NONE',
        SCOPE = 'ZONE';
    
  2. 创建表非分区表 test_tbl3,并加入到表组 tblgroup2。

    obclient> CREATE TABLE test_tbl3 (col1 NUMBER PRIMARY KEY, col2 VARCHAR2(50))
        TABLEGROUP = tblgroup2;
    
  3. 创建一级分区表 test_tbl4,并加入到表组 tblgroup2。

    obclient> CREATE TABLE test_tbl4 (col1 NUMBER PRIMARY KEY, col2 VARCHAR2(50))
        TABLEGROUP = tblgroup2
        PARTITION BY LIST(col1)
        (PARTITION p0 VALUES('01'),
         PARTITION p1 VALUES('02')
         );
    
  4. 将表组 tblgroup2 的属性修改为 SHARDING = 'NONE' + SCOPE = 'SERVER'。

    obclient> ALTER TABLEGROUP tblgroup2 SCOPE = 'SERVER';
    
  5. 查看表组属性。

    obclient> SHOW TABLEGROUPS WHERE tablegroup_name = 'TBLGROUP2';
    

    结果如下:

    +-----------------+------------+---------------+----------+--------+
    | TABLEGROUP_NAME | TABLE_NAME | DATABASE_NAME | SHARDING | SCOPE  |
    +-----------------+------------+---------------+----------+--------+
    | TBLGROUP2       | TEST_TBL3  | TEST_USER001  | NONE     | SERVER |
    | TBLGROUP2       | TEST_TBL4  | TEST_USER001  | NONE     | SERVER |
    +-----------------+------------+---------------+----------+--------+
    2 rows in set
    

相关文档

  • 关于表组

  • 创建表组

  • 查看表组信息

  • 将表添加到表组

  • 管理表组内的表

  • 删除表组

本文目录

使用限制修改规则语法示例示例一:修改 SHARDING = 'PARTITION' 表组属性示例二:修改 SHARDING = 'NONE' + SCOPE = 'ZONE' 表组属性相关文档
有帮助
无帮助
反馈
AI