日期:2014-05-16  浏览次数:20384 次

闪回数据库(Flashback Database)

http://ssuhvs.iteye.com/blog/642452

17.3? 闪回数据库(Flashback Database)?
在设置闪回恢复区之后,就可以配置和启用闪回数据库的功能了。本节将详细介绍闪回数据库的配置和使用。?
17.3.1? 闪回数据库概述?
闪回数据库能够使数据库迅速回滚到以前的某个时间点或者某个SCN(系统更改号)上。这对于数据库从逻辑错误中恢复特别有用,而且也是大多数逻辑损害时恢复数据库的最佳选择。该功能不基于撤销数据(undodata),而是基于闪回日志。?
Oracle系统为了使用数据库的闪回功能,特别创建了另外一组日志,就是Flashback_logs(闪回日志),记录数据库的闪回操作。?
使用闪回数据库恢复比使用传统的恢复方法要快得多,这是因为恢复不再受数据库大小的影响。也就是说,传统的恢复时间(MTTR)是由所需重建的数据文件的大小和所要应用的归档日志的大小决定的。而使用闪回数据库恢复,恢复时间是由恢复过程中需要备份的变化的数量决定的,而不是数据文件和归档日志的大小。?
闪回数据库的结构是由恢复写入器(RVWR)后台进程和闪回数据库日志组成的。?
如果要启用闪回数据库功能,RVWR 进程也要启动。?
闪回数据库日志是一种新的日志文件类型,它包括物理数据块先前的“图像”。?
闪回恢复区是闪回数据库的先决条件,因为RVWR进程要将闪回日志写入该区域中,所以在使用闪回数据库功能时,必须要启用该区。?
对于逻辑损害和用户的误操作,闪回数据库是不完全恢复的优秀替代。但是必须要指出的是,闪回数据库有其自身的局限性。?
l????????? 使用闪回数据库恢复不能解决媒介故障。若要从媒介故障中恢复,仍然需要重建数据文件和恢复归档日志文件。?
l????????? 截短数据文件(缩小数据文件到较小的尺寸),用闪回数据库不能恢复此类操作。?
l????????? 如果控制文件已被重建,不能使用闪回数据库。?
l????????? 不能完成删除一个表空间的恢复。?
l????????? 最多只能将数据库恢复到在闪回日志中最早可用的那个SCN,并不能将数据库恢复到任意的SCN值。?
17.3.2? 配置闪回数据库?
配置闪回恢复区以后,要启用闪回数据库功能,还需要进行进一步的配置,需要注意如下几点。?
l????????? 配置闪回恢复区。?
l????????? 数据库需要运行在归档模式下(Archivelog)。?
l????????? 通过数据库参数DB_FLASHBACK_RETENTION_TARGET,来指定可以在多长时间内闪回数据库。该值以分钟为单位,默认值为1440(1天),更大的值对应更大的闪回恢复空间,类似于闪回数据库的基线。?
l????????? 需要在MOUNT状态下使用ALTER DATABASE FLASHBACK ON 命令启动闪回数据库功能。?
下面我们通过具体的实例来演示如何启动闪回数据库功能。?
1.登录系统?
SQL> conn /as sysdba;?
Connected.?
SQL> show parameter db_recovery_file_dest;?
NAME?????????????????????????? TYPE????????? VALUE?
------------------------------------ ----------- ------------------------------?
db_recovery_file_dest??????? string????