OceanBase 回收站(Recycle Bin)中对象的清理机制,以下说法正确的是?

** OceanBase 回收站(Recycle Bin)中对象的清理机制,以下说法正确的是?**

A. 回收站中的表被 PURGE 命令删除后,其物理存储空间会立即释放给操作系统,其他租户可以立刻使用该空间。

B. 回收站对象的默认保留时间为 7 天,超时后系统会自动执行 PURGE ,但 DROP TABLE 时指定 PURGE 选项可以直接跳过回收站并物理删除。

C. 从回收站中恢复表(FLASHBACK TABLE ... TO BEFORE DROP )时,要求原表的所有索引、约束名称在当前数据库中没有冲突,否则恢复失败。

D. 回收站占用的是租户独立的数据空间,当租户空间不足时,系统会优先自动清理回收站中的对象,而不考虑对象保留时间。

解析
使用 FLASHBACK TABLE ... TO BEFORE DROP 从回收站恢复表时,原表上的索引、约束、触发器等相关对象也会被恢复。如果当前数据库中已存在同名索引或约束(例如因为重新创建了同名表而自动生成同名索引),则恢复会因为命名冲突而失败。通常需要先重命名或删除冲突对象,或使用 RENAME TO 子句指定新的表名。

  • A 错误PURGE 删除回收站对象后,物理空间不会立即释放给操作系统 ,而是标记为可重用,归本租户后续写入使用。释放给操作系统需要等待合并(Major Compaction)或执行 ALTER SYSTEM SHRINK SPACE
  • B 错误 :回收站对象的默认保留时间为 0 天 (即不会自动清理),需手动配置 recyclebin_object_expire_time 参数,或通过 PURGE RECYCLEBIN 手动清理。DROP TABLE ... PURGE 确实会跳过回收站,直接物理删除。
  • C 正确 :恢复表时,需要保证所有依赖对象(索引、约束等)的名称在当前数据库中唯一,否则恢复失败,这是常见的限制。
  • D 错误 :租户空间不足时,不会自动清理回收站 。OceanBase 会首先触发 MemStore 冻结、转储,如果仍不足则写入限速,最终可能报错空间不足。回收站中的对象必须由用户显式 PURGE 或配置超时自动清理。

正确答案:C