当前位置:  数据库>oracle

Oracle 闪回特性(FLASHBACK DATABASE)

    来源: 互联网  发布时间:2017-03-30

    本文导语: --===================================== -- Oracle 闪回特性(FLASHBACK DATABASE) --=====================================       闪回技术通常用于快速简单恢复数据库中出现的认为误操作等逻辑错误,从闪回的方式可以分为基于数据库级别闪回、表级别...

--=====================================

-- Oracle 闪回特性(FLASHBACK DATABASE)

--=====================================

 

    闪回技术通常用于快速简单恢复数据库中出现的认为误操作等逻辑错误,从闪回的方式可以分为基于数据库级别闪回、表级别闪回、事务

级别闪回,根据闪回对数据的影响程度又可以分为闪回恢复,闪回查询。闪回恢复将修改数据,闪回点之后的数据将全部丢失。而闪回查询则可

以查询数据被DML的不同版本,也可以在此基础之上确定是否进行恢复等。本文主要描述flashback database的使用。

   

一、flashback database特性

    flashback data1base闪回到过去的某一时刻

    闪回点之后的工作全部丢失

    使用resetlogs创建新的场景并打开数据库(一旦resetlogs之后,将不能再flashback至resetlogs之前的时间点)

   

    常用的场景:truncate table、多表发生意外错误等

    使用闪回日志来实现数据库闪回,闪回点之后的数据将丢失

   

二、flashback database的组成

    闪回缓冲区:当启用flashback database,则sga中会开辟一块新区域作为闪回缓冲区,大小由系统分配

    启用新的rvwr进程:rvwr进程将闪回缓冲区的内容写入到闪回日志中,注意闪回日志不同于联机重做日志,闪回日志在联机重做日志基础之

        上生成,是完整数据块映像的日志。联机日志则是变化的日志。闪回日志不能复用,也不能归档。闪回日志使用循环写方式。

           

三、flashback database的配置

    flashback database要求数据库必须处于归档模式,且闪回之后必须使用resetlogs打开数据库

    a.查看数据库的归档模式及闪回是否启用

        SQL>  select log_mode,open_mode,flashback_on from v$database;

 

        LOG_MODE     OPEN_MODE  FLASHBACK_ON

        ------------ ---------- ------------------

        ARCHIVELOG   READ WRITE NO             --FLASHBACK_ON为NO,则表示闪回特性尚未启用

   

    b.查看及设置闪回目录、闪回目录空间大小等

        --下面查看恢复目录及恢复目路分配的大小

        --可以使用alter system set db_recovery_file_dest 来设置新路径

        --可以使用alter system set db_recovery_file_dest_size来设定新的大小

        SQL> show parameter db_recovery 

 

        NAME                                 TYPE        VALUE

        ------------------------------------ ----------- ------------------------------

        db_recovery_file_dest                string      /u01/app/oracle/flash_recovery

                                                         _area

        db_recovery_file_dest_size           big integer 2G    

       

    c.设置闪回保留目标生存期

        SQL> show parameter db_flashback      --缺省为分钟,即小时

 

        NAME                                 TYPE        VALUE

        ------------------------------------ ----------- ------------------------------

        db_flashback_retention_target        integer     1440

                   

        SQL> alter system set db_flashback_retention_target=30; --设定保留时间为半小时

       

    d.在mount状态下来启用flashback,如在open状态下则出现下列错误提示

        SQL> alter database flashback on;

        alter database flashback on

        *

        ERROR at line 1:

        ORA-38759: Database must be mounted by only one instance and not open.

       

        --一致性关闭数据库后,在mount状态下设置flashback

        SQL>startup mount exclusive;

       

        SQL> select status from v$instance;

 

        STATUS

        ------------

        MOUNTED        

 

        SQL> alter database flashback on;     --开启闪回数据库功能

 

        SQL> ho ps -ef | grep rvw             --可以看到新增了后台进程rvwr

        oracle    3563     1  0 12:12 ?        00:00:00 ora_rvwr_orcl

 

        --下面查看闪回区分配的大小为大约M,闪回分钟以内的数据则需要M左右的空间

        --注意列oldest_flashback_time说明了允许返回的最早的时间点

        SQL> select oldest_flashback_scn old_flhbck_scn,oldest_flashback_time old_flhbck_tim,

          2  retention_target rete_trgt,flashback_size/1024/1024 flhbck_siz,

          3  estimated_flashback_size/1024/1024 est_flhbck_size

          4  from v$flashback_database_log;

 

        OLD_FLHBCK_SCN OLD_FLHBC  RETE_TRGT FLHBCK_SIZ EST_FLHBCK_SIZE

        -------------- --------- ---------- ---------- ---------------

                915137 24-OCT-10         30     7.8125      11.2519531

 

        SQL> select * from v$flashback_database_stat;   --查看闪回

 

        BEGIN_TIM END_TIME  FLASHBACK_DATA    DB_DATA  REDO_DATA ESTIMATED_FLASHBACK_SIZE

        --------- --------- -------------- ---------- ---------- ------------------------

        24-OCT-10 24-OCT-10        7905280   86802432   96329728                        0

 

        SQL> select * from v$sgastat where name like 'flashback%';       --查看sga中分配的闪回空间大小

 

        POOL         NAME                            BYTES

        ------------ -------------------------- ----------

        shared pool  flashback generation buff     3981204

        shared pool  flashback_marker_cache_si        9196

                       

        SQL> ho ls -hlt $ORACLE_BASE/flash_recovery_area/ORCL/flashback  --查看生成的闪回日志

        total 7.9M

        -rw-r----- 1 oracle oinstall 7.9M Oct 24 12:37 o1_mf_6d7dkogw_.flb

       


    
 
 

您可能感兴趣的文章:

  • oracle中误删除表后恢复语句(FLASHBACK)
  • Oracle Flashback高可用性
  • Oracle 11g 新特性 Flashback Data Archive 使用实例
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 所有的Oracle9 i Database选件在Linux上都可用
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Oracle 2010年7月更新修复多个Oracle Database安全漏洞
  • Oracle 9i DataBase 支持 P4 吗?
  • Oracle Database Lite
  • 有人在fedora 10下安装 oracle database 11g,没有呀?提供个安装步骤
  • 谁那里有《Oracle Database 10g完全参考手册》中文版的电子书啊?发给我好吗
  • Linux下启动Oracle database EM及isqlplus等命令
  • 在Linux中安裝Oracle Database 10g時切換root帳戶時出現﹕-bash: eth0 commond not found,這是怎么 回事?各位大仙的幫一下
  • Oracle Database 建立与查询 Sequence
  • Oracle Database 11g Release 2 For Linux发布
  • 在Oracle下创建database link两种方法
  • DBA 在Linux下安装Oracle Database11g数据库图文教程
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 12c的九大最新技术特性介绍
  • 也谈Oracle 数据库的绑定变量特性及应用
  • Oracle9i 动态SGA,PGA特性探索
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • ORACLE日期相关操作
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • ORACLE数据库常用字段数据类型介绍
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE中DBMS_RANDOM随机数生成包
  • Linux系统下Oracle的启动与Oracle监听的启动
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • 网间Oracle的连接,远程连接Oracle服务器??
  • 请教:.profile中:if [ -d /opt/oracle/db01/app/oracle/product/9.2.0 ]是什么意思?
  • 在linux 中如何删除oracle db 与卸载oracle.
  • linux下安装oracle后使用命令行启动的方法 linux启动oracle


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3