|
最初由 biti_rainy 发布
[B]其他几个 flashback table 功能我不想多说,和9i的原理基本差不多
3、Oracle Flashback Drop
Oracle 10g开始提供一个类似垃圾站的功能,来恢复不小心被drop的表
这个功能,其实,结合oracle触发dbwr的其中一个条件: 当发生 表的ddl 的时候会触发dnwr写数据文件。 这个功能,当初导致的是一个表被drop后,如果立即关机,可以使用dul从数据文件中把该表的内容 抓 出来
起实现的原理不过就是只对数据字典发生了变化而segment 本身还没有丢失,而触发dbwr也是为了让这个没有来得及被覆盖的segment的数据完整
10g中充分利用了这点,采用了数据库功能的方式恢复这个没有被覆盖的segment。所以这个功能的前提必须是 该表被drop后该表的segment的空间还没有被覆盖!
btw: 这些论点并不是来自oracle document ,而是看见这个功能后结合oracle的特征做出的推断。我坚信事实就是这样的。 oracle的很多新功能的推出都是基于以前的一些特性上的进一步完善而已 [/B]
其它的几个flashback我都将有系统的描述。
falshback database是采用日志
falsgback drop是采用表空间的空间
其它的都是与undo有关。。。
我觉得,drop没有必要触发dbwr,这个与dbwr没有关系,dbwr还是原来的底层的后台进程,该干什么还是干什么。
应当是oracle对drop做了改进,原来是删除数据字典,标记空间为可以使用的空间(如果是字典管理,则修改数据字典,如果是本地管理,则修改位图)。现在,drop过程简单的变为了重令名过程。 |
|