クラスタの単一ゾーン内で複数のOBServerノード間でリソースの配分が偏った場合、テナントが使用するリソースの配分を調整することで、クラスタ全体のリソース使用量を均等化できます。
本記事では、主にSQLステートメントを使用してリソースユニットを移行する方法について説明します。
機能の適用範囲
ALTER SYSTEM MIGRATE UNIT ステートメントは、sysテナントでのみ実行できます。
構文
ALTER SYSTEM MIGRATE UNIT [=] unit_id
DESTINATION [=] ip_port;
パラメータの説明:
パラメータ |
説明 |
|---|---|
| unit_id | Unit番号。 |
| ip_port | Unitを移行先ノードのアドレス。 |
例
リソースユニットの分布を確認する。
以下のSQLステートメントを実行して、テナント
mysql001のリソースユニットが各ゾーンにどのように分布しているかを確認します。SELECT t.TENANT_NAME,u.ZONE,u.UNIT_ID,u.SVR_IP FROM oceanbase.DBA_OB_TENANTS t,oceanbase.DBA_OB_UNITS u WHERE t.TENANT_ID=u.TENANT_ID AND t.TENANT_NAME='mysql001';実行結果は次のとおりです:
+-------------+-------+---------+------------+ | TENANT_NAME | ZONE | UNIT_ID | SVR_IP | +-------------+-------+---------+------------+ | mysql001 | zone1 | 1002 | 10.10.10.1 | | mysql001 | zone2 | 1004 | 10.10.10.2 | | mysql001 | zone3 | 1006 | 10.10.10.3 | +-------------+-------+---------+------------+ 3 rows in setリソースユニットの移行を開始する。
以下のSQLステートメントを実行して、テナント
mysql001のzone3にあるリソースユニットを10.10.10.3:2882から10.10.10.4:2882に移行します。ALTER SYSTEM MIGRATE UNIT = 1006 DESTINATION = '10.10.10.4:2882';移行状況を確認する。
以下のSQLステートメントを実行して、テナント
mysql001のリソースユニットが移行後に各ゾーンにどのように分布しているかを確認します。SELECT t.TENANT_NAME,u.ZONE,u.UNIT_ID,u.SVR_IP FROM oceanbase.DBA_OB_TENANTS t,oceanbase.DBA_OB_UNITS u WHERE t.TENANT_ID=u.TENANT_ID AND t.TENANT_NAME='mysql001';実行結果は次のとおりです:
+-------------+-------+---------+------------+ | TENANT_NAME | ZONE | UNIT_ID | SVR_IP | +-------------+-------+---------+------------+ | mysql001 | zone1 | 1002 | 10.10.10.1 | | mysql001 | zone2 | 1004 | 10.10.10.2 | | mysql001 | zone3 | 1006 | 10.10.10.4 | +-------------+-------+---------+------------+ 3 rows in set
関連ドキュメント
リソースユニットの移行構文の詳細については、MIGRATE UNITを参照してください。
リソースユニット移行のキャンセルの詳細については、CANCEL MIGRATE UNITを参照してください。
ユニット移行の詳細については、レプリカ移行を参照してください。