zoukankan      html  css  js  c++  java
  • Oracle数据库中闪回恢复的详细分析

    Oracle9i开始提供闪回查询,以便能在需要的时候查到过去某个时刻的一致性数据,这是通过Undo实现的。这个功能有很大的限制,就是相关事务的undo不能被覆盖,否则就无力回天了。oracle10g大大的增强了闪回查询的功能,并且提供了将整个数据库回退到过去某个时刻的能力,这是通过引入一种新的flashback log实现的。

    flashback log有点类似redo log,只不过redo log将数据库往前滚,flashback log则将Oracle数据库往后滚。为了保存管理和备份恢复相关的文件,oracle10g提供了一个叫做闪回恢复区(Flashback recovery area)的新特性,可以将所有恢复相关的文件,比如flashback log,archive log,backup set等,放到这个区域集中管理。

    1.设置闪回恢复区

    闪回恢复区主要通过3个初始化参数来设置和管理

    db_recovery_file_dest:指定闪回恢复区的位置

    db_recovery_file_dest_size:指定闪回恢复区的可用空间大小

    db_flashback_retention_target:指定Oracle数据库可以回退的时间,单位为分钟,默认1440分钟,也就是一天。当然,实际上可回退的时间还决定于闪回恢复区的大小,因为里面保存了回退所需要的 flash log。所以这个参数要和db_recovery_file_dest_size配合修改。

    2.启动flashback database

    设置了闪回恢复区后,可以启动闪回数据库功能。

    首先,数据库必须已经处于归档模式

    那么如何设置归档呢?很简单的步骤

    1.关闭数据库

    1. SQL> shutdown immediate;  

    2.启动Oracle数据库为mount模式

    1. SQL> startup mount  

    3.显示和修改归档模式

    1. SQL> archive log list  
    2. SQL> alter database archivelog;  
    3. SQL> alter database open  

    4.设置归档日志的格式

    1. SQL>alter system set log_archive_format='ARC%s%t%r.log' scope=spfile;  

    5.设置归档日志的存放路径

    1. SQL>alter system set log_archive_dest='+data/arcl' scope=spfile;  
    2. SQL>shutdown immediate  
    3. SQL>startup  

    6.强制切换归档日至

    1. SQL>alter system switch logfile;  

    7.取消归档

    1. SQL>alter database noarchivelog;  

    参数

    1.格式参数

    %s 日志序列号

    %S 日志序列号(带前导的0)

    %t 重做线程编号

    %a 活动的ID号

    %dOracle 数据库ID号

    %r RESELOGS的iD值

    1. SQL> archive log list;   
    2. Database log mode Archive Mode  
    3. Automatic archival Enabled  
    4. Archive destination USE_DB_RECOVERY_FILE_DEST  
    5. Oldest online log sequence 156  
    6. Next log sequence to archive 158  
    7. Current log sequence 158 

    然后,启动Oracle数据库到mount状态

    1. SQL> shutdown immediate;   
    2. Database closed.  
    3. Database dismounted.  
    4. ORACLE instance shut down.  
    5. SQL> startup mount   
    6. ORACLE instance started.  
    7. Total System Global Area 285212672 bytes  
    8. Fixed Size 1218992 bytes  
    9. Variable Size 75499088 bytes  
    10. Database Buffers 205520896 bytes  
    11. Redo Buffers 2973696 bytes  
    12. Database mounted.  
    13. SQL>alter database flashback on;   
  • 相关阅读:
    转 -- Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)
    转 -- 求一个二进制数值中的1的个数
    ubuntu 搭建 samba 服务器
    64bit ubuntu 安装32bit的软件
    ubuntu 添加管理员账户
    #ifdef 和 #if defined 的区别 -- 转
    xming + putty 搭建远程图形化ssh访问ubuntu 14.04
    ubuntu 安装bochs
    强制类型转换中的精度丢失
    转载 -- 如何判断Javascript对象是否存在
  • 原文地址:https://www.cnblogs.com/zwl715/p/3738560.html
Copyright © 2011-2022 走看看