热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

flashback六大技术之flashbackdatabase

flashback六大技术之flashbackdatabase环境:[sql]sys@ORCL>select*fromv$versionwhererownum1;BANNER----------------------------------------------------------------Oracle

flashback六大技术之flashback database
 
环境:
[sql] 
sys@ORCL> select * from v$version where rownum=1;  
  
BANNER  
----------------------------------------------------------------  
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod  
  
sys@ORCL> !uname -a  
Linux localhost.localdomain 2.6.18-308.el5xen #1 SMP Fri Jan 27 17:59:00 EST 2012 i686 i686 i386 GNU/Linux  
  www.2cto.com  
    1 操作原理
 
       RVWR每隔δt把数据块的before image flush到flashback log,形成合法的rowid集,我们简称之“基底”,基底是由RVWR动态向前维护,以使rowid集合法有效。在flashback database时,是先向后退一大步到基底,在向前迈一小步。借助flashback log只能将数据库恢复到某个指定时间点的状态,该状态可能并不是一致性的状态,然后需再运用archive log,去填补两个δt时间面之间的缺痕,使数据库恢复到一致性状态。一言以辟之,flashback database其实是把undo拿去再整理。其特性,用周杰伦的歌《回到过去》,“就回到过去,试着让故事继续...”。
 
    2 必备条件
 
       ① 归档模式
       ② 指定flash recovery area
 
            flash recovery area设置的越大,flashback database的恢复能力就越强。由下面两个初始化参数控制:  www.2cto.com  
           1)db_recovery_file_dest:存储路径
           2)db_recovery_file_dest_size:最大可用空间
[sql] 
sys@ORCL> show parameter db_recover   
  
NAME                                 TYPE        VALUE  
------------------------------------ ----------- ------------------------------  
db_recovery_file_dest                string      /u01/app/oracle/flash_recovery  
                                                 _area  
db_recovery_file_dest_size           big integer 2G  
 
       ③ 启动flashback database
           启用该模式必须有两个先决条件:
            1)归档模式
            2)mount阶段
            语法:  www.2cto.com  
                    alter database flashback on/off;
            验证是否开启:
                    select flashback_on from v$database
 
       ④ 启用force logging
            force logging强制所有操作均产生redo entries
            语法:
                    alter database force logging;
            验证是否开启:
                    select force_logging from v$database
 
    3 制约因素
                    ㈠ 控制文件重建
                    ㈡ 数据文件shrunk
                    ㈢ 表空间删除
                    ㈣ 介质损坏
                    以上改变,其实质,会导致rowid在基底非法无效,便成了制约因素
    4 额外补充
 
       ① db_flashback_retention_target
            控制flashback log数据的保留时间,或者说,你希望flashback database能够恢复的最早时间点。缺省是一天。  www.2cto.com  
[sql] 
sys@ORCL> show parameter db_flashback  
  
NAME                                 TYPE        VALUE  
------------------------------------ ----------- ------------------------------  
db_flashback_retention_target        integer     1440  
 
      ② 执行flashback database后,有两种选择:
           a)alter database open resetlogs。一旦resetlogs,将不能再flashback至resetlogs之前的时间点,指定的scn之后产生的数据将全部丢失。
           b)先alter database open read only;
                 然后expdp将误操作的表的数据导出
                 再执行recover database
                 最后impdp导入
       ③ 开启flashback on需要消费10%的资源,DBA需均衡利弊。
       ④ 介词to和until的区别:
            例子:
                    to 20 :包括了20
                    until 20 :没有包括20,也就是19末。
 
    5 测试实验
       ㈠ 检查必备条件
[sql] 
sys@ORCL> show parameter db_recover  
    www.2cto.com  
NAME                                 TYPE        VALUE  
------------------------------------ ----------- ------------------------------  
db_recovery_file_dest                string      /u01/app/oracle/flash_recovery  
                                                 _area  
db_recovery_file_dest_size           big integer 2G  
sys@ORCL> archive log list  
Database log mode              Archive Mode  
Automatic archival             Enabled  
Archive destination            USE_DB_RECOVERY_FILE_DEST  
Oldest online log sequence     13  
Next log sequence to archive   15  
Current log sequence           15  
sys@ORCL> select force_logging,flashback_on from v$database;  
  
FOR FLASHBACK_ON  
--- ------------------  
YES YES  
 
       ㈡ 测试
[sql] 
hr@ORCL> select dbms_flashback.get_system_change_number from dual;  
  
GET_SYSTEM_CHANGE_NUMBER  
------------------------  
                  731867  
  
hr@ORCL> truncate table t2;  
    www.2cto.com  
Table truncated.  
  
hr@ORCL> conn / as sysdba  
Connected.  
sys@ORCL> shutdown immediate  
Database closed.  
Database dismounted.  
ORACLE instance shut down.  
sys@ORCL> startup mount  
ORACLE instance started.  
  
Total System Global Area  419430400 bytes  
Fixed Size                  1219760 bytes  
Variable Size              83886928 bytes  
Database Buffers          331350016 bytes  
Redo Buffers                2973696 bytes  
Database mounted.  
sys@ORCL> flashback database to scn 731867;  
  
Flashback complete.  
  
sys@ORCL> alter database open resetlogs;  
    www.2cto.com  
Database altered.  
  
sys@ORCL> select count(*) from hr.t2;  
  
  COUNT(*)  
----------  
        19  

推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
author-avatar
用释怀来成全悲伤_490_905_560
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有