首批通过分布式安全可靠测评,为关键业务系统打造
CREATE RESOURCE UNIT
更新时间:2025-09-07 17:22:22
描述
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,]
[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 的值:
|
| LOG_DISK_SIZE | 指定租户日志盘空间的大小,可选。 如果不指定,则默认其值为内存规格的 3 倍大小,最小值为 2G。 |
示例
创建名为 unit1 的 Unit,其资源规格如下:CPU 为 4 核;内存为 5G;日志盘容量为 10G;IOPS 的上限为 1280,IOPS 下限为 1024,同时 IOPS 的权重为 1;每个 Unit 可使用的网络带宽上限为 5M,网络带宽权重为 10。
obclient [oceanbase]> 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 [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 set