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

OceannBase回收站

OceanBase 2022-11-05
293

回收站从原理上来说就是一个数据字典表,用于放置用户删除的数据库对象信息,包括数据库和表等信息。用户删除的信息被放入回收站后,其实仍然占据着物理空间,除非您手动清除(PURGE)或者对象定期被数据库系统删除。

回收站支持的对象

如下表所示,在当前版本中,支持进入回收站的对象有索引、表和库。

模式索引(Index)表(Table)数据库(Database)租户(Tenant)
MySQL支持支持支持支持
Oracle支持支持不支持不支持

注意

  • 直接 DROP 索引不会进入回收站,删表时表上的索引会跟随主表一起进入回收站。

  • 不能对回收站的对象做任何查询和 DML 操作,DDL 操作中只能进行 Purge 和 Flashback。

  • 租户回收站的管理主要由 sys 租户来完成。

查看回收站

租户管理员可以通过如下命令,查看回收站中的对象:

obclient> SHOW RECYCLEBIN;

开关回收站

租户被创建后,默认回收站为关闭状态。如果开启了回收站,在对数据库对象进行 TRUNCATE 或 DROP 操作后,对象会进入回收站,控制回收站开启关闭的命令分为 Global 级别和 Session 级别:

  • Global 级别的开启、关闭语句如下所示:

    obclient> SET GLOBAL recyclebin = ON/OFF;
    
  • Session 级别的开启、关闭语句如下所示:

    obclient> SET @@recyclebin = ON/OFF;
    

回收站恢复

使用 FLASHBACK 命令可恢复回收站中的数据库和表对象,只有租户的管理员用户才可以使用该命令。恢复时可修改对象的名称,但是不要和已有对象重名。

下述示例语句展示了如何恢复回收站中的租户、数据库及表对象:

  • 恢复租户

    obclient> FLASHBACK TENANT tenant_name TO BEFORE DROP [RENAME to new_tenant_name];
    
  • 恢复对象数据库

    obclient> FLASHBACK DATABASE object_name TO BEFORE DROP [RENAME TO database_name];
    
  • 恢复对象表

    obclient> FLASHBACK TABLE object_name TO BEFORE DROP [RENAME to table_name];
    

命令的使用限制如下:

  • FLASHBACK 数据库对象的顺序需要符合从属关系,即:Database > Table。

  • 恢复表会连同索引一并恢复。

  • 通过 PURGE 命令可以单独删除索引,但是 FLASHBACK 命令不支持单独恢复索引。

  • 如果一张表在进回收站之前属于某个表组,则删除该表组后再恢复改表会导致它不属于任何一个表组。如果表组还在,则恢复后该表还在原表组中。

回收站清理

频繁删除数据库对象并重建,会在回收站产生大量数据,这些数据可以通过 PURGE 命令清理。需要注意的是,PURGE 操作会删除对象和从属于该对象的对象(Database > Table > Index )。

执行 PURGE 命令后,在 OceanBase 数据库的回收站中将再也查不到对象的信息,真实数据也最终会被垃圾回收。当一个对象的上层对象被 Purge,则当前回收站中关联的下一层对象也会被 Purge。

下述示例展示了一些如何通过 PURGE 命令清理回收站中的数据:

  • sys 租户从回收站把指定租户物理删除。

    obclient> PURGE TENANT tenant_name;
    
  • 从回收站把指定库物理删除。

    obclient> PURGE DATABASE object_name;
    
  • 从回收站中把指定表物理删除。

    obclient> PURGE TABLE object_name;
    
  • 从回收站中把指定索引表物理删除。

    obclient> PURGE TABLE object_name;
    
  • 清空整个回收站。

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

评论