Flashback_Database可以看作是不完全恢复的替代技术,依赖于Flashback log日志。类似与RMAN的不完全恢复,但它有限制:
1,Flashback Database不能解决Media Failure,这种错误RMAN恢复是唯一选择
2,删除了数据文件或者利用Shrink技术缩小数据文件,Flashback Data则不能使用,
这时候就必须先利用RMAN把删除之前或者缩小之前的文件备份restore出来,然后利用Flashback Database执行剩下的Flashback Database
3,控制文件是从备份中恢复回来的或者重建的,不能用flashback database,
4,使用flashback database锁能恢复到最早的scn,取决与flashback Log
Flashback Database 架构包括一个进程Recover Writer(RVWR)后台进程,flashback
Database Log日志 和flash Recovery Area.
数据库启动了FD之后,进程带动flash Recovery Area在这里面写flashback
Database Log日志。
********************************邪恶的分割线*********************************
下面开始个人操作
SQL> shutdown immediate;(首先关闭数据库)
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;(让数据库mount)
ORACLE 例程已经启动。
SQL> alter database archivelog;(启动archivelog模型)
SQL> archive log list;(查看log信息)
数据库日志模式 存档模式
自动存档 启用
存档终点 D:\FB(这个是我存放的存档路径)
最早的联机日志序列 0
下一个存档日志序列 1
当前日志序列 1
********************配置Flash Recovery Area***********************************
启用Flash Recovery Area:
SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=20G SCOPE=BOTH;
SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='D:\FB' SCOPE=BOTH;
禁用Flash Recovery Area:
SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='' ;
********************启用数据库FLashback功能************************************
检查Flashback 功能
SQL> select name, current_scn, flashback_on from v$database;
NAME CURRENT_SCN FLASHBACK_ON
--------- ----------- ------------------
ORCL 0 YES(我这里是已经启动过了的)
启用和禁用Flashback功能
SQL> alter database flashback off;
数据库已更改。
SQL> alter database flashback on;
数据库已更改。
************初始化DB_FLASHBACK_RETENTION_TARGET*********************
SQL>alter system set db_flashback_retention_target=1440 scope=both;
该参数用来控制flashback log 数据保留的时间,默认值是1440,单位是minute,24 小时
。*********************打开数据库***********************************************
SQL> alter database open;
数据库已更改。
*********************查看Flash Recovery Area和SCN*******************************
SQL> show parameter db_recovery_file
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string D:\FB
db_recovery_file_dest_size big integer 20G
SQL> SELECT CURRENT_SCN FROM V$DATABASE;
CURRENT_SCN
-----------
3316073
*********************开始模拟恢复操作*******************************************
SQL> select count(*) from scott.emp;
COUNT(*)
----------
14
SQL> drop table scott.emp;
表已删除。
SQL> commit;
提交完成。
SQL> select count(*) from scott.emp;
select count(*) from scott.emp
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
见证奇迹的时刻!!!!!!!
*********************恢复操作*****************************************************
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
SQL> Flashback database to scn 3316073;
闪回完成。
SQL> alter database open resetlogs;
数据库已更改。
SQL> select count(*) from scott.emp;
COUNT(*)
----------
14
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26446098/viewspace-711909/
,如需转载,请注明出处,否则将追究法律责任。