虽然可以依赖undo数据来查询row的旧版本数据,甚至可以执行逻辑恢复。但是你不能期待在undo中找到非常旧的数据。undo数据主要是用来提供读一致性。

在11G中,提供了Flashback Data Archive新特性,Flashback Data Archive可以自动存储表随着时间的推移发生的改变,时间的长度由用户决定。超过archive的保留期限,Flashback Data Archive会自动清除老的数据,但是不能修改Flashback Data Archive中的数据。Flashback Data Archive不用在数据库级别开启,可以只对用户指定的表。

flashback data archive数据库中的一个逻辑容器,包含了某个表或多个表的历史数据,以及其retention和purge策略。

flashback data archive将数据放在用户指定的表空间中;

flashback data archive可以含有多个表; 通过将表放入不同的flashback data archive,不同的表可以设置不同的retention策略; 可以创建多个flashback data archivei,也可以为数据库设置默认的flashback data archive;

在数据过期一天后,数据库会自动purge flashback data archive的过期数据;

表开启flashback data archive功能后,数据库会创建一个内部历史表来存放历史数据。历史表相比源表,会增加一些时间戳列来标识事务信息。

对表开启flashback data archive功能后,oracle后台进程fbda(Flashback Data Archiver)负责将表的改变数据写入flashback data archive

insert 操作不会为历史表增加任何行,因为没有前镜像。update、delete操作,fdba进程会记录修改前的行到历史表。默认是每5分钟唤醒一次(oracle会自动调节这个频率),fdba会优先从buffer cache中的undo读取数据,如果已经被清空,就会从undo segments中读取信息。

Flashback Data Archive和Flashback Database的区别:

-前者不改变当前数据,只是提供了访问过去某个时间的数据;后者会将数据库变成过去某个时间的数据

-前者需要开启table track功能;后者需要开启flashback database功能

-前者是online特性;后者是offline特性

-前者可以在table级别;后者是数据库级别

监控flashback data archive:

-dba_flashback_archive_tables

-dba_flashback_archive

-dba_flashback_archive_ts

Flashback Data Archive存在的限制:

-可以在源表上增加列,但是不能删除列(除非先取消flashback archive,这样会丢失历史表中的数据)

-不能使用alter table命令来rename或修改源表的列

-不能使用alter table命令执行分区、子分区操作,或将long列转换成lob列

-不能drop table或truncate tablespace

最新文章

  1. [RxJava^Android]项目经验分享 --- RxLifecycle功能实现分析(二)
  2. Web前端框架与类库的思考
  3. iOS CFNetwork报错
  4. AppleScript的字典怎么看怎么用
  5. [Tex学习]编号
  6. 如何在 在SharePoint 2013/2010 解决方案中添加 ashx (HttpHandler)
  7. Light OJ 1393 Crazy Calendar (尼姆博弈)
  8. Mvc 自带分页控件PagedList.Mvc Demo示例
  9. Mac系统安装Lua(转)
  10. FTP两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)
  11. 标头“Vary:Accept-Encoding”指定方法及其重要性分析
  12. HDU 1069 monkey an banana DP LIS
  13. 免费 Https 证书(Let's Encrypt)申请与配置
  14. linux centos6.5安装KVM
  15. vm中的nat模式不能连接到主机,以及不能上网
  16. MTK之DrvGen的使用
  17. auth模块(登录验证)
  18. OneZero第一次随感
  19. 2-sat-总结+例题
  20. Intellij IDEA的激活(2100年你值得拥有)

热门文章

  1. nodejs模块——网络编程模块
  2. 乐观锁和悲观锁及CAS实现
  3. 【AtCoder】全国統一プログラミング王決定戦予選/NIKKEI Programming Contest 2019
  4. python全栈开发day49-jquery的位置信息、事件流、事件对象,事件委托,事件绑定和解绑
  5. 【Java】 剑指offer(53-2) 0到n-1中缺失的数字
  6. 《Gradle权威指南》--自定义Android Gradle工程
  7. shell 环境变量
  8. C#多线程编程实战(二):线程同步
  9. python魔法方法-反射运算和增量运算
  10. for循环的灵活性