9.在OceanBase数据库中,关于闪回查询(Flashback Query)的功能实现,以下说法错误的是:

A. OceanBase数据库的合并会删除多版本数据,闪回查询不能查询合并之前的历史版本的数据

B. 闪回查询是通过指定时间或版本号来查询历史版本的数据

C. 历史数据的保留范围由租户配置项来控制,数据转储时OceanBase会将超过保留范围的数据删除

D. 内存中的多版本数据在转储后会保留在磁盘上,闪回查询也可以查询磁盘中的多版本数据

选择D

1 个赞

选A
OceanBase 的大合并(Major Freeze)确实会将内存中的增量数据与磁盘上的基线数据进行合并,生成新的全量基线数据。但是,这并不意味着合并前的历史版本数据会被立刻物理删除。系统会根据租户级别的配置项 undo_retention (默认值为 1800 秒)来决定保留多长时间内的事务快照5。只要在这个保留时间窗口内,即使发生了大合并,你依然可以通过闪回查询找回历史版本的数据。

  • 选项 B 的正确性
    闪回查询的核心就是通过指定一个特定的时间点或版本号来“穿越”回过去查看数据。在 OceanBase 中,Oracle 模式支持通过 AS OF SCN (系统变更号)和 AS OF TIMESTAMP (时间戳)两种方式来查询;MySQL 模式则支持通过 AS OF SNAPSHOT (快照版本号)来查询2。
  • :white_check_mark: 选项 C 的正确性
    历史数据的生命周期完全由租户级配置项 undo_retention 控制。当系统进行转储(Minor Freeze)操作时,OceanBase 会自动清理并回收那些超过了 undo_retention 设定范围的多版本数据,以释放存储空间8。
  • :white_check_mark: 选项 D 的正确性
    当内存中的多版本数据(MemTable)被冻结并转储到磁盘后,这些增量数据会以宏块(Macro Block)的形式持久化保存在磁盘上。闪回查询不仅可以读取内存中尚未转储的最新多版本数据,同样也能读取已经落盘的增量文件中的历史数据5。
1 个赞

选择D

1 个赞

2334加油

1 个赞

3790

学习到了

选择D

2 个赞

DD

1 个赞

对啦

1 个赞

选择D

1 个赞