各テナントは同一時刻において、1つのLoad Balancingジョブ(Balance Job)しか実行できません。現在進行中のLoad Balancingジョブがビジネスニーズに合致しない場合、そのタスクをキャンセルできます。また、Transfer Partitionを開始したものの、現在有効なLoad Balancingジョブの実行によりTransfer Partitionタスクのスケジューリングが遅延している場合は、現在のLoad Balancingジョブをキャンセルすることができます。
使用制限
Load Balancingジョブのキャンセル操作は、プライマリデータベース(プライマリテナント)でのみ実行できます。
背景
各テナントは同一時刻において、1つのLoad Balancingジョブ(JOB)しか実行できません。これらのLoad Balancingジョブには、スケールアウト、スケールイン、移行バランシング、パーティションバランシングなどが含まれます。各Load Balancingジョブは、Load Balancingの具体的な操作を実現するための複数のLoad Balancingタスク(Task)を生成します。Load Balancingジョブをキャンセルすると、そのLoad Balancingジョブの下で実行中のすべてのTaskがキャンセルされます。
システムテナントによる進行中のLoad Balancingジョブのキャンセル
rootユーザーでクラスタのsysテナントにログインします。接続例は以下の通りです。データベースへの接続時は、実際の環境に準じてください。
obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -Aビュー
CDB_OB_BALANCE_JOBSをクエリし、現在実行中のタスクを取得します。obclient(root@sys)[oceanbase]> SELECT TENANT_ID, JOB_ID, BALANCE_STRATEGY, JOB_TYPE, STATUS FROM oceanbase.CDB_OB_BALANCE_JOBS WHERE TENANT_ID = 1002;クエリ結果の例は以下の通りです:
+-----------+--------+----------------------+------------+--------+ | TENANT_ID | JOB_ID | BALANCE_STRATEGY | JOB_TYPE | STATUS | +-----------+--------+----------------------+------------+--------+ | 1002 | 520683 | LS balance by shrink | LS_BALANCE | DOING | +-----------+--------+----------------------+------------+--------+ 1 row in setクエリ結果に基づき、該当タスクが想定に合致しない場合は、以下の操作を実行してLoad Balancingジョブをキャンセルできます。
ALTER SYSTEM CANCEL BALANCE JOB TENANT = 'tenant_name';例:
obclient(root@sys)[oceanbase]> ALTER SYSTEM CANCEL BALANCE JOB TENANT ='mysql_tenant';
ユーザーテナントによる進行中のLoad Balancingジョブのキャンセル
MySQLテナントまたはOracleテナントのテナント管理者がデータベースに接続します。
接続例は以下の通りです。データベースへの接続時は、実際の環境に準じてください。
obclient -h10.xx.xx.xx -P2883 -uroot@mysql_tenant#obdemo -p***** -Aビュー
DBA_OB_BALANCE_JOBSをクエリして、現在実行中のタスクを取得します。MySQLモードOracleモードMySQLモードでのクエリステートメントは以下のとおりです:
obclient [oceanbase]> SELECT * FROM oceanbase.DBA_OB_BALANCE_JOBS;Oracleモードでのクエリステートメントは以下のとおりです:
obclient [SYS]> SELECT * FROM SYS.DBA_OB_BALANCE_JOBS;クエリ結果に基づき、予想と異なる場合は、以下の操作を実行してそのBalance Jobをキャンセルできます。
obclient> ALTER SYSTEM CANCEL BALANCE JOB;