暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分布式数据库学习Note87:OceanBase社区版中,租户回收站是什么?

本节主要介绍租户级回收站的查看、开启、关闭及清理操作。

除了支持 DATABASETABLEINDEX 等类型的回收站对象外,当前 OceanBase 数据库还支持租户级的回收站对象。

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

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

注意事项

对于租户回收站对象:

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

  • 执行 PURGE TENANT 时,可以使用原始名称和回收站中的名称。与 FLASHBACK 不同,PURGE TENANT 时,如果多个原始名称相同,则删除的是最早进入回收站中的租户。

查看回收站

在 sys 租户下使用 SHOW RECYCLEBIN 语句,可以查看系统中的所有回收站对象。

背景信息

sys 租户在对其他租户执行 DROP TENANT 操作时:

  • 如果回收站为开启状态,则该租户会进入回收站,回收站中可以查询到该租户。

  • 如果回收站为关闭状态,则该租户不会进入回收站,回收站中也无法查询到该租户。

操作步骤

  1. 使用 root 用户登录到数据库的 sys 租户。

  2. 执行以下语句,查看回收站对象。

    示例如下:

    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:表示回收站对象所属的类型。当前主要支持 INDEXTABLE 、 DATABASE 和 TENANT 等四种类型。本示例中,mysql 即为一个租户类型的回收站对象。

    • CREATETIME:表示该对象进入回收站的时间。

开启和关闭回收站

sys 租户中默认回收站为关闭状态,如果开启了 sys 租户的回收站功能,则对某个租户执行 DROP TENANT 操作后,该租户会进入回收站。

具体操作如下:

  1. 使用 root 用户登录数据库的 sys 租户。

  2. 执行以下语句,查看回收站状态。

    obclient> SHOW VARIABLES LIKE 'recyclebin';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | recyclebin    | OFF   |
    +---------------+-------+
    1 row in set
    
  3. 执行以下语句,开启或关闭回收站功能。

    由于变量 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;
    
  4. 设置后,需要重新登录建立新的 Session 才能生效。

清理回收站

在 sys 租户中执行 Purge 操作,可以将回收站中的租户或所有对象彻底删除。

  1. 使用 root 用户登录数据库的 sys 租户。

  2. 根据业务需要,选择合适的语句,清理回收站。

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

      其中,tenant_name 可以使用原始名称,也可以使用回收站中的名称。使用原始名称时,如果回收站中当前有相同的多个原始名称,则清除的是最早进入回收站中的租户。

      将租户从回收站中彻底清除时,租户下的所有对象也会一并被清除。

      obclient> PURGE TENANT tenant_name;
      

      说明

      本节主要介绍如何清理回收站中的租户,回收站中其他类型的对象的清理请参见 数据库、表和索引回收站

    • 将所有对象从回收站中彻底清除。

      obclient> PURGE RECYCLEBIN;
      
  3. (可选)完成后,可以执行以下语句,确认回收站中符合条件的对象是否被清理。

    obclient> SHOW RECYCLEBIN;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论