闪回技术基本概念
在很多情况下,如果闪回功能可用,则它要比介质恢复更高效。
可以使用闪回功能来查看数据库过去的状态。
(1)在备份和恢复中物理闪回的用处
Oracle闪回数据库是对DBPITR最有效的替代。
不像其它闪回功能,闪回数据库在物理层操作并且将当前的数据文件的内容恢复到过去的某个时间的内容。
结果与DBPITR很像,包括OPEN RESETLOGS。
但闪回数据库通常会很快,因为它不需要你还原数据文件,并且相对于介质恢复它只需要有限的redo信息的应用。
像在“配置快速恢复区”中解释的一样,闪回数据库需要快速恢复区。
为闪回数据库开启日志,必须设置DB_FLASHBACK_RETENTION_TARGET初始化参数,
并执行ALTER DABASE FLASHBACK ON语句。
在正常的操作过程中,数据库会定期地将数据文件块的旧的镜像写到闪回日志。
闪回日志是顺序并批量的写。在某些方面,闪回日志就像一个连续的备份。
数据库会自动地在恢复区创建、删除、改变闪回日志的大小。
闪回日志不被归档,只有在当监控性能或为快速恢复区分配空间时,才需要知道这些闪回日志。
当执行闪回数据库操作时,数据库使用闪回日志来访问数据块的过去的版本并且会使用归档重做日志中的一些数据。
因此在发现失败之后,你不能开启数据库闪回,并使用闪回数据库来回退这个失败。
可以使用相关的保证还原点功能来在固定的时间点保护数据库的内容,例如紧挨着危险的数据库操作之前。
(2)在备份和恢复中逻辑闪回的用处
其它的闪回功能都操作在逻辑层:
n 闪回表,可以恢复表或表的集合到过去指定的时间点,而不需要使数据库的任何部分脱机。
在许多情况下,闪回表消除了执行更为复杂的PITR操作的需要。
闪回表在还原表的同时会自动维护相关的属性,例如当前的索引、触发器、约束,
不需要你去查找和还原特定于应用程序的属性。
n 闪回删除,可以回退DROP TABLE语句。
注意:因为逻辑闪回功能不仅用于备份和恢复,所以关于闪回一些文档会出现在其它的部分。
所有的逻辑闪回功能,除了闪回删除,都依赖于undo数据。
主要用于提供SQL查询的读一致性和回滚事务。
undo记录包含用于重构过去时间存在的数据所需要的信息,也包括用于检查从过去的时间开始改变记录的信息。
闪回删除依赖于称为回收站的机制,这种机制用于管理删除的数据库对象,直到新的数据需要它们占据的空间。
没有固定的空间分配给垃圾箱,关于被删除的对象在垃圾箱中被保存多久也没有保证。
依赖于系统的活动,被删除的对象可能保留数秒或者是数月。来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1095798/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/17013648/viewspace-1095798/