説明
このステートメントは、現在実行中のTransfer Partition(パーティション移行)タスクをキャンセルするために使用します。
使用制限と注意事項
特定のパーティションのTransfer Partitionタスクをキャンセルする場合、タスクが
DOING状態にあるとキャンセル操作はできません。タスクが他の状態(WAITINGおよびINIT)にある場合はキャンセルできます。テナント内のすべてのTransfer Partitionタスクをキャンセルする場合、このコマンドは進行中のすべてのタスクのキャンセルをサポートしていますが、この操作は原子的ではありません。つまり、一部のタスクが
DOING状態にある場合、それらのタスクはキャンセルできません。このステートメントは、マスター・データベース上でのみ実行できます。
権限要件
現在のユーザーがALTER SYSTEM権限を持っていること。
構文
構文1:特定のパーティションのTransfer Partitionタスクをキャンセルする
ALTER SYSTEM CANCEL TRANSFER PARTITION TABLE_ID [=] table_id, OBJECT_ID [=] object_id [TENANT = 'tenant_name'];
構文2:テナント内のすべてのTransfer Partitionタスクをキャンセルする
ALTER SYSTEM CANCEL TRANSFER PARTITION ALL [TENANT = 'tenant_name'];
パラメータ説明
パラメータ |
説明 |
|---|---|
| table_id | テーブルID。 |
| object_id | パーティションの一意の識別子。 |
| tenant_name | タスクをキャンセルするテナント名を指定します。オプションですが、システムテナントで実行する場合は指定する必要があります。 |
例
特定のパーティションのTransfer Partitionタスクをキャンセルする。
以下のステートメントを使用して、テナント内のTransfer Partitionタスクを照会します。
SELECT T.TENANT_NAME, S.TENANT_ID, S.TABLE_ID, S.OBJECT_ID, S.TASK_ID, S.STATUS FROM oceanbase.CDB_OB_TRANSFER_PARTITION_TASKS S, oceanbase.DBA_OB_TENANTS T WHERE S.TENANT_ID = T.TENANT_ID;実行結果は次のとおりです:
+-------------+-----------+----------+-----------+---------+---------+ | TENANT_NAME | TENANT_ID | TABLE_ID | OBJECT_ID | TASK_ID | STATUS | +-------------+-----------+----------+-----------+---------+---------+ | oracle001 | 1004 | 500061 | 500064 | 9 | WAITING | +-------------+-----------+----------+-----------+---------+---------+ 1 row in set以下のステートメントを実行して、テナント
oracle001の特定のパーティションのTransfer Partitionタスクをキャンセルします。ALTER SYSTEM CANCEL TRANSFER PARTITION TABLE_ID = 500061, OBJECT_ID = 500064 TENANT = 'oracle001';
テナント
oracle001のすべてのTransfer Partitionタスクをキャンセルする。ALTER SYSTEM CANCEL TRANSFER PARTITION ALL TENANT = 'oracle001';