首批通过分布式安全可靠测评,为关键业务系统打造
CREATE RESOURCE UNIT
更新时间:2026-06-11 15:50:35
描述
OceanBase 数据库通过 Unit 来管理物理资源,sys 租户可以使用 CREATE RESOURCE UNIT 语句来创建 Unit 并指定 Unit 的资源规格。Unit 的资源规格定义了常见的物理资源,包括 CPU、内存、日志盘存储空间、IOPS 等。
Unit 的资源规格定义的是单个 Zone 内单个 OBServer 节点可分配的资源总量。仅当租户在某个节点上有 Unit 时,租户才能使用该节点上的资源来存储数据。
租户被分配的所有资源总量为:Unit 规格 * Unit 数量。
使用限制及注意事项
Unit 的资源规格不能超过单节点的总可分配资源。
权限要求
仅 sys 租户的 root 用户(root@sys)可以创建 Unit,其他租户不支持创建 Unit。
语法
CREATE RESOURCE UNIT [IF NOT EXISTS] unit_name
MEMORY_SIZE [=] 'size_value',
MAX_CPU [=] cpu_num,
[MAX_IOPS [=] iops_num,]
[MIN_CPU [=] cpu_num,]
[MIN_IOPS [=] iops_num,]
[IOPS_WEIGHT [=]iopsweight,]
[MAX_NET_BANDWIDTH [=] bandwidth_num,]
[NET_BANDWIDTH_WEIGHT [=] bandwidth_weight_num,]
[DATA_DISK_SIZE [=] 'size_value',]
[LOG_DISK_SIZE [=] 'size_value'];
参数说明
| 参数项 | 描述 |
|---|---|
| IF NOT EXISTS | 可选,如果待创建的 Unit 已存在,并且未指定 IF NOT EXISTS,则系统会报错。 |
| unit_name | 指定 Unit 的名称。 |
| MEMORY_SIZE | 指定内存规格,其最小值由隐藏配置项 __min_full_resource_pool_memory 控制,默认为 5G,为了保证系统稳定性,最小的内存规格建议为 4G。
注意OceanBase 数据库从 V4.0.0.0 开始不再支持内存超卖。 |
| MAX_CPU | 指定 CPU 规格的上限,最小值为 1,表示 1 Core。 |
| MIN_CPU | 指定 CPU 规格的下限,最小值为 1,表示 1 Core,可选。 如果未指定,则默认其值等于 MAX_CPU。
注意所有租户的 |
| MAX_IOPS | 指定 IOPS 的上限,最小值为 1024,指定的值要求满足 MAX_IOPS >= MIN_IOPS,可选。如果不指定,则系统将根据以下规则自动计算 MAX_IOPS 的值:
|
| MIN_IOPS | 指定 IOPS 的下限,最小值为 1024,可选。 如果不指定,则系统将根据以下规则自动计算 MIN_IOPS 的值:
|
| IOPS_WEIGHT | 指定 IOPS 的权重值,可选。 如果不指定,则系统将根据以下规则自动计算 IOPS_WEIGHT 的值:
|
| MAX_NET_BANDWIDTH | 指定租户每个 Unit 可使用的网络带宽上限,最小值为 1 M。如果不指定,则默认值为 INT64_MAX。 |
| NET_BANDWIDTH_WEIGHT | 指定租户 Unit 的网络带宽权重,用于计算每台 OBServer 的带宽分给每个租户的比例。最小值为 0。如果不指定,则系统将按照以下规则自动计算 NET_BANDWIDTH_WEIGHT 的值:
|
| DATA_DISK_SIZE | 指定租户每个 Unit 可使用的本地磁盘空间大小,仅适用于共享存储(Shared-Storage,SS)模式,无共享(Shared-Nothing,SN)模式下指定该规格会报错。指定该规格时:
说明SS 模式下,创建租户、迁移 Unit 或扩容时,系统会考虑 Unit 的 |
| LOG_DISK_SIZE | 指定租户日志盘空间的大小,可选。 如果不指定,则默认其值为内存规格的 3 倍大小,最小值为 2G。 |
示例
创建名为
unit1的 Unit,同时指定 CPU 为 4 核;内存为5G;日志盘容量为10G;IOPS 的上限为1280,IOPS 下限为1024,IOPS 的权重为1;每个 Unit 可使用的网络带宽上限为5M,网络带宽权重为10。obclient(root@sys)[(none)]> CREATE RESOURCE UNIT unit1 MAX_CPU 4, MEMORY_SIZE '5G', MAX_IOPS 1280, MIN_IOPS=1024, IOPS_WEIGHT=1, MAX_NET_BANDWIDTH '5M',NET_BANDWIDTH_WEIGHT 10, LOG_DISK_SIZE '10G';Unit 创建成功后,可以通过视图确认创建结果,语句如下:
obclient(root@sys)[oceanbase]> SELECT * FROM oceanbase.DBA_OB_UNIT_CONFIGS WHERE NAME='unit1';查询结果如下:
+----------------+-------+----------------------------+----------------------------+---------+---------+-------------+---------------+----------------+----------+----------+-------------+-------------------+----------------------+ | UNIT_CONFIG_ID | NAME | CREATE_TIME | MODIFY_TIME | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | DATA_DISK_SIZE | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT | MAX_NET_BANDWIDTH | NET_BANDWIDTH_WEIGHT | +----------------+-------+----------------------------+----------------------------+---------+---------+-------------+---------------+----------------+----------+----------+-------------+-------------------+----------------------+ | 1001 | unit1 | 2025-05-28 11:19:39.116490 | 2025-05-28 11:19:39.116490 | 4 | 4 | 5368709120 | 10737418240 | NULL | 1280 | 1024 | 1 | 5242880 | 10 | +----------------+-------+----------------------------+----------------------------+---------+---------+-------------+---------------+----------------+----------+----------+-------------+-------------------+----------------------+ 1 row in setSS 模式下,创建名为
unit1的 Unit,同时指定 CPU 为 4 核,内存为5G,每个 Unit 可使用的本地磁盘空间为100G。obclient(root@sys)[(none)]> CREATE RESOURCE UNIT unit1 MAX_CPU 4, MEMORY_SIZE '5G', DATA_DISK_SIZE '100G';