一、闪回数据库比DBPITR要快,原因有两个:
1、不需要从备份文件中还原数据文件;
2、需要更少的日志记录。
二、闪回数据库的原理
1、首先需要了解的是,数据库后台进程RVWR会定期把数据库发生更新的数据块的映像复制到高速缓冲区中特定内存中,然后记录到flashback log文件中。
2、利用flashback log的内容,复制其中的数据块,让数据库快速恢复到跟指定恢复时间比较近的状态
3、然后利用归档日志文件中的日志记录恢复到指定的时间点。
三、闪回数据库的前提条件:
1、归档日志状态;
SQL>alter database archivelog;----启动归档日志;
SQL>select log_model from v$database;----查看当前数据库是否处于归档日志状态;
2、启用fast recovery area,因为flashback log只能保存在快速恢复区中。
SQL>alter database flashback on;------启动闪回恢复区,启用flashback logging;
SQL>select flashback_on from v$database;----查看当前数据库是否启动了闪回恢复区;
----另外也可以单独对表空间进行设置:
SQL> alter tablespace test01 flashback on;----在mounted的状态下设置,否则会报错:
SQL> alter tablespace test01 flashback on;
alter tablespace test01 flashback on
*
第 1 行出现错误:
ORA-01126: 数据库必须已装载到此实例并且不在任何实例中打开
SQL> alter tablespace test01 flashback off;----关闭flashback logging;
SQL> select name ,flashback_on from v$tablespace where name ='TEST01';------查询表空间的flashback logging是否开启
NAME FLA
------------------------------ ---
TEST01 YES
3、设置flashback retention target,其确定了闪回数据库最多可以闪回到多久之前的状态。
4、对于RAC环境的数据库,fast recovery area必须在 clustered