説明
このステートメントは、Balance Jobを一時停止(SUSPEND)、再開(RESUME)、またはキャンセル(CANCEL)するために使用します。
テナントで実行中のBalance Jobがある状態で、他の緊急な変更を実行する必要が生じた場合、そのBalance Jobの実行が緊急変更に影響を与えるのを防ぐために、現在実行中のBalance Jobを一時停止し、緊急変更の実行後に再開して継続することができます。
現在進行中のBalance Jobが要件に合致しない場合は、そのタスクをキャンセルすることができます。また、Transfer Partitionを開始したものの、実行中のBalance Jobによりタスクの開始が遅延している場合も、現在進行中のBalance Jobをキャンセルできます。
使用制限と注意事項
Balance Jobのキャンセル、一時停止、または再開の操作は、プライマリデータベース(すなわちプライマリテナント)でのみ実行できます。
Balance Jobを一時停止または再開する際、そのBalance Jobの状態が
CANCELINGであってはなりません。
権限要件
現在のユーザーがALTER SYSTEM権限を持っていること。
構文
ALTER SYSTEM {SUSPEND | RESUME | CANCEL} BALANCE JOB [TENANT = 'tenant_name'];
パラメータ説明
パラメータ |
説明 |
|---|---|
| tenant_name | 一時停止、復元、またはキャンセルするタスクのテナント名を指定します。オプションですが、システムテナントで実行する場合は必ず指定する必要があります。 |
例
以下では、システムテナントでの操作を例に説明します。
- 以下のステートメントを使用して、現在実行中のタスクを照会します。
obclient(root@sys)[oceanbase]> SELECT T.TENANT_NAME, J.TENANT_ID, J.JOB_ID, J.CREATE_TIME, J.MODIFY_TIME, J.BALANCE_STRATEGY, J.JOB_TYPE, j.STATUS
FROM oceanbase.CDB_OB_BALANCE_JOBS J, oceanbase.DBA_OB_TENANTS T
WHERE J.TENANT_ID = T.TENANT_ID;
実行結果は次のとおりです:
+-------------+-----------+--------+----------------------------+----------------------------+---------------------------+--------------+--------+
| TENANT_NAME | TENANT_ID | JOB_ID | CREATE_TIME | MODIFY_TIME | BALANCE_STRATEGY | JOB_TYPE | STATUS |
+-------------+-----------+--------+----------------------------+----------------------------+---------------------------+--------------+--------+
| oracle001 | 1004 | 300793 | 2024-02-29 16:45:12.864110 | 2024-02-29 16:45:12.864110 | LS balance by shrink | LS_BALANCE | DOING |
+-------------+-----------+--------+----------------------------+----------------------------+---------------------------+--------------+--------+
1 row in set
- ビジネス状況に応じて、適切な操作を選択します:
- 実行中のBalance Jobを一時停止します。
```shell
obclient(root@sys)[oceanbase]> ALTER SYSTEM SUSPEND BALANCE JOB TENANT = 'oracle001';
```
- 一時停止されたBalance Jobを再開します。
```shell
obclient(root@sys)[oceanbase]> ALTER SYSTEM RESUME BALANCE JOB TENANT = 'oracle001';
```
- 期待に合致しないBalance Jobをキャンセルします。
```shell
obclient(root@sys)[oceanbase]> ALTER SYSTEM CANCEL BALANCE JOB TENANT = 'oracle001';
```