




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2,第16章OracleDatabase11g闪回技术,本章要点:了解闪回技术的意义。掌握闪回表的使用。理解闪回删除的原理。掌握闪回删除的使用。掌握闪回版本查询的使用。掌握闪回事务查询的使用。掌握闪回数据库的使用。了解闪回数据归档与其他闪回技术的区别。掌握闪回数据归档区的创建与管理。掌握闪回数据归档的使用。,3,16.1闪回表(FlashbackTable),闪回表技术用于恢复表中的数据,可以在线进行闪回表操作。闪回表实质上是将表中的数据恢复到指定的时间点(TIMESTAMP)或系统改变号(SCN)上,并将自动恢复索引、触发器和约束等属性,同时数据库保持联机,从而增加整体的可用性。闪回表需要用到数据库中的撤消表空间,可以通过SHOWPARAMETERundo语句查看与撤消表空间相关的信息。,4,16.1闪回表(FlashbackTable),【例16.1】查看当前数据库中与撤消表空间相关的设置,如下:SQLSHOWPARAMETERundo;NAMETYPEVALUE-undo_managementstringAUTOundo_retentioninteger1200undo_tablespacestringUNDOTBS1,5,16.1闪回表(FlashbackTable),进行闪回表操作需要使用FLASHBACKTABLE语句,其语法如下:FLASHBACKTABLEschema.tableTOSCN|TIMESTAMPexprENABLE|DISABLETRIGGERS;语法说明如下。schema:模式名。table_name:表名。SCN:系统改变号。相对时间点而言,系统改变号比较难以理解,用户很难知道应该闪回到哪个SCN,而时间则显得明了得多。可以使用SCN_TO_TIMESTAMP函数将SCN转变为对应的时间。TIMESTAMP:时间戳,包括年月日时分秒。可以使用TIMESTAMP_TO_SCN函数将时间转变为对应的SCN。Expr:指定一个值或表达式,用于表示时间点或SCN。ENABLETRIGGERS:与表相关的触发器恢复后,默认为启用状态。DISABLETRIGGERS:与表相关的触发器恢复后,默认为禁用状态。默认情况下为此选项。,6,16.1闪回表(FlashbackTable),【例16.2】下面举例介绍如何使用FLASHBACKTABLE语句执行闪回表操作。(1)在system用户下创建表mytest,如下:SQLCREATETABLEmytest(idNUMBER);表已创建。(2)向mytest表中插入一条记录,并使用COMMIT命令提交,如下:SQLINSERTINTOmytestVALUES(1);已创建1行。SQLCOMMIT;提交完成。,7,16.1闪回表(FlashbackTable),(3)查询系统当前时间,用于闪回时使用,如下:SQLSELECTTO_CHAR(SYSDATE,YYYY-MM-DDHH24:MI:SS)FROMdual;TO_CHAR(SYSDATE,YY-2009-10-0610:44:47(4)再次向mytest表中添加一条记录,并使用COMMIT命令提交,如下:SQLINSERTINTOmytestVALUES(2);已创建1行。SQLCOMMIT;提交完成。(5)启用mytest表的行移动功能,如下:SQLALTERTABLEmytestENABLEROWMOVEMENT;表已更改。,8,16.1闪回表(FlashbackTable),(6)使用FLASHBACKTABLE命令,将mytest表中的数据闪回到第3步查询出来的时间点上,如下:SQLFLASHBACKTABLEmytestTOTIMESTAMP2TO_TIMESTAMP(2009-10-0610:44:47,YYYY-MM-DDHH24:MI:SS);闪回完成。(7)查询mytest表中的数据,观察其数据是否闪回到了时间点2009-10-0610:44:47上,如下:SQLSELECT*FROMmytest;ID-1,9,16.2闪回删除(FlashbackDrop),闪回删除技术用于恢复已经被用户删除(Drop)的数据库对象,这需要使用到Oracle数据库系统中的回收站机制。,10,16.2.1回收站(RecycleBin),1禁用与启用回收站Oracle系统中的回收站在默认情况下是启用状态的,可以通过设置初始化参数recyclebin的值来修改回收站的状态,这需要使用ALTERSESSION语句,其语法形式如下:ALTERSESSIONSETrecyclebin=ON|OFF;如果回收站处于禁用(OFF)状态,则被删除的数据库对象无法保存到回收站中,只能是被彻底删除。,11,16.2.1回收站(RecycleBin),2查看回收站中的信息查看回收站中的信息时,普通用户可以使用SHOWRECYCLEBIN命令,也可以使用user_recyclebin数据字典,而数据库管理员则可以使用dba_recyclebin数据字典。下面使用DESC命令了解user_recyclebin数据字典的结构,如下:参见教材P352,12,16.2.1回收站(RecycleBin),3清除回收站中的对象清除回收站中的对象需要使用PURGE命令,其语法形式如下:PURGETABLESPACEtablespace_nameUSERuser_name|TABLEtable_name|INDEXindex_name|RECYCLEBIN|DBA_RECYCLEBIN;,13,16.2.2使用闪回删除,闪回删除的语法形式如下:FLASHBACKTABLEtable_nameTOBEFOREDROPRENAMETOnew_table_name;其中,table_name可以使用表的原名,也可以使用表在回收站中的名称。如果表的原名相同,则在使用原名进行闪回删除操作时,默认还原最近一次删除的表。表被还原后,默认情况下使用其原名,而如果该名称已经存在,则需要在还原该表时对其重命名,这时需要使用RENAMETO子句。,14,16.2.2使用闪回删除,【例16.5】在scott用户下创建表mytest2并删除该表后,查询该表在回收站中的信息,如下:参见教材P354再使用FLASHBACK语句还原该表,并对其重命名,如下:SQLFLASHBACKTABLEBIN$4VMKTgAvRVG84DxR7n+cFg=$02TOBEFOREDROP3RENAMETOmytest2_new;闪回完成。使用SELECT语句查询mytest2_new表,检查是否成功还原,如下:SQLSELECT*FROMmytest2_new;ID-1,15,16.3闪回版本查询(FlashbackVersionQuery),闪回版本查询技术用于查询某段时间内对表的操作记录,主要针对INSERT、UPDATE和DELETE操作。闪回版本查询的语法形式如下:SELECTcolumn_name,.FROMtable_nameVERSIONSBETWEENSCN|TIMESTAMPexpr|MINVALUEANDexpr|MAXVALUE|ASOFSCN|TIMESTAMPexpr;,16,16.3闪回版本查询(FlashbackVersionQuery),【例16.6】在scott用户下创建表myversion,并对该表进行一系列增删改操作,如下:参见教材P355上述操作在每次DML操作后都使用COMMIT命令进行提交。接下来使用闪回版本查询获取myversion表上的所有操作记录。如下:参见教材P356在上述查询中使用了FlashbackVersionQuery的部分伪列,其中,versions_operation表示对该行执行的操作,其值可为I、U和D,分别对应INSERT、UPDATE和DELETE;versions_starttime表示对该行进行改动时的起始时间戳(versions_startscn表示起始SCN);versions_endtime表示此次改动不再有效时的结束时间戳(versions_endscn表示结束SCN)。,17,16.4闪回事务查询(FlashbackTransactionQuery),闪回事务查询是对闪回版本查询的扩充,通过它可以审计事务甚至撤消一个已提交的事务。在使用闪回版本查询时,闪回操作针对的是表,而使用闪回事务查询则针对flashback_transaction_query视图,该视图的结构如下:参见教材P356,18,16.4闪回事务查询(FlashbackTransactionQuery),【例16.7】上一节介绍了闪回版本查询的使用,通过闪回版本查询可以了解表的操作记录,这些操作记录都是已提交的事务。如果需要撤消某个事务,可以使用如下步骤。(1)使用闪回版本查询获取事务ID,这需要用到FlashbackVersionQuery的另外一个伪列versions_xid,例如获取myversion表上的事务ID,如下:参见教材P357(2)使用闪回事务查询需要用户具有SELECTANYTRANSACTION权限,下面使用system用户为scott用户授予该权限:参见教材P357(3)在scott用户下使用闪回事务查询获取010018003F050000对应的事务信息,如下:参见教材P357查询结果中的undo_sql字段很明确地给出了撤消事务的语句,也就是说如果想要撤消删除“记录3”的事务,只需要执行如下语句即可:insertintoSCOTT.MYVERSION(ID,TEXT)values(3,记录3);,19,16.5闪回数据库(FlashbackDatabase),闪回数据库,实际上就是将数据库回退到过去的一个时间点或SCN上,从而实现整个数据库的恢复,这种恢复不需要通过备份,所以应用起来更方便、更快速。,20,16.5.1闪回数据库设置,闪回数据库是依赖于闪回日志的,Oracle系统提供了一组闪回日志,记录了数据库的前滚操作。首先需要了解如下几个参数。db_recovery_file_dest:闪回日志的存放位置。db_recovery_file_dest_size:存放闪回日志的空间(即恢复区)的大小。db_flashback_retention_target:闪回数据的保留时间,其单位为分,默认值为1440,即一天。,21,16.5.1闪回数据库设置,启用闪回数据库功能需要使用如下语法形式:ALTERDATABSEFLASHBACKON|OFF;启用闪回数据库功能的步骤如下。(1)确定当前数据库的日志模式是否为归档模式(2)设置闪回数据库功能为启用状态(3)检查闪回数据库功能是否已经启用,如下:SQLSELECTflashback_onFROMv$database;FLASHBACK_ON-YES从查询结果可以看出,闪回数据库功能已经成功启用。,22,16.5.2使用闪回数据库,启用闪回数据库功能后,就可以对数据库进行闪回操作了。使用闪回数据库,需要用户具有SYSDBA权限。闪回数据库的语法形式如下:FLASHBACKSTANDBYDATABASEdatabase_nameTOBEFORESCN|TIMESTAMPexpr;语法说明如下。STANDBY:表示恢复一个备用数据库,如果没有相应的备用数据库,则系统返回一个错误。如果不指定该选项,则所恢复的数据库可以是主数据库,也可以是备用数据库。database_name:数据库名称。默认为当前数据库。SCN:指定一个SCN。TIMESTAMP:指定一个时间戳。Expr:指定一个值或表达式。BEFORE:恢复到指定SCN或时间戳之前。,23,16.5.2使用闪回数据库,【例16.8】Oracle数据库闪回的示例如下。(1)在scott用户下创建两个表student1与student2,并向这两个表添加数据(注意使用COMMIT命令进行提交)。(2)获取系统当前的时间,供闪回数据库时使用。(3)删除student1表,并修改student2表中的数据。(4)下面使用sys用户闪回当前数据库:参见教材P361(5)使用scott用户连接数据库,查询student1表和student2表。从查询结果可以看出,scott用户下存在student1表,并且student2表中记录的sname值依然为TRACY,这就说明当前数据库中的数据已经恢复到了指定的时间点。,24,16.6闪回数据归档(FlashbackDataArchive),闪回数据归档的实现机制与前面几种闪回不同,它将改变的数据另外存储到特定的闪回数据归档区中,从而让闪回不再受撤消数据的限制,大大提高了数据的保留时间,闪回数据归档中的数据行可以保留几年甚至几十年。闪回数据归档并不针对所有的数据改变,它只记录UPDATE和DELETE语句,而不记录INSERT语句。,25,16.6.1创建与管理闪回数据归档区,1创建闪回数据归档区创建闪回数据归档区的语法形式如下:CREATEFLASHBACKARCHIVEDEFAULTarchive_nameTABLESPACEtablespace_nameQUOTAsizeK|MRETENTIONretention_time;2管理闪回数据归档区对已创建的闪回数据归档区,可以进行如下形式的管理添加表空间、删除表空间、修改数据保留期限、修改磁盘限额大小、清除闪回数据归档区中的数据和删除闪回数据归档区。,26,16.6.2为表指定闪回数据归档区,1在创建表时为表指定闪回数据归档区在创建表时为表指定闪回数据归档区,需要使用FLASHBACKARCHIVE子句。【例16.17】在system用户下创建表table01,并为其指定闪回数据归档区为archive01。具体如下:SQLCONNECTsystem/admin已连接。SQLCREATETABLEtable01(idNUMBER,textVARCHAR2(10)2FLASHBACKARCHIVEarchive01;表已创建。,27,1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-河南-河南理疗技术员一级(高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-河南-河南有线广播电视机务员五级(初级工)历年参考题库典型考点含答案解析
- 2024版机械加工承包合同范本
- 2025年事业单位工勤技能-河北-河北家禽饲养员四级(中级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-河北-河北兽医防治员三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-江西-江西园林绿化工二级(技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西经济岗位工五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西管工(技师/高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西检验员一级(高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西客房服务员三级(高级工)历年参考题库典型考点含答案解析
- 2026版步步高大一轮高考数学复习讲义第十章 §10.1 计数原理与排列组合含答案
- 人力公司营销策划方案
- 医院医疗用房管理制度
- 股权代持协议终止协议书
- 捡土豆装车合同协议书
- 国际压力性损伤溃疡预防和治疗临床指南(2025年版)解读
- 海天对客户分级管理
- 薪资抵扣协议书模板
- 血管内导管相关性血流感染预防与诊治指南(2025)解读课件
- 人力资源培训:招聘与面试技巧
- aigc培训课件教学课件
评论
0/150
提交评论