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