系统租户不会被执行 DROP 操作,租户级回收站的管理主要由系统租户来完成,系统租户通过执行各类回收站相关的命令来完成对租户级回收站的管理。

租户级的回收站对象仅可能出现在系统租户下。

对于租户级的回收站对象:

  • DROP TENANT 是将租户名称变更为统一的回收站中的格式,租户实际占用的空间并没有释放,只是不能再向该租户建立新的连接。

  • 执行 FLASHBACK 时,可以使用租户原始的名称,也可以使用回收站中的名称,回收站中的名称全局唯一,因此使用回收站中的名称,可以明确恢复的是哪个租户。当多个租户存在相同的原始名称时,此时恢复的租户是这些租户中最后进入回收站中的租户。

在系统租户下使用 SHOW RECYCLEBIN 语句,可以查看当前系统租户 Recyclebin 中的回收站功能。

其中,OBJECT_NAME 是在回收站中的名称; 是原始名称。

示例中,mysql 即为一个租户类型的回收站对象。

在系统租户下使用 SET 语句,可以开启和关闭系统租户的 Recyclebin 功能。

示例如下:

  • 开启回收站功能

    1. obclient> SET GLOBAL recyclebin=true;
    2. Query OK, 0 rows affected (0.01 sec)
  • 关闭回收站功能

当系统租户的回收站功能开启时,执行 DROP TENANT 操作后,相应的租户默认会进入回收站。您可以使用 FLASHBACK 语句将回收站内的租户恢复为正常租户。

  • 将系统租户回收站中的 tenant_name 闪回为正常租户。

    1. 将系统租户回收站中的 tenant_name 闪回为正常租户,并重命名 。

    系统租户执行 Purge 操作,可以将回收站中的对象彻底删除。

    • 将租户 tenant_name 从回收站中彻底清除。

      1. obclient> PURGE TENANT tenant_name;
    • 将回收站中的全部对象全部彻底清除。

      说明

      对于主备库场景: