ITPub博客

首页 > Linux操作系统 > Linux操作系统 > flashback总结一之Flashback_Database

flashback总结一之Flashback_Database

原创 Linux操作系统 作者:zhangshengdong 时间:2011-11-24 10:10:49 0 删除 编辑
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
Flashback(一)的总结,到此结束,感谢http://www.cnblogs.com/coohoo/archive/2011/01/16/1936888.html
Oracle Flashback技术总结 - 田园居 - 博客园的支持。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26446098/viewspace-711909/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-11-18

  • 博文量
    25
  • 访问量
    91402