Flashback Database功能非常类似与RMAN的不完全恢复,它可以把整个数据库回退到过去的某个时点的状态,这个功能依赖于Flashback log日志。比RMAN更快速和高效,因此Flashback Database 可以看作是不完全恢复的替代技术。闪回数据库的前提是要开启归档日志。

 一、闪回原理

  在启用闪回数据时,会将修改过的块的前映像作为闪回数据库日志保存在闪回恢复区中,如出现逻辑坏块或用户错误操作需要恢复到过去的时间点,闪回数据库将还原数据库的前映像,然后使用归档日志和redo前滚到期望恢复的时间点,因为无需还原数据库的数据文件,所有此过程速度比较传统的还原恢复通常快很多。

  1.1 闪回限制:
    ① Flashback Database 不能解决Media Failure, 这种错误RMAN恢复仍是唯一选择
    ② 如果删除了数据文件或者利用Shrink技术缩小数据文件大小,这时不能用Flashback Database技术回退到改变之前的状态,这时候就必须先利用RMAN把删除之前或者缩小之前的文件备份restore出来,然后利用Flashback Database执行剩下的Flashback Datbase。
    ③ 如果控制文件是从备份中恢复出来的,或者是重建的控制文件,也不能使用Flashback Database。
    ④ 使用Flashback Database锁能恢复到的最早的SCN,取决与Flashback Log中记录的最早SCN。

  1.2 配置闪回参数:

  闪回数据库相关参数:
     ① db_recovery_file_dest               #决定闪回恢复区路径
     ② db_recovery_file_dest_size        #决定闪回恢复区大小
     ③ db_flashback_retention_target   #保留恢复最近多长时间的数据,单位为分钟。
  闪回相关视图:
     ① V$restore_point                           #闪回点
     ② V$FLASHBACK_DATABASE_LOG   #闪回日终信息
     ③ V$FLASHBACK_DATABASE_STAT

     ④ v$flash_recovery_area_usage;      #闪回区使用率

  1.3 开启归档和闪回功能:   

  SQL> SELECT flashback_on, force_logging, log_mode FROM v$database;
     FLASHBACK_ON FORCE_LOGGING LOG_MODE
     ------------------ -------------     ------------
      NO                 NO                   NOARCHIVELOG   

 开启闪回和归档方法:
  SQL>shutdown immediate;
  SQL>startup mount;
  SQL>alter database archivelog;#开启归档
  --SQL>alter database archivelog off ;#关闭归档功能
  SQL>alter database flashback on; #开启闪回功能
  --SQL>alter database flashback off; #关闭闪回功能
  SQL>alter database open; #打开数据库
  SQL>alter database force logging; #强制写日志

   1.4 闪回参数设置:    

  alter system set db_recovery_file_dest_size=5G scope=both;
  alter system set db_recovery_file_dest='/home/app/flash_recovery_area' scope=both;
  alter system set db_flashback_retention_target=2880;

 二、闪回数据库

  闪回步骤:

    ① 关闭数据库
    ② 启动数据库到mount状态[exclusive模式]
    ③ 闪回至某个时间点,SCN或还原点
    ④ 使用resetlogs打开数据库
  2.1 通过还原点闪回
    通过v$restore_point视图,可以查看当前数据库的闪回点。
     如果没有闪回点,可以创建个闪回点。方法如下:
    SQL>CREATE RESTORE POINT FLASHPOINT_1 GRARANTEE FLASHBACK DATABASE;#创建一个flashpoint_1的闪回点
   --进行相关的DML操作之后,闪回数据库到flashpoint_1状态
    SQL>SHUTDOWN IMMEDIATE #关闭数据库
    SQL>STARTUP MOUNT; #启到MOUNT状态
    SQL>FLASHBACK DATABASE TO RESTORE POINT FLASHPOINT_1; #闪回数据库到flashpoint_1闪回点
    SQL>ALTER DATABASE OPEN RESETLOGS; #打开数据库
   --删除归档日志
    RMAN TARGET /
    RMAN> DELETE ARCHIVELOG ALL; #删除所有归档日志
    RMAN> EXIT;
    SQL>DROP RESTORE POINT FLASHPOINT_1; #删除闪回点
    SQL>CREATE restore point FLASHPOINT_2 GRARANTEE FLASHBACK DATABASE; #新建闪回点
  2.2 通过SCN闪回
  SQL>SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER AS SCN_NO FROM DUAL;#获取当前数据库的SCN号
  --进行相关的DML操作之后,闪回数据库到SCN_NO状态
  SQL>SHUTDOWN IMMEDIATE #关闭数据库
  SQL>STARTUP MOUNT; #启到MOUNT状态
  SQL>FLASHBACK DATABASE TO SCN SCN_NO; #闪回数据库到闪回SCN_NO点
  SQL>ALTER DATABASE OPEN RESETLOGS; #打开数据库

   3 闪回数据库方法

  3.1 sqlplus下基于SCN闪回
   FLASHBACK DATABASE [<database_name>] TO SCN <system_change_number>
  3.2 sqlplus下基于时间戳闪回
   FLASHBACK DATABASE [<database_name>] TO TIMESTMP <system_timestamp_value>
  3.3 sqlplus下基于还原点闪回
   FLASHBACK DATABASE [<database_name>] TO RESTORE POINT <restore_point_name>
  3.4 RMAN下基于时间戳闪回
  RMAN> FLASHBACK DATABASE TO TIME = "TO_DATE('2013-12-08 12:45:00','YYYY-MM-DD HH24:MI:SS')"
  3.5 RMAN下基于SCN闪回
   RMAN> FLASHBACK DATABASE TO SCN=15809979;
  3.6 RMAN下基于:归档序号
  RMAN> FLASHBACK DATABASE TO SEQUENCE=192 THREAD=1;

Oracle闪回(FlashBack)数据库的更多相关文章

  1. Oracle闪回flashback

    参考资料:Using Oracle Flashback Technology Oracle 11g的新特性闪回操作 闪回查询 闪回查询 闪回版本查询 闪回事务查询 闪回数据 闪回表 闪回删除 闪回数据 ...

  2. Oracle闪回flashback总结

    1.说明: Ø  采用的技术. 使用的是多个技术. 1.      闪回日志 2.      回收站 3.      回滚段 无法使用回收站的操作 Drop table xxx purge; Drop ...

  3. Oracle 闪回特性(FLASHBACK DATABASE)

    --===================================== -- Oracle 闪回特性(FLASHBACK DATABASE) --======================= ...

  4. Oracle 闪回归档(Flashback Database)

    cmd --管理员身份打开 sqlplus / as sysdba --管理数据库 shu immediate; --独占方式开始 startup mount --修改日期模式 alter datab ...

  5. oracle之三闪回flashback

    闪回 flashback 5.1 flashback 的功能:1)利用undo data回溯或撤销提交的数据,2)flashback log 使database 可以恢复到过去某个时间点,可以作为不完 ...

  6. oracle闪回表详解

    --- 说明闪回数据库 --- 使用闪回表将表内容还原到过去的特定时间点 --- 从删除表中进行恢复 --- 使用闪回查询查看截止到任一时间点的数据库内容 --- 使用闪回版本查询查看某一行在一段时间 ...

  7. Oracle闪回操作

    Oracle闪回操作 1. 记录当前时间或SCN 在数据库变动前记录时间或SCN SQL> select  to_char(sysdate,'YYYY-MM-DD HH24:mi:ss') fr ...

  8. Oracle闪回表

    Oracle闪回技术 场景:测试环境数据库的表数据被误删除. 解决思路:使用闪回表技术 原理 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小 ...

  9. Oracle 闪回

    Oracle 闪回特性(FLASHBACK DATABASE) 本文来源于:gerainly 的<Oracle 闪回特性(FLASHBACK DATABASE) > -========== ...

  10. 6. Oracle闪回特性

    Oracle 闪回 (flashback)是9i版本提供的新特性.这一特性:其他数据库(PostgreSQL,Mysql)是羡慕不已.对数据恢复提供非常便捷的方式.闪回技术通常用于快速简单恢复数据库中 ...

随机推荐

  1. JPA主键生成策略

    @GeneratedValue: 为一个实体类生成一个唯一标识的主键(JPA要求每一个实体Entity,必须有且只有一个主键).它有两个属性,分别是strategy和generator. genera ...

  2. python笔记05-----函数

    函数 编程序语言中函数定义:函数是逻辑结构化和过程化的一种编程方法 def func(i): # def :定义函数的关键字:func:函数名:()内可以定义形参 i += 1 # 代码块或程序处理逻 ...

  3. URL编码分析与乱码解决方案

    一.问题的由来 URL就是网址,只要上网,就一定会用到. 一般来说,URL只能使用英文字母.阿拉伯数字和某些标点符号,不能使用其他文字和符号.比如,世界上有英文字母的网址"http://ww ...

  4. Oracle 通过字段名查询其所在的表

    select owner , table_name , column_name from dba_tab_columns where column_name='LOG_TYPE' ;

  5. static & abstract

    不能放在一起的修饰符:final和abstract,private和abstract,static和abstract,因为abstract修饰的方法是必须在其子类中 实现(覆盖),才能以多态方式调用, ...

  6. bootstrap 报错

    1. bootstrap table 加载出错,前台报错 Cannot read property 'colspan' of undefined { title : '设备类型', field : ' ...

  7. Uploadify火狐出现302错误

    $(function () { var auth = "@(Request.Cookies[FormsAuthentication.FormsCookieName] == null ? st ...

  8. jQuery操作<input type="radio">

    input type="radio">如下: <input type="radio" name="city" value=&qu ...

  9. plupload如何删除一条数据

    FilesRemoved用了发现不成功,删除图片这么重要怎能如此 看到老外提的另一个问题发现这个问题解决办法,特此备注以供不会的童鞋参考 uploader.bind('FilesAdded', fun ...

  10. gRPC的通讯过程

    在 HTTP2 协议正式开始工作前, 如果已经知道服务器是 HTTP2 的服务器, 通讯流程如下: 客户端必须首先发送一个连接序言,其逻辑结构: PRI * HTTP/2.0\r\n\r\nSM\r\ ...