第16章Oracle资料学习ppt课件_第1页
第16章Oracle资料学习ppt课件_第2页
免费预览已结束,剩余28页可下载查看

下载本文档

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

文档简介

1、第16章 Oracle Database 11g闪回技术本章要点:了解闪回技术的意义。掌握闪回表的运用。了解闪回删除的原理。掌握闪回删除的运用。掌握闪回版本查询的运用。掌握闪回事务查询的运用。掌握闪回数据库的运用。了解闪回数据归档与其他闪回技术的区别。掌握闪回数据归档区的创建与管理。掌握闪回数据归档的运用。216.1 闪回表(Flashback Table)闪回表技术用于恢复表中的数据,可以在线进展闪回表操作。闪回表本质上是将表中的数据恢复到指定的时间点(TIMESTAMP)或系统改动号(SCN)上,并将自动恢复索引、触发器和约束等属性,同时数据库坚持联机,从而添加整体的可用性。闪回表需求用到

2、数据库中的吊销表空间,可以经过SHOW PARAMETER undo语句查看与吊销表空间相关的信息。316.1 闪回表(Flashback Table)【例16.1】查看当前数据库中与吊销表空间相关的设置,如下:SQL SHOW PARAMETER undo ;NAME TYPE VALUE- -undo_management string AUTOundo_retention integer 1200undo_tablespace string UNDOTBS1416.1 闪回表(Flashback Table)进展闪回表操作需求运用FLASHBACK TABLE语句,其语法如下:FLASH

3、BACK TABLE schema. table TO SCN | TIMESTAMP expr ENABLE | DISABLE TRIGGERS ;语法阐明如下。schema:方式名。table_name:表名。SCN:系统改动号。相对时间点而言,系统改动号比较难以了解,用户很难知道应该闪回到哪个SCN,而时间那么显得明了得多。可以运用SCN_TO_TIMESTAMP函数将SCN转变为对应的时间。TIMESTAMP:时间戳,包括年月日时分秒。可以运用TIMESTAMP_TO_SCN函数将时间转变为对应的SCN。Expr:指定一个值或表达式,用于表示时间点或SCN。ENABLE TRIGGE

4、RS:与表相关的触发器恢复后,默以为启用形状。DISABLE TRIGGERS:与表相关的触发器恢复后,默以为禁用形状。默许情况下为此选项。516.1 闪回表(Flashback Table)【例16.2】下面举例引见如何运用FLASHBACK TABLE语句执行闪回表操作。(1)在system用户下创建表mytest,如下:SQL CREATE TABLE mytest (id NUMBER) ;表已创建。(2)向mytest表中插入一条记录,并运用COMMIT命令提交,如下:SQL INSERT INTO mytest VALUES (1) ;已创建 1 行。SQL COMMIT ;提交完

5、成。616.1 闪回表(Flashback Table)(3)查询系统当前时间,用于闪回时运用,如下:SQL SELECT TO_CHAR(SYSDATE , YYYY-MM-DD HH24:MI:SS) FROM dual ;TO_CHAR(SYSDATE,YY-2021-10-06 10:44:47(4)再次向mytest表中添加一条记录,并运用COMMIT命令提交,如下:SQL INSERT INTO mytest VALUES (2) ;已创建 1 行。SQL COMMIT ;提交完成。(5)启用mytest表的行挪动功能,如下:SQL ALTER TABLE mytest ENABL

6、E ROW MOVEMENT ;表已更改。716.1 闪回表(Flashback Table)(6)运用FLASHBACK TABLE命令,将mytest表中的数据闪回到第3步查询出来的时间点上,如下:SQL FLASHBACK TABLE mytest TO TIMESTAMP 2 TO_TIMESTAMP(2021-10-06 10:44:47 , YYYY-MM-DD HH24:MI:SS) ;闪回完成。(7)查询mytest表中的数据,察看其数据能否闪回到了时间点2021-10-06 10:44:47上,如下:SQL SELECT * FROM mytest ; ID- 1816.2

7、闪回删除(Flashback Drop)闪回删除技术用于恢复曾经被用户删除(Drop)的数据库对象,这需求运用到Oracle数据库系统中的回收站机制。916.2.1 回收站(RecycleBin)1禁用与启用回收站Oracle系统中的回收站在默许情况下是启用形状的,可以经过设置初始化参数recyclebin的值来修正回收站的形状,这需求运用ALTER SESSION语句,其语法方式如下:ALTER SESSION SET recyclebin = ON | OFF ;假设回收站处于禁用(OFF)形状,那么被删除的数据库对象无法保管到回收站中,只能是被彻底删除。1016.2.1 回收站(Recy

8、cleBin)2查看回收站中的信息查看回收站中的信息时,普通用户可以运用SHOW RECYCLEBIN命令,也可以运用user_recyclebin数据字典,而数据库管理员那么可以运用dba_recyclebin数据字典。下面运用DESC命令了解user_recyclebin数据字典的构造,如下:参见教材P3521116.2.1 回收站(RecycleBin)3去除回收站中的对象去除回收站中的对象需求运用PURGE命令,其语法方式如下:PURGE TABLESPACE tablespace_name USER user_name | TABLE table_name | INDEX index

9、_name | RECYCLEBIN | DBA_RECYCLEBIN ;1216.2.2 运用闪回删除闪回删除的语法方式如下:FLASHBACK TABLE table_name TO BEFORE DROP RENAME TO new_table_name ;其中,table_name可以运用表的原名,也可以运用表在回收站中的称号。假设表的原名一样,那么在运用原名进展闪回删除操作时,默许复原最近一次删除的表。表被复原后,默许情况下运用其原名,而假设该称号曾经存在,那么需求在复原该表时对其重命名,这时需求运用RENAME TO子句。1316.2.2 运用闪回删除【例16.5】在scott用户

10、下创建表mytest2并删除该表后,查询该表在回收站中的信息,如下:参见教材P354再运用FLASHBACK语句复原该表,并对其重命名,如下:SQL FLASHBACK TABLE BIN$4VMKTgAvRVG84DxR7n+cFg=$0 2 TO BEFORE DROP 3 RENAME TO mytest2_new ;闪回完成。运用SELECT语句查询mytest2_new表,检查能否胜利复原,如下:SQL SELECT * FROM mytest2_new ; ID- 11416.3 闪回版本查询(Flashback Version Query)闪回版本查询技术用于查询某段时间内对表的

11、操作记录,主要针对INSERT、UPDATE和DELETE操作。闪回版本查询的语法方式如下:SELECT column_name , . FROM table_nameVERSIONS BETWEEN SCN | TIMESTAMP expr | MINVALUE AND expr | MAXVALUE | AS OF SCN | TIMESTAMP expr ;1516.3 闪回版本查询(Flashback Version Query)【例16.6】在scott用户下创建表myversion,并对该表进展一系列增删改操作,如下:参见教材P355上述操作在每次DML操作后都运用COMMIT命令

12、进展提交。接下来运用闪回版本查询获取myversion表上的一切操作记录。如下:参见教材P356在上述查询中运用了Flashback Version Query的部分伪列,其中,versions_operation表示对该行执行的操作,其值可为I、U和D,分别对应INSERT、UPDATE和DELETE;versions_starttime表示对该行进展改动时的起始时间戳(versions_startscn表示起始SCN);versions_endtime表示此次改动不再有效时的终了时间戳(versions_endscn表示终了SCN)。1616.4 闪回事务查询(Flashback Tran

13、saction Query)闪回事务查询是对闪回版本查询的扩展,经过它可以审计事务甚至吊销一个已提交的事务。在运用闪回版本查询时,闪回操作针对的是表,而运用闪回事务查询那么针对flashback_transaction_query视图,该视图的构造如下:参见教材P3561716.4 闪回事务查询(Flashback Transaction Query)【例16.7】上一节引见了闪回版本查询的运用,经过闪回版本查询可以了解表的操作记录,这些操作记录都是已提交的事务。假设需求吊销某个事务,可以运用如下步骤。(1)运用闪回版本查询获取事务ID,这需求用到Flashback Version Query

14、的另外一个伪列versions_xid,例如获取myversion表上的事务ID,如下:参见教材P357(2)运用闪回事务查询需求用户具有SELECT ANY TRANSACTION权限,下面运用system用户为scott用户授予该权限:参见教材P357(3)在scott用户下运用闪回事务查询获取010018003F050000对应的事务信息,如下:参见教材P357查询结果中的undo_sql字段很明确地给出了吊销事务的语句,也就是说假设想要吊销删除“记录3的事务,只需求执行如下语句即可:insert into SCOTT.MYVERSION(ID,TEXT) values (3,记录3);

15、1816.5 闪回数据库(Flashback Database)闪回数据库,实践上就是将数据库回退到过去的一个时间点或SCN上,从而实现整个数据库的恢复,这种恢复不需求经过备份,所以运用起来更方便、更快速。1916.5.1 闪回数据库设置闪回数据库是依赖于闪回日志的,Oracle系统提供了一组闪回日志,记录了数据库的前滚操作。首先需求了解如下几个参数。db_recovery_file_dest:闪回日志的存放位置。db_recovery_file_dest_size:存放闪回日志的空间(即恢复区)的大小。db_flashback_retention_target:闪回数据的保管时间,其单位为分

16、,默许值为1440,即一天。2016.5.1 闪回数据库设置启用闪回数据库功能需求运用如下语法方式:ALTER DATABSE FLASHBACK ON | OFF ;启用闪回数据库功能的步骤如下。(1)确定当前数据库的日志方式能否为归档方式 (2)设置闪回数据库功能为启用形状 (3)检查闪回数据库功能能否曾经启用,如下:SQL SELECT flashback_on FROM v$database ;FLASHBACK_ON-YES从查询结果可以看出,闪回数据库功能曾经胜利启用。2116.5.2 运用闪回数据库启用闪回数据库功能后,就可以对数据库进展闪回操作了。运用闪回数据库,需求用户具有S

17、YSDBA权限。闪回数据库的语法方式如下:FLASHBACK STANDBY DATABASE database_name TO BEFORE SCN | TIMESTAMP expr ;语法阐明如下。STANDBY:表示恢复一个备用数据库,假设没有相应的备用数据库,那么系统前往一个错误。假设不指定该选项,那么所恢复的数据库可以是主数据库,也可以是备用数据库。database_name:数据库称号。默以为当前数据库。SCN:指定一个SCN。TIMESTAMP:指定一个时间戳。Expr:指定一个值或表达式。BEFORE:恢复到指定SCN或时间戳之前。2216.5.2 运用闪回数据库【例16.8】

18、Oracle数据库闪回的例如如下。(1)在scott用户下创建两个表student1与student2,并向这两个表添加数据(留意运用COMMIT命令进展提交)。 (2)获取系统当前的时间,供闪回数据库时运用。 (3)删除student1表,并修正student2表中的数据。 (4)下面运用sys用户闪回当前数据库:参见教材P361(5)运用scott用户衔接数据库,查询student1表和student2表。 从查询结果可以看出,scott用户下存在student1表,并且student2表中记录的sname值依然为TRACY,这就阐明当前数据库中的数据曾经恢复到了指定的时间点。2316.6

19、 闪回数据归档(Flashback Data Archive)闪回数据归档的实现机制与前面几种闪回不同,它将改动的数据另外存储到特定的闪回数据归档区中,从而让闪回不再受吊销数据的限制,大大提高了数据的保管时间,闪回数据归档中的数据行可以保管几年甚至几十年。闪回数据归档并不针对一切的数据改动,它只记录UPDATE和DELETE语句,而不记录INSERT语句。2416.6.1 创建与管理闪回数据归档区1创建闪回数据归档区创建闪回数据归档区的语法方式如下:CREATE FLASHBACK ARCHIVE DEFAULT archive_nameTABLESPACE tablespace_name Q

20、UOTA size K | M RETENTION retention_time ;2管理闪回数据归档区对已创建的闪回数据归档区,可以进展如下方式的管理添加表空间、删除表空间、修正数据保管期限、修正磁盘限额大小、去除闪回数据归档区中的数据和删除闪回数据归档区。2516.6.2 为表指定闪回数据归档区1在创建表时为表指定闪回数据归档区在创建表时为表指定闪回数据归档区,需求运用FLASHBACK ARCHIVE子句。【例16.17】在system用户下创建表table01,并为其指定闪回数据归档区为archive01。详细如下:SQL CONNECT system/admin已衔接。SQL CREATE TABLE table01 (id NUMBER , text VARCHAR2(10) 2 FLASHBACK ARCHIVE archive01 ;表已创建。2616.6.2 为表

温馨提示

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

评论

0/150

提交评论