説明
OceanBaseデータベースはUnitを用いて物理リソースを管理します。sysテナントはCREATE RESOURCE UNITステートメントを使用してUnitを作成し、Unitのリソース仕様を指定できます。Unitのリソース仕様には、CPU、メモリ、ログディスクストレージ容量、IOPSなどの一般的な物理リソースが定義されています。
Unitのリソース仕様とは、単一Zone内の単一OBServerノードに割り当て可能な総リソース量を指します。テナントが特定のノード上にUnitを持っている場合に限り、そのノード上のリソースを使用してデータを保存できます。
テナントに割り当てられる全リソース量は、Unit仕様 × Unit数となります。
制限事項および注意点
Unitのリソース仕様は、単一ノードの総割り当て可能リソースを超えてはなりません。
権限要件
Unitを作成できるのはsysテナントのrootユーザー(root@sys)のみであり、他のテナントでは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 によって制御され、デフォルトは5GBです。システムの安定性を確保するため、最小メモリ仕様は4GBを推奨します。
注意OceanBaseデータベースはV4.0.0.0以降、メモリオーバーコミットをサポートしていません。 |
| MAX_CPU | CPU仕様の上限を指定します。最小値は1で、1コアを表します。 |
| MIN_CPU | CPU仕様の下限を指定します。最小値は1で、1コアを表します。オプションです。 指定されていない場合、デフォルト値は 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 | テナントの各ユニットで使用可能なネットワーク帯域幅の上限を指定します。最小値は1Mです。指定しない場合、デフォルト値はINT64_MAXです。 |
| NET_bandWIDTH_WEIGHT | テナントユニットのネットワーク帯域幅の重みを指定します。これは、各OBServerの帯域幅を各テナントに割り当てる割合を計算するために使用されます。最小値は0です。指定しない場合、システムは次のルールに基づいてNET_bandWIDTH_WEIGHTの値を自動的に計算します:
|
| LOG_DISK_SIZE | テナントログディスク容量のサイズを指定します。オプションです。 指定しない場合、デフォルト値はメモリ仕様の3倍のサイズで、最小値は2Gです。 |
例
unit1という名前のユニットを作成します。そのリソース仕様は以下のとおりです:CPUは4コア、メモリは5G、ログディスク容量は10G、IOPSの上限は1280、IOPSの下限は1024、IOPSの重みは1です。また、各ユニットで使用可能なネットワーク帯域幅の上限は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';
ユニットの作成が成功した後、ビューを通じて作成結果を確認できます。ステートメントは以下のとおりです:
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