ITPub博客

首页 > 数据库 > 国内数据库 > 【手摸手玩转 OceanBase 148】租户回收站

【手摸手玩转 OceanBase 148】租户回收站

原创 国内数据库 作者:13579NB232 时间:2023-01-19 16:42:51 0 删除 编辑

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

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

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

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

注意事项

对于租户回收站对象:

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

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

    Flashback 回收站对象的相关操作请参见  闪回回收站对象。

查看回收站

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

背景信息

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:表示回收站对象所属的类型。当前主要支持  INDEX、 TABLE 、  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;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026124/viewspace-2932862/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2023-01-18

  • 博文量
    184
  • 访问量
    93196