説明
このステートメントは、現在実行中の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';