本节主要介绍租户级回收站的查看、开启、关闭及清理操作。
除了支持 DATABASE、TABLE、INDEX 等类型的回收站对象外,当前 OceanBase 数据库还支持租户级的回收站对象。
sys 租户不会被执行 Drop 操作,租户回收站的管理主要由 sys 租户来完成,sys 租户通过执行各类回收站相关的命令来完成对租户回收站的管理。
租户的回收站对象仅可能出现在 sys 租户下。
注意事项
对于租户回收站对象:
DROP TENANT操作仅仅是将租户名称变更为统一的回收站中的格式,租户实际占用的空间并没有释放,只是不能再向该租户建立新的连接。执行
PURGE TENANT时,可以使用原始名称和回收站中的名称。与FLASHBACK不同,PURGE TENANT时,如果多个原始名称相同,则删除的是最早进入回收站中的租户。
查看回收站
在 sys 租户下使用 SHOW RECYCLEBIN 语句,可以查看系统中的所有回收站对象。
背景信息
sys 租户在对其他租户执行 DROP TENANT 操作时:
如果回收站为开启状态,则该租户会进入回收站,回收站中可以查询到该租户。
如果回收站为关闭状态,则该租户不会进入回收站,回收站中也无法查询到该租户。
操作步骤
使用
root用户登录到数据库的sys租户。执行以下语句,查看回收站对象。
示例如下:
obclient> SHOW RECYCLEBIN; +--------------------------------+----------------+----------+----------------------------+ | OBJECT_NAME | ORIGINAL_NAME | TYPE | CREATETIME | +--------------------------------+----------------+----------+----------------------------+ | __recycle_$_1_1600136460199936 | wendo_table | TABLE | 2020-09-15 10:21:00.207886 | | __recycle_$_1_1600136479664128 | wendo_database | DATABASE | 2020-09-15 10:21:19.664534 | | __recycle_$_1_1600135793000960 | mysql | TENANT | 2020-09-15 10:23:25.773877 | +--------------------------------+----------------+----------+----------------------------+ 3 rows in set返回结果中:
OBJECT_NAME:表示该对象在回收站中的名称。ORIGINAL_NAME:表示原对象名。TYPE:表示回收站对象所属的类型。当前主要支持INDEX、TABLE、DATABASE和TENANT等四种类型。本示例中,mysql即为一个租户类型的回收站对象。CREATETIME:表示该对象进入回收站的时间。
开启和关闭回收站
sys 租户中默认回收站为关闭状态,如果开启了 sys 租户的回收站功能,则对某个租户执行 DROP TENANT 操作后,该租户会进入回收站。
具体操作如下:
使用
root用户登录数据库的sys租户。执行以下语句,查看回收站状态。
obclient> SHOW VARIABLES LIKE 'recyclebin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | recyclebin | OFF | +---------------+-------+ 1 row in set执行以下语句,开启或关闭回收站功能。
由于变量
recyclebin为 Bool 类型的变量,故支持多种取值,其中:on、1或true:表示开启租户级回收站。off、0或false:表示关闭租户级回收站。
语句如下:
obclient> SET GLOBAL recyclebin = on; obclient> SET GLOBAL recyclebin = off;或者
obclient> SET GLOBAL recyclebin = 1; obclient> SET GLOBAL recyclebin = 0;或者
obclient> SET GLOBAL recyclebin = true; obclient> SET GLOBAL recyclebin = false;设置后,需要重新登录建立新的 Session 才能生效。
清理回收站
在 sys 租户中执行 Purge 操作,可以将回收站中的租户或所有对象彻底删除。
使用
root用户登录数据库的sys租户。根据业务需要,选择合适的语句,清理回收站。
将租户从回收站中彻底清除。
其中,
tenant_name可以使用原始名称,也可以使用回收站中的名称。使用原始名称时,如果回收站中当前有相同的多个原始名称,则清除的是最早进入回收站中的租户。将租户从回收站中彻底清除时,租户下的所有对象也会一并被清除。
obclient> PURGE TENANT tenant_name;说明
本节主要介绍如何清理回收站中的租户,回收站中其他类型的对象的清理请参见 数据库、表和索引回收站。
将所有对象从回收站中彻底清除。
obclient> PURGE RECYCLEBIN;
(可选)完成后,可以执行以下语句,确认回收站中符合条件的对象是否被清理。
obclient> SHOW RECYCLEBIN;




