説明
OceanBaseデータベースはUnitを用いて物理リソースを管理します。sysテナントはCREATE RESOURCE UNITステートメントを使用してUnitを作成し、Unitのリソース仕様を指定できます。Unitのリソース仕様は、CPU、メモリ、ログディスクストレージ容量、IOPSなどの一般的な物理リソースを定義します。
Unitのリソース仕様は、単一ゾーン内の単一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,]
[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 によって制御され、デフォルトは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 | テナントの各Unitが使用できるネットワーク帯域幅の上限を指定します。最小値は1MBです。指定しない場合、デフォルト値は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倍のサイズが適用され、最小値は2GBです。 |
例
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';