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

Flashback Archive

原创 张超 2025-06-26
185

 一、核心概念
功能定位
Flashback Archive(FBDA)是Oracle 11g引入的特性,用于长期存储表的历史变化数据,支持基于时间点或SCN的历史查询,满足审计、合规性需求。
与归档日志的区别:归档日志记录Redo日志用于灾难恢复,而FBDA存储UNDO数据用于历史追溯。
别称:Oracle Total Recall(全面回忆),强调其完整回溯能力。


核心机制
后台进程FBDA:异步捕获表数据变更,将历史数据写入专用归档表(如SYS_FBA_HIST_xxx)。
独立存储:数据保存在用户创建的表空间中,与UNDO表空间分离,避免UNDO覆盖导致历史丢失。
压缩与分区:历史数据自动压缩并分区存储,减少空间占用。
二、工作机制
数据捕获流程
当启用FBDA的表发生DML操作时,FBDA进程从数据库缓冲区或UNDO表空间提取变更前的数据。
数据经整理后写入历史表,保留原始行结构(不含索引)。
保留策略
可创建多个FBDA区域,每个关联独立表空间并设置保留期限(如1天、1年甚至20年)。
到期数据自动清理,避免手动维护。
多策略配置示例:
| FBDA名称 | 表空间 | 保留期限 | 适用场景 |
|--------------|--------|----------|----------|
| FBDA_SHORT | TS_90D | 90天 | 短期审计 |
| FBDA_LEGAL | TS_20Y | 20年 | 法律合规 |

二、测试:

1 創建 flashback archive 所需表空間


create tablespace tbs1 datafile size 100M autoextend on;

2 創建flashback archive
create flashback archive fla1 tablespace tbs1 retention 2 year;


3 将 Flashback Archive 对象对 Flashback 数据存档 (fla1) 的权限授予存档用户 (zc)。
grant flashback archive on fla1 to ZC;


4 將某張表打開歸檔保存

alter table ttt flashback archive fla1;


5 查看当前时间
select to_timestamp(sysdate) from dual;

SQL> select to_timestamp(sysdate) from dual;

TO_TIMESTAMP(SYSDATE)
---------------------------------------------------------------------------
09-JUN-25 12.00.00 AM


6 查看历史数据

select object_id,DATA_OBJECT_ID from ttt where OBJECT_ID=7788;


update ttt set DATA_OBJECT_ID=DATA_OBJECT_ID+100 where OBJECT_ID=7788;

1 row updated.

-- 查询1小时内所有数据版本

SQL> SELECT versions_xid, versions_operation, DATA_OBJECT_ID FROM ttt VERSIONS BETWEEN TIMESTAMP SYSTIMESTAMP - INTERVAL '2' HOUR AND SYSTIMESTAMP where OBJECT_ID=7788 ;
0B00150050110000 U

0A001000DA270000 U 7888

7 回退:
alter table ttt no flashback archive ;





SQL> select DATA_OBJECT_ID from ttt as of timestamp to_timestamp('2025-06-12 09:11:55','yyyy-mm-dd hh24:mi:ss') where OBJECT_ID=7788;

DATA_OBJECT_ID
--------------


SQL> select DATA_OBJECT_ID from ttt as of timestamp to_timestamp('2025-06-12 09:12:25','yyyy-mm-dd hh24:mi:ss') where OBJECT_ID=7788;

DATA_OBJECT_ID
--------------
7888












































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

评论