クラスタ内の単一ゾーンにおいて、複数の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のゾーン3のリソースユニットを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を参照してください。
ユニット移行の詳細については、レプリカ移行を参照してください。