OceanBase V4 中闪回查询如何工作?有哪些限制?

OceanBase V4 中闪回查询如何工作?有哪些限制?

闪回查询允许用户查询历史版本数据,用于误操作恢复。

实现方式:

  • 基于 undo_retention :设置租户级配置项 undo_retention (默认 1800 秒),控制多版本数据保留时间窗口,查询 T - undo_retention 到当前时间 T 范围内的历史数据。
  • 基于 Restore Point :创建快照点保存特定历史版本,通过 SCN 查询。

语法差异:

  • Oracle 模式 :支持 AS OF SCN 和 AS OF TIMESTAMP 。
  • MySQL 模式 :支持 AS OF SNAPSHOT (微秒级时间戳)。

使用限制:

  • 仅对 undo_retention 设置时间点之后 的数据生效。
  • 不支持 TRUNCATE 操作恢复(DDL 导致表定义变更)。
  • 表被 DROP 进回收站后,需先用 FLASHBACK TABLE TO BEFORE DROP 恢复表结构。
  • 时间窗口内发生 DDL(如加列),新列显示为 Default 值;删表/删列可能报错。
  • 调大 undo_retention 会导致存储空间放大。