首批通过分布式安全可靠测评,为关键业务系统打造
删除租户后,租户状态停滞在 TENANT_STATUS_DROPPING
更新时间:2026-07-02 15:41
OceanBase 数据库中,执行了删除租户操作后,租户的状态可能会停滞在 TENANT_STATUS_DROPPING。本文介绍了租户删除的机制。
适用版本
OceanBase 数据库所有版本
问题现象
删除租户后,查询 __all_tenant 表,发现删除的租户状态一直停滞在 TENANT_STATUS_DROPPING。
obclient> SELECT * FROM __ALL_TENANT;
-----+--------+----------------+---------------+-----------+-----------------------+---------------+---------------------+-------------------+------------------------+-----------------------------+-----------------------+--------------------+------------------+----------------------+---------------+
| gmt_create | gmt_modified | tenant_id | tenant_name | replica_num | zone_list | primary_zone | locked | collation_type | info | read_only | rewrite_merge_version | locality | logonly_replica_num | previous_locality | storage_format_version | storage_format_work_version | default_tablegroup_id | compatibility_mode | drop_tenant_time | status | in_recyclebin |
+----------------------------+----------------------------+-----------+-------------+-------------+-----------+--------------+--------+----------------+---------------+-----------+-----------------------+---------------+---------------------+-------------------+------------------------+-----------------------------+-----------------------+--------------------+------------------+------------------------+---------------+
| 2021-06-21 15:46:41.103161 | 2021-06-21 15:46:41.103161 | 1 | sys | -1 | zone1 | zone1 | 0 | 0 | system tenant | 0 | 0 | FULL{1}@zone1 | 0 | | 3 | 1 | -1 | 0 | -1 | TENANT_STATUS_NORMAL | 0 |
| 2021-06-21 15:50:30.641727 | 2021-06-21 15:50:30.641727 | 1001 | xxxxx | -1 | zone1 | RANDOM | 0 | 0 | | 0 | 0 | FULL{1}@zone1 | 0 | | 3 | 2 | -1 | 0 | -1 | TENANT_STATUS_NORMAL | 0 |
| 2021-06-21 15:50:54.493727 | 2021-06-21 15:50:54.493727 | 1002 | xxxxxx | -1 | zone1 | RANDOM | 0 | 0 | | 0 | 0 | FULL{1}@zone1 | 0 | | 3 | 2 | -1 | 1 | -1 | TENANT_STATUS_NORMAL | 0 |
| 2021-06-21 15:51:26.715477 | 2021-06-21 15:51:26.715477 | 1003 | xxxxxx | -1 | zone1 | RANDOM | 0 | 0 | | 0 | 0 | FULL{1}@zone1 | 0 | | 3 | 2 | -1 | 1 | 1608885265828239 | TENANT_STATUS_DROPPING | 0 |
+----------------------------+----------------------------+-----------+-------------+-------------+-----------+--------------+--------+----------------+---------------+-----------+-----------------------+---------------+---------------------+-------------------+------------------------+-----------------------------+-----------------------+--------------------+------------------+------------------------+---------------+
3 rows in set (0.00 sec)
可能原因
出现这种情况是由于租户并未被真正删除。一般有以下三种情况:
没有开启回收站,直接执行
DROP TENANT,租户延迟删除。开启了回收站,并对回收站中的 TENANT 执行
PURGE TENANT与PURGE RECYCLEBIN,租户延迟删除。开启了回收站,直接执行
DROP TENANT PURGE操作,租户延迟删除。
执行删除租户的操作后,只会修改租户状态标识使该租户不可见,但是并不会真正地删除租户;默认情况下,在 7 天后,该租户才会真正被删除。该行为由系统配置项 schema_history_expire_time 控制,有关该系统配置项的详细信息,请参见《OceanBase 数据库 参考指南》中的 配置项参考 章节。
解决方式
修改 schema_history_expire_time 系统配置项,调整租户删除的生效时间,等待租户删除生效之后再查询租户状态。
执行以下命令修改 schema_history_expire_time 系统配置项,取值范围为 [1h, 30d]。
obclient> ALTER SYSTEM SET schema_history_expire_time='1h';
Query OK, 0 rows affected (0.07 sec)