版本:7.0.0

FLASHBACK TABLE ​

功能描述 ​

FLASHBACK即闪回功能,允许用户在不需要备份的情况下,快速恢复误删除或误修改的数据。

注意事项 ​

  • 执行需要有FLASHBACK权限,闪回其他用户的表需要申请FLASHBACK ANY TABLE权限
  • FLASHBACK TABLE可以从回收站闪回和UNDO日志闪回。TRUNCATE/DROP的表从回收站闪回,新增更新的对象数据从UNDO闪回

语法格式 ​

sql
FLASHBACK TABLE [schema_name.]table_name
TO { 
    SCN scn_expr 
    | TIMESTAMP ts_expr 
    | BEFORE {DROP [RENAME TO table_name] | TRUNCATE FORCE}
}

参数说明 ​

  • [schema_name.]table_name: 需要闪回的表。物化视图、外部表、系统表、独立分区、子分区表无法闪回,DDL操作变更表结构后无法从UNDO闪回
  • SCN scn_expr: 从UNDO闪回,scn_expr是要闪回的时间点对应的SCN号
  • TIMESTAMP ts_expr: 从UNDO闪回,ts_expr是要闪回的时间点对应的时间戳
  • BEFORE DROP: 闪回已删除的表
  • BEFORE DROP RENAME TO: 闪回已删除的表并指定一个新的名称
  • BEFORE TRUNCATE FORCE: 闪回到truncate之前, TRUNCATE PURGE/DROP STORAGE/REUSE STORAGE的表无法闪回

示例 ​


-- 恢复drop的表
flashback table tb1 to before drop;

-- 恢复drop的表并重命名
flashback table tb1 to before drop rename to new_tb1;

-- 恢复truncate的表
flashback table tb1 to before truncate force;

-- 查询回收站
SELECT * FROM SYS_RECYCLEBIN;

-- 通过SCN闪回
flashback table tb1 to scn 138953777287169;

-- 从指定时间闪回
flashback table tb1 to timestamp to_date('2025-12-23 21:11:29');

相关视图 ​

SYS_RECYCLEBIN ​

  • ID:对象ID
  • NAME: 对象名称
  • USER#: 用户ID
  • ORG_NAME:原始对象名称
  • PARTITION_NAME:对象分区名称
  • TYPE#:对象类型。0-5依次代表 表、索引、LOB、分区表、分区索引、分区LOB
  • OPERATION#:操作类型
  • SPACE#:表空间ID
  • ENTRY:入口页面ID
  • FLAGS:0x0001:是否闪回,0x0010:是否purge,0x0100:是否约束,0x1000:是否encode
  • ORG_SCN:对象创建SCN
  • REC_SCN:对象回收SCN
  • TCHG_SCN:对象定义改变SCN
  • BASE_ID:基对象ID
  • PURGE_ID:对象ID