首批通过分布式安全可靠测评,为关键业务系统打造
取消 Transfer Partition
更新时间:2026-04-30 19:06:39
手动发起 Transfer Partition 后,您可以根据业务需要,取消 Transfer Partition 任务。
使用限制
不可取消处于
DOING状态的 Transfer Partition 任务,但可以取消处于其他状态的 Transfer Partition 任务。取消 Transfer Partition 任务的操作只能在主库(即主租户)上执行。
系统租户取消 Transfer Partition
使用
root用户登录到集群的sys租户。连接示例如下,连接数据库时请以实际环境为准。
obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -A查询视图
CDB_OB_TRANSFER_PARTITION_TASKS,获取当前任务的状态。obclient [oceanbase]> SELECT TENANT_ID, TABLE_ID, OBJECT_ID, STATUS FROM oceanbase.CDB_OB_TRANSFER_PARTITION_TASKS WHERE TENANT_ID = 1002;查询结果如下:
+-----------+----------+-----------+---------+ | TENANT_ID | TABLE_ID | OBJECT_ID | STATUS | +-----------+----------+-----------+---------+ | 1002 | 500006 | 500008 | WAITING | +-----------+----------+-----------+---------+ 1 row in set查询结果中,只有
STATUS为非DOING状态(WAITING、INIT等)的任务才能取消。如果希望取消的任务的
STATUS为DOING状态,您可以通过将租户级配置项enable_transfer的值修改为false来关闭 Transfer 功能。关闭 Transfer 功能后,所有DOING状态的 Transfer Partition 任务都会回退到WAITING状态,就可以执行取消 Transfer Partition 的操作了。有关配置项
enable_transfer的详细说明及设置,请参见 enable_transfer。根据查询结果,选择合适的操作:
取消指定租户指定分区的 Transfer Partition 任务
ALTER SYSTEM CANCEL TRANSFER PARTITION TABLE_ID [=] table_id OBJECT_ID [=] object_id TENANT = 'tenant_name';其中:
table_id:待取消分区的表 ID。object_id:待取消的分区。tenant_name:待取消分区的租户。
示例如下:
obclient [oceanbase]> ALTER SYSTEM CANCEL TRANSFER PARTITION TABLE_ID = 500006, OBJECT_ID = 500008 TENANT = 'mysql_tenant';取消指定租户下所有的 Transfer Partition 任务
ALTER SYSTEM CANCEL TRANSFER PARTITION ALL TENANT = 'tenant_name';示例如下:
obclient [oceanbase]> ALTER SYSTEM CANCEL TRANSFER PARTITION ALL TENANT = 'mysql_tenant';
用户租户取消 Transfer Partition
MySQL 模式租户或 Oracle 模式租户的租户管理员连接数据库。
连接示例如下,连接数据库时请以实际环境为准。
obclient -h10.xx.xx.xx -P2883 -uroot@mysql_tenant#obdemo -p***** -A查询视图
DBA_OB_TRANSFER_PARTITION_TASKS,获取当前任务的状态。MySQL 模式Oracle 模式MySQL 模式下的查询语句如下:
obclient [oceanbase]> SELECT TABLE_ID, OBJECT_ID, STATUS FROM oceanbase.DBA_OB_TRANSFER_PARTITION_TASKS;Oracle 模式下的查询语句如下:
obclient [SYS]> SELECT TABLE_ID, OBJECT_ID, STATUS FROM SYS.DBA_OB_TRANSFER_PARTITION_TASKS;查询结果的示例如下:
+----------+-----------++--------+ | TABLE_ID | OBJECT_ID | STATUS | +----------+-----------+--------+ | 500046 | 500052 | INIT | +----------+-----------+--------+ 1 row in set查询结果中,只有
STATUS为非DOING状态(WAITING、INIT等)的任务才能取消。如果希望取消的任务的
STATUS为DOING状态,您可以通过将租户级配置项enable_transfer的值修改为false来关闭 Transfer 功能。关闭 Transfer 功能后,所有DOING状态的 Transfer Partition 任务都会回退到WAITING状态,就可以执行取消 Transfer Partition 的操作了。有关配置项
enable_transfer的详细说明及设置,请参见 enable_transfer。根据查询结果,选择合适的操作:
取消本租户指定分区的 Transfer Partition 任务
ALTER SYSTEM CANCEL TRANSFER PARTITION TABLE_ID [=] table_id OBJECT_ID [=] object_id;其中:
table_id:待取消分区的表 ID。object_id:待取消的分区。
示例如下:
obclient [oceanbase]> ALTER SYSTEM CANCEL TRANSFER PARTITION TABLE_ID = 500046, OBJECT_ID = 500052;取消本租户下所有的 Transfer Partition 任务
obclient> ALTER SYSTEM CANCEL TRANSFER PARTITION ALL;