Oracle闪回(Flashback)技术_第1页
Oracle闪回(Flashback)技术_第2页
Oracle闪回(Flashback)技术_第3页
Oracle闪回(Flashback)技术_第4页
Oracle闪回(Flashback)技术_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1页,第十六章Oracle闪回(Flashback)技术,本章概述主要内容,第2页,本章概述,为了使Oracle数据库从任何逻辑误操作中迅速恢复,Oracle数据库提供了一系列人为错误更正技术,称为闪回。使用闪回(Flashback)技术可以实现基于磁盘上闪回恢复区的自动备份与恢复。本章介绍与数据库闪回相关的知识。闪回技术从oracle9i版本的闪回查询开始,在Oracle10g版本中系统地使用,Oracle11g版本中进行了加强。,第3页,主要内容,16.1闪回技术概述16.2闪回数据库16.3闪回表16.4闪回查询16.5闪回版本查询16.6闪回事务查询16.7闪回丢弃16.8小结,第4页,16.1闪回技术概述,为了使Oracle数据库从任何逻辑误操作中迅速恢复,Oracle数据库提供了一系列人为错误更正技术,称为闪回。传统上,从人为错误中恢复数据库唯一的办法就是采用用户管理的备份和恢复技术。而闪回技术提供了从逻辑错误中恢复的更有效和更快的方法,多数情况下,在用这种技术进行恢复时数据库仍然联机并对用户可用。此外,闪回技术允许选择性地复原某些对象。在Oracle11g中,闪回技术包括以下方面:闪回数据库(FlashbackDatabase):允许用户通过FlashbackDatabase语句,使数据库迅速地回滚到以前的某个时间点或某个SCN(系统更改号)值时的状态。闪回丢弃(FlashbackDrop):类似于操作系统的垃圾回收站功能,可以从中恢复被drop的表或索引。该功能基于撤销数据。,第5页,闪回查询(FlashbackQuery):查询过去某个时间点或者某个SCN值时表中的数据信息。闪回版本查询(FlashbackVersionQuary):查询过去某个时间段或某个SCN段内表中数据的变化情况。闪回事务查询(FlashbackTransactionQuery):查看某个事务或所有事务在过去一段时间对数据进行的修改。闪回表(FlashbackTable):将表恢复到过去的某个时间点或某个SCN值时的状态。闪回技术最大的特点是实现自动备份与恢复,大大减小了管理开销。当Oracle数据库发生人为故障时,不需要事先备份数据库,就可以利用闪回技术快速而方便地进行恢复。为了使用数据库的闪回技术,必须启用撤销表空间自动管理回滚信息。如果要使用闪回删除技术和闪回数据库技术,还需要启用回收站、闪回恢复区。,第6页,主要内容,16.1闪回技术概述16.2闪回数据库16.3闪回表16.4闪回查询16.5闪回版本查询16.6闪回事务查询16.7闪回丢弃16.8小结,第7页,16.2闪回数据库,闪回数据库能够使数据库迅速回滚到以前的某个时间点或者某个SCN(系统更改号)上。这是大多数逻辑损害时恢复数据库的最佳选择。Oracle系统为了使用数据库的闪回功能,特别创建了另外一组日志,就是Flashback_logs(闪回日志),记录数据库的闪回操作。因为恢复不再受数据库大小的影响,使用闪回数据库恢复比用传统的恢复方法要快得多。也就是说,传统的恢复时间(MTTR)是由所需重建的数据文件的大小和所要应用的归档日志的大小决定的。而使用闪回数据库,恢复时间是由恢复过程中需要备份的变化的数量决定的,而不是数据文件和归档日志的大小。,第8页,闪回数据库的结构是由恢复写入器(RVWR)后台进程和闪回数据库日志组成的。如果要启动闪回数据库功能,RVWR进程也要启动。闪回数据库日志是一种新的日志文件类型,它包括物理数据块先前的“图像”。闪回恢复区是闪回数据库的先决条件,因为RVWR进程要将闪回日志写入该区域中,所以在使用闪回数据库功能时,必须首先配置闪回恢复区。Oracle11g的FLASHBACK命令可以对表级进行恢复,也可以对数据库级进行恢复。要对数据库级进行恢复,就要用到FLASHBACKDATABASE命令,语法格式如下:FLASHBACKSTANDBYDATABASETOSCN|TIMESTAMP|TOBEFORESCN|TIMESTAMP,第9页,其中参数说明如下:lSTANDBY:指定恢复备用的数据库到某个SCN或者某个时间点上。如果没有备用数据库,则系统会返回一个错误。如果省略STANDBY子项,则数据库可能是主数据库,也可能是备用数据库。lTOSCN:指定一个系统改变号SCN。lTOBEFORESCN:恢复到之前的SCN。lTOTIMESTAMP:需要恢复的时间表达式。lTOBEFORETIMESTAMP:恢复数据库到之前的时间表达式。用户可以从sysdate中得到系统的当前时间。当用户发出FLASHBACKDATABASE语句之后,数据库会首先检查所需要的归档文件与联机重建日志文件的可用性。如果可用,则会将数据库恢复到指定的SCN或者时间点上。,第10页,在数据库中闪回数据库的总数和大小由DB_FLASHBACK_RETENTION_TARGET初始化参数控制。可通过查询V$FLASHBACK_DATABASE_LOG视图来确定能恢复到过去多远。如果数据库中所保留的数据不够执行恢复,可使用标准的恢复过程恢复到过去的某个时间点上。如果数据文件集没有保留足够的数据,则数据库会返回一个错误,在这种情况下,可先使用数据文件脱机,然后再发出语句恢复剩余的部分,最后再用标准方法恢复这些脱机的数据文件。,第11页,主要内容,16.1闪回技术概述16.2闪回数据库16.3闪回表16.4闪回查询16.5闪回版本查询16.6闪回事务查询16.7闪回丢弃16.8小结,第12页,16.3闪回表,闪回表是将表恢复到过去的某个时间点的状态,为DBA提供了一种在线、快速、便捷地恢复对表进行的修改、删除、插入等错误的操作,可以讲指定表中的数据、索引、触发器等恢复到指定的时间点。Oracle11g的FlashbackTable有以下特性。*在线操作。*恢复到指定时间点或者SCN的任何数据。*自动恢复相关属性,如索引、触发器。*满足分布式的一致性。*满足数据一致性,所有相关对象将自动一致。*闪回表技术是基于撤销数据(undodata)来实现的,因此要想闪回到过去的某个时间点上,必须确保与撤销表空间有关的参数设置合理。与撤销表空间相关参数有undo_management、undo_tablespace和undo_retention。,第13页,使用FLASHBACKTABLE语句可以对表进行闪回操作,语法如下:FLASHBACKTABLEschema.tableTOSCN|TIMESTAMPexpressionENABLE|DISABLETRIGGERS其中参数说明如下:SCN:将表恢复到指定的SCN时的状态。TIMESTAMP:将表恢复到指定的时间点。ENABLE|DISABLETRIGGER:恢复后是否直接启用触发器。需要注意的是,如果需要FLASHBACK一个表,则需要保证如下几个方面:具备FLASHBACKANYTABLE的系统权限或者是该表的FLASHBACK对象权限;有该表的SELECT、INSERT、DELETE和ALTER权限;必须保证该表ROWMOVEMENT。,第14页,【例16-1】删除闪回表。SQLsettimeonSQLcreatetablehr.mydep1asselect*fromhr.department;SQLdeletefromhr.mydep1wheredepartment_id=10;SQLflashbacktablehr.mydep1totimestamp2totimestamp(to_tate(2012-04-0310:00:00,yyyy-mm-ddhh24:mi:ss);,第15页,主要内容,16.1闪回技术概述16.2闪回数据库16.3闪回表16.4闪回查询16.5闪回版本查询16.6闪回事务查询16.7闪回丢弃16.8小结,第16页,16.4闪回查询,闪回查询是Oracle9i提出的概念,指利用数据库回滚段存放的信息查看指定表中过去某个时间点的数据信息,或过去某个时间段数据的变化情况,或某个事务对该表的操作信息等。使用闪回查询可以找到发生误操作前的数据情况,为恢复数据库提供依据。要实现闪回查询,必须将初始化参数UNDO_MANAGEMENT设置为AUTO,这是此参数的默认值。初始化参数UNDO_RETENTION决定了能往前闪回查询的最大时间,值越大可以往前闪回查询的最大时间越长,但占用的磁盘空间也越大。,第17页,闪回查询的SELECT语句的语法格式为:SELECTcolumn_name,FROMtable_nameASOFSCN|TIMESTAMPexpressionWHEREcondition可以基于ASOFTIMESTAMP的闪回查询,也可以基于ASOFSCN的闪回查询。其实Oracle在内部都是使用SCN的,即使指定的是ASOFTIMESTAMP,Oracle也会将其转换成SCN。系统时间与SCN之间的对应关系可以通过查询SYS模式下的SMON_SCN_TIME表获得。,第18页,例如:SQLsettimeon创建示例表:SQLcreatetablehr.mydep4asselect*fromhr.departments;删除记录:SQLdeletefromhr.mydep4wheredepartment_id=300;SQLcommit;使用select查询不到刚才删除的记录,但使用闪回查询可以找到:SQLselect*fromhr.mydep4asoftimestamp2totimestamp(to_date(2012-3-2810:30:00,yyyy-mm-ddhh24:mi:ss)3Wheredepartment_id=300;,第19页,主要内容,16.1闪回技术概述16.2闪回数据库16.3闪回表16.4闪回查询16.5闪回版本查询16.6闪回事务查询16.7闪回丢弃16.8小结,第20页,16.5闪回版本查询,Oracle的闪回版本查询功能(FlashbackVersionQuery)提供了一个审计行改变的查询功能,它能找到所有已经提交了的行的记录。借助这个特殊功能,我们可以查看一行记录在一段时间内的变化情况,即一行记录的多个提交的版本信息,从而实现数据的行级恢复。使用该功能,可以轻松实现对应用系统进行审计,而没有必要使用细粒度的审计功能或者是使用LOGMNR了。语法格式为:SELECTcolumn_name,FROMtable_nameVERSIONSBETWEENSCN|TIMESTAMPMINVALUE|expressionANDMAXVALUE|expressionASOFSCN|TIMESTAMPexpressionWHEREcondition,第21页,参数说明如下:VERSIONSBETWEEN:用于指定闪回版本查询时的时间段或SCN段;ASOF:表示恢复单个版本;TIMESTAMP:表示时间。在进行闪回版本查询时,可以同时使用VERSIONS短语和ASOF短语。ASOF短语决定了进行查询的时间点或SCN,VERSIONS短语决定了可见的行的版本信息。对于在VERSIONSBETWEEN下界之前开始的事务,或在ASOF指定的时间或SCN之后完成的事务,系统返回的版本信息为NULL。,第22页,【例16-2】创建一个读者信息表。SQLcreatetablereader(idVarchar2(10),nameVarchar2(20);插入一条记录:SQLinsertintoreadervalues(13100110,zs);更新表中数据:SQLupdatereadersetid=13100101wherename=zs;提交:SQLcommit;使用闪回版本查询:SQLselectversions_starttime,versions_operation,id,name2fromreaderversionsbetweentimestampminvalueandmaxvalue;,第23页,执行结果如图16-1所示,图16-1闪回版本查询,第24页,主要内容,16.1闪回技术概述16.2闪回数据库16.3闪回表16.4闪回查询16.5闪回版本查询16.6闪回事务查询16.7闪回丢弃16.8小结,第25页,16.6闪回事务查询,事务是访问数据库时一系列的逻辑相关动作。Oracle11g的闪回事务查询就是对过去某段时间内所完成的事务的查询和撤销。闪回事务查询是一种诊断工具,用于帮助识别数据库发生的事务级变化。通过闪回事务分析,可以识别在一个特定的时间段内所发生的所有变化,也可以对数据库表进行事务级恢复。闪回事务查询的基础仍然是依赖于撤销数据(Undodata),它也是利用初始化的数据库参数UNDO_RETENTION来确定已经提交的撤销数据在数据库中的保存时间。【例16-3】已经提交的事务,通过闪回事务查询:SQLCONNECTsys/zzuliASsysdbaSQLselecttable_name,undo_sqlfromflashback_transaction_querywhererownumSHOWPARAMETERRECYCLEBINSQLALTERSYSTEMSETRECYCLEBIN=ON;,第30页,当执行DROPTABLE操作时,表及其关联对象被命名后保存在“回收站”中,可以通过查询USER_RECYCLEBIN、DBA_RECYCLEBIN视图获得被删除的表及其关联对象的信息。(1)查看回收站中的数据:SQLselectobject_name,original_name,createtime,droptimefromdba_recycle;(2)从回收站中恢复数据:SQLflashbacktablehr.mydep2tobeforedrop;如果在删除表时使用了PURGE短语,则表及关联对象被直接释放,空间被回收,相关信息不会进入“回收站”中:SQLCREATETABLEtest_purge(2IDMUMBERPRIMARYKEY,nameCHAR(20)3);SQLDROPTABLEtest_purgePURGE;SQLSELECTOBJECT_NAME,ORIGINAL_NAME,TYPE2FROMUSER_RECYCLEBIN;,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论