Oracle闪回数据归档
使用Oracle闪回数据归档功能可以自动跟踪和归档启用了闪回数据归档的表中的数据。这可确保闪回查询能够获得对数据库对象版本的SQL 级别访问权限,而不会出现快照太旧的错误。
 
利用闪回数据归档功能,可以在“跟踪的”表的整个生命期内跟踪并存储对该表的所有事务处理更改。不再需要将此智能功能内置到应用程序中。闪回数据归档功能对于遵守规定、审计报告、数据分析和决策支持系统非常有用。闪回数据归档后台进程随数据库一起启动。 
闪回数据归档包含一个或多个表空间。可以拥有多个闪回数据归档,它们都配置有保留时间。您应根据保留时间的要求创建不同的闪回数据归档,例如,为必须保留两年的所有记录创建一个闪回数据归档,为必须保留五年的所有记录创建另一个闪回数据归档。数据库将在保留期到期后的第一天自动清除所有历史记录信息。
Oracle 11g Flashback Data Archive(闪回数据归档)
闪回数据归档的过程:
1.创建闪回数据归档。 
2.指定默认闪回数据归档。 
3.启用闪回数据归档。 
4.查看闪回数据归档数据。
-- create the Flashback Data Archive
CREATE FLASHBACK ARCHIVE DEFAULT fla1 TABLESPACE tbs1 QUOTA 10G RETENTION 5 YEAR;
-- Specify the default Flashback Data Archive  
ALTER FLASHBACK ARCHIVE fla1 SET DEFAULT; 
-- Enable Flashback Data Archive  
ALTER TABLE inventory FLASHBACK ARCHIVE; 
ALTER TABLE stock_data FLASHBACK ARCHIVE;
SELECT product_number ,product_name ,count 
FROM inventory 
AS OF TIMESTAMP TO_TIMESTAMP ('2007-01-01 00:00:00' ,'YYYY-MM-DD HH24:MI:SS');
可以选择增加空间:
ALTER FLASHBACK ARCHIVE fla1  
ADD TABLESPACE tbs3 QUOTA 5G; 
可以选择更改保留时间:
ALTER FLASHBACK ARCHIVE fla1 MODIFY RETENTION 2 YEAR;
可以选择清除数据: 
ALTER FLASHBACK ARCHIVE fla1 PURGE BEFORE TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' day); 
可以选择删除闪回数据归档:
DROP FLASHBACK ARCHIVE fla1;
查看闪回数据归档 :
视图名称 (DBA/USER)          说明 
*_FLASHBACK_ARCHIVE          显示有关闪回数据归档的信息 
*_FLASHBACK_ARCHIVE_TS          显示闪回数据归档的表空间 
*_FLASHBACK_ARCHIVE_TABLES  显示有关启用了闪回归档的表的信息
可使用动态数据字典视图查看跟踪的表和闪回数据归档元数据。要访问 USER_FLASHBACK_* 视图,必须拥有表的所有权。要检查
DBA_FLASHBACK_* 视图,您需要 SYSDBA 权限。
闪回数据归档的 DDL 限制 :
对启用了闪回数据归档的表执行以下任一 DDL 语句都会产生 ORA-55610 错误:
1.执行以下操作的 ALTER TABLE 语句: 
--删除、重命名或修改某一列 
--执行分区或子分区操作 
--将 LONG 列转换为 LOB 列 
--包括 UPGRADE TABLE 子句,带有或不带 INCLUDING DATA 子句
2.DROP TABLE 语句
3.RENAME TABLE 语句
4.TRUNCATE TABLE 语句

