版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第16章章OracleDatabase11g闪回技技术本章要点点:了解闪回回技术的的意义。掌握闪回回表的使使用。理解闪回回删除的的原理。掌握闪回回删除的的使用。掌握闪回回版本查查询的使使用。掌握闪回回事务查查询的使使用。掌握闪回回数据库库的使用用。了解闪回回数据归归档与其其他闪回回技术的的区别。掌握闪回回数据归归档区的的创建与与管理。掌握闪回回数据归归档的使使用。216.1闪闪回表(Flashback Table)闪回表技技术用于于恢复表表中的数数据,可可以在线线进行闪闪回表操操作。闪回表实实质上是是将表中中的数据据恢复到到指定的的时间点点(TIMESTAMP)或或系统改改变号(SCN)上,并
2、将自自动恢复复索引、触发器器和约束束等属性性,同时时数据库库保持联联机,从从而增加加整体的的可用性性。闪回表需需要用到到数据库库中的撤撤消表空空间,可可以通过过SHOWPARAMETERundo语句句查看与与撤消表表空间相相关的信信息。316.1闪闪回表(Flashback Table)【例16.1】查看当前前数据库库中与撤撤消表空空间相关关的设置置,如下下:SQL SHOWPARAMETER undo;NAMETYPEVALUE-undo_managementstringAUTOundo_retentioninteger1200undo_tablespacestringUNDOTBS1416
3、.1闪闪回表(Flashback Table)进行闪回回表操作作需要使使用FLASHBACKTABLE语句句,其语语法如下下:FLASHBACKTABLEschema. tableTO SCN |TIMESTAMP expr ENABLE |DISABLE TRIGGERS ;语法说明明如下。schema:模式名名。table_name:表名名。SCN:系统改改变号。相对时时间点而而言,系系统改变变号比较较难以理理解,用用户很难难知道应应该闪回回到哪个个SCN,而时时间则显显得明了了得多。可以使使用SCN_TO_TIMESTAMP函函数将SCN转转变为对对应的时时间。TIMESTAMP:时间戳
4、戳,包括括年月日日时分秒秒。可以以使用TIMESTAMP_TO_SCN函数将将时间转转变为对对应的SCN。Expr:指定定一个值值或表达达式,用用于表示示时间点点或SCN。ENABLETRIGGERS:与表相相关的触触发器恢恢复后,默认为为启用状状态。DISABLE TRIGGERS:与表表相关的的触发器器恢复后后,默认认为禁用用状态。默认情情况下为为此选项项。516.1闪闪回表(Flashback Table)【例16.2】下面举例例介绍如如何使用用FLASHBACK TABLE语句执执行闪回回表操作作。(1)在在system用户户下创建建表mytest,如如下:SQL CREATETABL
5、Emytest(id NUMBER);表已创建建。(2)向向mytest表中中插入一一条记录录,并使使用COMMIT命令令提交,如下:SQL INSERTINTO mytestVALUES(1) ;已创建1行行。SQL COMMIT;提交完成成。616.1闪闪回表(Flashback Table)(3)查查询系系统当前前时间,用于闪闪回时使使用,如如下:SQL SELECTTO_CHAR(SYSDATE,YYYY-MM-DDHH24:MI:SS)FROMdual ;TO_CHAR(SYSDATE,YY-2009-10-06 10:44:47(4)再再次向向mytest表中添添加一条条记录,并使
6、用用COMMIT命令提提交,如如下:SQL INSERTINTO mytestVALUES(2) ;已创建1行行。SQL COMMIT;提交完成成。(5)启启用mytest表表的行移移动功能能,如下下:SQL ALTER TABLE mytestENABLEROW MOVEMENT ;表已更改改。716.1闪闪回表(Flashback Table)(6)使使用FLASHBACKTABLE命命令,将将mytest表中的的数据闪闪回到第第3步查查询出来来的时间间点上,如下:SQL FLASHBACKTABLEmytestTOTIMESTAMP2TO_TIMESTAMP(2009-10-0610:4
7、4:47 ,YYYY-MM-DDHH24:MI:SS) ;闪回完成成。(7)查查询mytest表表中的数数据,观观察其数数据是否否闪回到到了时间间点2009-10-0610:44:47上上,如下下:SQL SELECT* FROMmytest ;ID-1816.2闪闪回删除除(FlashbackDrop)闪回删除除技术用用于恢复复已经被被用户删删除(Drop)的数数据库对对象,这这需要使使用到Oracle数数据库系系统中的的回收站站机制。916.2.1回回收收站(RecycleBin)1禁用用与启用用回收站站Oracle系系统中的的回收站站在默认认情况下下是启用用状态的的,可以以通过设设置初始
8、始化参数数recyclebin的值值来修改改回收站站的状态态,这需需要使用用ALTERSESSION语句句,其语语法形式式如下:ALTERSESSION SETrecyclebin =ON|OFF;如果回收收站处于于禁用(OFF)状态态,则被被删除的的数据库库对象无无法保存存到回收收站中,只能是是被彻底底删除。1016.2.1回回收收站(RecycleBin)2查看看回收站站中的信信息查看回收收站中的的信息时时,普通通用户可可以使用用SHOWRECYCLEBIN命令,也可以以使用user_recyclebin数数据字典典,而数数据库管管理员则则可以使使用dba_recyclebin数据字字典。
9、下面使用用DESC命令令了解user_recyclebin数数据字典典的结构构,如下下:参见教材材P3521116.2.1回回收收站(RecycleBin)3清除除回收站站中的对对象清除回收收站中的的对象需需要使用用PURGE命命令,其其语法形形式如下下:PURGE TABLESPACEtablespace_nameUSER user_name | TABLEtable_name| INDEX index_name| RECYCLEBIN| DBA_RECYCLEBIN ;1216.2.2使使用用闪回删删除闪回删除除的语法法形式如如下:FLASHBACKTABLEtable_nameTOBEF
10、OREDROP RENAMETOnew_table_name ;其中,table_name可以使使用表的的原名,也可以以使用表表在回收收站中的的名称。如果表表的原名名相同,则在使使用原名名进行闪闪回删除除操作时时,默认认还原最最近一次次删除的的表。表表被还原原后,默默认情况况下使用用其原名名,而如如果该名名称已经经存在,则需要要在还原原该表时时对其重重命名,这时需需要使用用RENAME TO子句。1316.2.2使使用用闪回删删除【例16.5】在scott用用户下创创建表mytest2并删除除该表后后,查询询该表在在回收站站中的信信息,如如下:参见教材材P354再使用FLASHBACK语语句还
11、原原该表,并对其其重命名名,如下下:SQL FLASHBACKTABLEBIN$4VMKTgAvRVG84DxR7n+cFg=$02TOBEFOREDROP3RENAMETOmytest2_new;闪回完成成。使用SELECT语句句查询mytest2_new表,检查是是否成功功还原,如下:SQL SELECT* FROMmytest2_new;ID-11416.3闪回版本本查询(FlashbackVersionQuery)闪回版本本查询技技术用于于查询某某段时间间内对表表的操作作记录,主要针针对INSERT、UPDATE和和DELETE操作。闪回版版本查询询的语法法形式如如下:SELECTco
12、lumn_name, . FROMtable_nameVERSIONSBETWEEN SCN| TIMESTAMPexpr |MINVALUEAND expr|MAXVALUE| ASOFSCN|TIMESTAMPexpr ;1516.3闪回版本本查询(FlashbackVersionQuery)【例16.6】在scott用用户下创创建表myversion,并对该该表进行行一系列列增删改改操作,如下:参见教材材P355上述操作作在每次次DML操作后后都使用用COMMIT命令进进行提交交。接下下来使用用闪回版版本查询询获取myversion表表上的所所有操作作记录。如下:参见教材材P356在上述
13、查查询中使使用了FlashbackVersionQuery的部部分伪列列,其中中,versions_operation表示示对该行行执行的的操作,其值可可为I、U和D,分别别对应INSERT、UPDATE和DELETE;versions_starttime表表示对该该行进行行改动时时的起始始时间戳戳(versions_startscn表示起起始SCN);versions_endtime表示示此次改改动不再再有效时时的结束束时间戳戳(versions_endscn表示示结束SCN)。1616.4闪回事务务查询(FlashbackTransactionQuery)闪回事务务查询是是对闪回回版本查查
14、询的扩扩充,通通过它可可以审计计事务甚甚至撤消消一个已已提交的的事务。在使用闪闪回版本本查询时时,闪回回操作针针对的是是表,而而使用闪闪回事务务查询则则针对flashback_transaction_query视视图,该该视图的的结构如如下:参见教材材P3561716.4闪回事务务查询(FlashbackTransactionQuery)【例16.7】上一节介介绍了闪闪回版本本查询的的使用,通过闪闪回版本本查询可可以了解解表的操操作记录录,这些些操作记记录都是是已提交交的事务务。如果果需要撤撤消某个个事务,可以使使用如下下步骤。(1)使使用闪闪回版本本查询获获取事务务ID,这需要要用到Flas
15、hbackVersionQuery的另另外一个个伪列versions_xid,例例如获取取myversion表上的的事务ID,如如下:参见教材材P357(2)使使用闪闪回事务务查询需需要用户户具有SELECTANY TRANSACTION权限,下面使使用system用户户为scott用户授授予该权权限:参见教材材P357(3)在在scott用户下下使用闪闪回事务务查询获获取010018003F050000对对应的事事务信息息,如下下:参见教材材P357查询结果果中的undo_sql字段段很明确确地给出出了撤消消事务的的语句,也就是是说如果果想要撤撤消删除除“记录录3”的的事务,只需要要执行如如
16、下语句句即可:insertintoSCOTT.MYVERSION(ID,TEXT)values(3,记录3);1816.5闪回数据据库(FlashbackDatabase)闪回数据据库,实实际上就就是将数数据库回回退到过过去的一一个时间间点或SCN上上,从而而实现整整个数据据库的恢恢复,这这种恢复复不需要要通过备备份,所所以应用用起来更更方便、更快速速。1916.5.1闪闪回回数据库库设置闪回数据据库是依依赖于闪闪回日志志的,Oracle系系统提供供了一组组闪回日日志,记记录了数数据库的的前滚操操作。首先需要要了解如如下几个个参数。db_recovery_file_dest:闪回日日志的存存放
17、位置置。db_recovery_file_dest_size:存存放闪回回日志的的空间(即恢复复区)的的大小。db_flashback_retention_target:闪闪回数据据的保留留时间,其单位位为分,默认值值为1440,即一天天。2016.5.1闪闪回回数据库库设置启用闪回回数据库库功能需需要使用用如下语语法形式式:ALTERDATABSE FLASHBACKON| OFF;启用闪回回数据库库功能的的步骤如如下。(1)确确定当当前数据据库的日日志模式式是否为为归档模模式(2)设设置闪闪回数据据库功能能为启用用状态(3)检检查闪闪回数据据库功能能是否已已经启用用,如下下:SQL SEL
18、ECTflashback_onFROMv$database ;FLASHBACK_ON-YES从查询结结果可以以看出,闪回数数据库功功能已经经成功启启用。2116.5.2使使用用闪回数数据库启用闪回回数据库库功能后后,就可可以对数数据库进进行闪回回操作了了。使用用闪回数数据库,需要用用户具有有SYSDBA权限。闪回数数据库的的语法形形式如下下:FLASHBACKSTANDBY DATABASEdatabase_name TO BEFORE SCN |TIMESTAMP expr;语法说明明如下。STANDBY:表示示恢复一一个备用用数据库库,如果果没有相相应的备备用数据据库,则则系统返返回一个
19、个错误。如果不不指定该该选项,则所恢恢复的数数据库可可以是主主数据库库,也可可以是备备用数据据库。database_name:数据据库名称称。默认认为当前前数据库库。SCN:指定一一个SCN。TIMESTAMP:指定一一个时间间戳。Expr:指定定一个值值或表达达式。BEFORE:恢复到到指定SCN或或时间戳戳之前。2216.5.2使使用用闪回数数据库【例16.8】Oracle数数据库闪闪回的示示例如下下。(1)在在scott用户下下创建两两个表student1与student2,并并向这两两个表添添加数据据(注意意使用COMMIT命命令进行行提交)。(2)获获取系系统当前前的时间间,供闪闪回
20、数据据库时使使用。(3)删删除student1表,并修改改student2表表中的数数据。(4)下下面使使用sys用户户闪回当当前数据据库:参见教材材P361(5)使使用scott用户户连接数数据库,查询student1表和和student2表表。从查询结结果可以以看出,scott用用户下存存在student1表,并并且student2表中记记录的sname值依依然为TRACY,这这就说明明当前数数据库中中的数据据已经恢恢复到了了指定的的时间点点。2316.6闪回数据据归档(FlashbackDataArchive)闪回数据据归档的的实现机机制与前前面几种种闪回不不同,它它将改变变的数据据另外
21、存存储到特特定的闪闪回数据据归档区区中,从从而让闪闪回不再再受撤消消数据的的限制,大大提提高了数数据的保保留时间间,闪回回数据归归档中的的数据行行可以保保留几年年甚至几几十年。闪回数据据归档并并不针对对所有的的数据改改变,它它只记录录UPDATE和DELETE语句句,而不不记录INSERT语语句。2416.6.1创创建建与管理理闪回数数据归档档区1创建建闪回数数据归档档区创建闪回回数据归归档区的的语法形形式如下下:CREATEFLASHBACK ARCHIVEDEFAULT archive_nameTABLESPACE tablespace_name QUOTA sizeK| MRETENTI
22、ONretention_time;2管理理闪回数数据归档档区对已创建建的闪回回数据归归档区,可以进进行如下下形式的的管理添加加表空间间、删除除表空间间、修改改数据保保留期限限、修改改磁盘限限额大小小、清除除闪回数数据归档档区中的的数据和和删除闪闪回数据据归档区区。2516.6.2为为表表指定闪闪回数据据归档区区1在创创建表时时为表指指定闪回回数据归归档区在创建表表时为表表指定闪闪回数据据归档区区,需要要使用FLASHBACKARCHIVE子句句。【例16.17】在system用户下下创建表表table01,并并为其指指定闪回回数据归归档区为为archive01。具体体如下:SQL CONNECTsystem/admin已连接。SQL CREATETABLEtable01 (idNUMBER,text VARCHAR2(10)2FLASHBACKARCHIVEarchive01;表已创建建。2616.6.2为为表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高一地理辨别地理方向单元活动
- 《Auto-CAD自动绘图》课件
- 高速铁路路基工程技术三
- Java语言程序设计基础教程JavaAPI
- EPCO小猪班纳童装品牌上柜企划案
- 《MBTI实例讲解》课件
- 热力学稳定性和反应的自发性
- 高热惊厥健康教育
- 制造业仓储自动化管理系统手册
- 房地产项目销售经理客户反馈与服务水平KPI考核表
- 2026医疗美容注射剂产品生命周期与消费者复购行为研究
- 2026医药行业临床试验数据管理与质量控制报告
- 磷化铟单晶片项目申请报告
- 数字化肉牛育肥项目可行性研究报告
- 2026年上海政府采购评审专家考试测试题及答案
- 2023年外国电影史经典笔记和考题
- 克隆动物养殖行业市场供需现状及价值投资规划
- 屋面层拆除工程施工方案
- 历年中考英语高频词汇汇编(真题800词完整版)
- 2026山东能源集团中级人才库选拔易考易错模拟试题(共500题)试卷后附参考答案
- 2026年4月自考13015计算机系统原理试题试题及答案
评论
0/150
提交评论