oracle基础-第四天les闪回_第1页
oracle基础-第四天les闪回_第2页
oracle基础-第四天les闪回_第3页
oracle基础-第四天les闪回_第4页
oracle基础-第四天les闪回_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

北京传智播客教育闪回北京传智播客教育通过本章学习,您将可以:闪回的基本概念闪回表闪回删除闪回版本查询闪回事务查询目标闪回(Flashback)在Oracle的操作工程中,会不可避免地出现操作失误或者用户失误,例如不小心删除了一个表等,这些失误和错误可能会造成重要数据的丢失,最终导致Oracle数据库停止。在传统意义上,当发生数据丢失、数据错误问题时,解决的主要办法是数据的导入导出、备份恢复技术,这些方法都需要在发生错误前,有一个正确的备份才能进行恢复。为了减少这方面的损失,Oracle提供了闪回技术。有了闪回技术,就可以实现数据的快速恢复,而且不需要数据备份。北京传智播客教育闪回的益处恢复中,闪回技术是革命性的进步传统的恢复技术缓慢:它是整个数据库或者一个文件恢复,不只恢复损坏的数据在数据库日志中每个修改都必须被检查闪回速度快:通过行和事务把改变编入索引仅仅改变了的数据会被恢复闪回命令很容易:没有复杂棘手的多步程序北京传智播客教育闪回的类型闪回表(flashbacktable)闪回删除(flashbackdrop)闪回版本查询(flashbackversionquery)闪回事务查询(flashbacktransactionquery)北京传智播客教育闪回表闪回表,实际上是将表中的数据快速恢复到过去的一个是焦点或者系统改变号SCN上。实现表的闪回,需要使用到与撤销表空间相关的undo信息,通过showparameterundo命令可以了解这些信息。用户对表数据的修改操作,都记录在撤销表空间中,这为表的闪回提供了数据恢复的基础。例如,某个修改操作在提交后被记录在撤销表空间中,保留时间为900秒,用户可以在这900秒的时间内对表进行闪回操作,从而将表中的数据恢复到修改之前的状态。执行表的闪回,需要有flashbackanytable的权限北京传智播客教育闪回表语法:FLASHBACKTABLE[schema.]<table_name>TO

{[BEFOREDROP[RENAMETOtable]][SCN|TIMESTAMP]expr[ENABLE|DISABLE]TRIGGERS}schema:模式名,一般为用户名。TOTIMESTAMP:系统邮戳,包含年、月、日、时、分、秒。TOSCN:系统更改号,ENABLETRIGGERS:表示触发器恢复以后为enable状态,而默认为disable状态。TOBEFOREDROP:表示恢复到删除之前。RENAMETOtable:表示更换表名。北京传智播客教育闪回表注意:闪回表需要将表的行移动功能打开altertable<table_name>enablerowmovement;北京传智播客教育闪回表举例:通过timestamp闪回表通过SCN号闪回表北京传智播客教育闪回表:需要考虑的事情FLASHBACKTABLE命令作为单一的事务执行,会得到一个单一的DML锁表的统计数据不会被闪回当前的索引和从属的对象会被维持闪回表操作:系统表不能被闪回不能跨越DDL操作会被写入警告日志产生撤销和重做的数据北京传智播客教育闪回删除闪回删除,实际上从系统的回收站中将已删除的对象,恢复到删除之前的状态。系统的回收站只对普通用户有作用。北京传智播客教育闪回删除:回收站(recyclebin)简介回收站是所有被删除对象及其相依对象的逻辑存储容器,例如当一个表被删除(drop)时,该表及其相依对象并不会马上被数据库彻底删除,而是被保存到回收站中。回收站将用户执行的drop操作记录在一个系统表中,也就是将被删除的对象写到一个数据字典中。如果确定不再需要该对象,可以使用purge命令对回收站进行清空。被删除的对象的名字可能是相同的,例如用户创建了一个test表,使用drop命令删除该表后,又创建了一个test表,这时,如果再次删除该表就会导致向回收站中添加了两个相同的表。Oracle回收站举例。北京传智播客教育闪回删除:回收站中对象的命名规则为了确保添加到回收站中的对象的名称都是唯一的,系统会对这些保存到回收站中的对象进行重命名,重命名的格式如下: BIN$globalUID$version其中:BIN表示RECYCLEBIN;globalUID是一个全局唯一的、24个字非长的对象,该标识与原对象名没有任何关系;version指数据库分配的版本号。北京传智播客教育闪回删除举例:闪回使用drop命令删除的表使用表名闪回使用recyclebinname闪回闪回重名的表北京传智播客教育闪回删除:需要考虑的事情闪回删除对下列表无效:在SYSTEM表空间内的表用精细审计的数据库或虚拟的私人数据库属于字典管理的表空间由于空间不足已经被手动或自动删除的表以下依赖不被保护:位图索引表之前删掉的索引北京传智播客教育闪回版本查询闪回版本查询,提供了一个审计行改变的查询功能,通过它可以查找到所有已经提交了的行记录。其语法格式如下:selectcolumn_name[,column_name,...]fromtable_nameversionsbetween[SCN|TIMESTAMP][expr|MINVALUE]

and[epxr|MAXVALUE]asof[SCN|TIMESTAMP]expr;其中:column_name列名;table_name表名;between...and时间段;SCN系统改变号;TIMESTAMP时间戳;ASOF表示恢复单个版本;MAXVALUE最大值;MINVALUE最小值;expr指定一个值或者表达式。北京传智播客教育闪回版本查询举例创建一张新表:createtableversion_table(vidint,contentvarchar(20));执行如下操作:insertintoversion_tablevalues(1,'aaa');commit;insertintoversion_tablevalues(2,'bbb');commit;updateversion_tablesetcontent='bbb1'wherevid=2;commit;insertintoversion_tablevalues(3,'ccc');commit;执行闪回版本查询。北京传智播客教育闪回事务查询闪回事务查询实际上闪回版本查询的一个扩充,通过它可以审计某个事务甚至撤销一个已经提交的事务。实现闪回事务查询,需要先了解flashback_transaction_query视图,从该视图中可以获取事务的历史操作记录以及撤销语句(UNDO_SQL)。使用闪回事务查询,可以了解某个表的历史操作记录,这个操作记录对应一个撤销SQL语句,如果想要撤销这个操作,就可以执行这个SQL语句。北京传智播客教育Flashback_transaction_query北京传智播客教育名称类型说明

------------------------------------------------------------------------------------------------XIDRAW(8)事务编号

START_SCNNUMBER事务的开始的系统改变号

START_TIMESTAMPDATE事务的开始时间

COMMIT_SCNNUMBER事务提交时的系统改变号

COMMIT_TIMESTAMPDATE事务提交时的时间

LOGON_USERVARCHAR2(30)对应的用户

UNDO_CHANGE#NUMBER撤销操作对应的编号

OPERATIONVARCHAR2(32)操作

TABLE_NAMEVARCHAR2(256)表

TABLE_OWNERVARCHAR2(32)所有者

ROW_IDVARCHAR2(19)行号

UNDO_SQLVARCHAR2(4000)撤销事务的SQL语句

温馨提示

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

评论

0/150

提交评论