Oracle 11g R2 闪回技术

为了使数据库能够从任何逻辑错误中迅速恢复,oracle推出了闪回技术。采用该技术,可以对行级和事物级的数据变化进行恢复,减少了数据恢复的时间,而且操作简单。通过SQL语句就可以实现数据的恢复,大大提高了数据库恢复的效率。闪回技术是数据库恢复技术历史上一次重大的进步,从根本上改变了数据恢复。

闪回技术包括以下各项:

闪回查询:(FLASHBACK QUERY):查询过去某个时间点或某个SCN值时表中的数据信息

闪回版本查询(FLASHBACK Version query):查询过去某个时间段或某个SCN段内表中数据变化的情况。

闪回事物查询(FLASHBACK Transaction Query):查看某个事物或所有事物在过去一段时间对数据进行的修改。

闪回数据库(FLASHBACK Database):将数据库恢复到过去某个时间点或某个SCN值时的状态

闪回删除(FLASHBACK drop):将已经删除的表及其关联的对象恢复到删除前的状态。

闪回表(FLASHBACK table):将表恢复到过去的某个时间点或某个SCN值时的状态。

SCN是当oracle数据库更新后,有DBMS自动维护而累积递增的一个数字。可以通过查询数据字典V$DATABASE中的CURRENT_SCN获得当前的SCN号。

闪回恢复区的含义
oracle推荐指定一个闪回恢复区(FLASHRECOVERY AERA)作为存放备份与恢复相关的默认位置,这样ORACLE就可以实现自动的基于磁盘的备份与恢复。闪回恢复区是一块用来存储恢复相关的文件的存储空间,允许用户集中存储所有恢复相关的文件。以下几种文件可以存放在闪回恢复区。

控制文件

归档日志文件

闪回日志

控制文件和SPFILE自动备份

RMAN备份集

数据文件拷贝

闪回恢复区主要通过以下3个初始化参数来设置和管理

db_recovery_file_dest:指定闪回恢复区的位置

db_recovery_file_dest_size:指定闪回恢复区的可用空间

db_flashback_retention_target:该参数用来控制闪回日志中数据保留的时间,或者说,希望闪回数据库能够恢复到的最早的时间点。单位为min,默认是1440min,即一天。当然实际上可回退的时间还取决于闪回恢复区的大小,因为里面保存了回退所需要的闪回日志,所以这个参数要和db_recovery_file_dest_size配合修改。

如果要撤销闪回恢复区,把初始化参数DB_RECOVERY_FILE_DEST的值清空。

db_recovery_file_dest_size只有在DB_RECOVERY_FILE_DEST清空之后才可以清空

设置闪回数据库
设置了闪回恢复区,要启动闪回数据库功能,还需要进一步配置,数据必须处于归档模式,在设置闪回数据库

数据库已经处于归档模式:

数据库未启用闪回数据库

建立闪回区域

设置闪回数据库的数据保留周期为一天以min为单位

启用闪回日志

查询是否成功启用闪回恢复区

查询是否成功启用闪回数据库

闪回数据库

闪回数据库能够使数据迅速的回滚到以前的某个时间点或者某个SCN上,这对数据库从逻辑错误中恢复特别有用。而且也是大多数发生逻辑损坏时恢复数据库最佳的选择。

使用SCN闪回数据库

查看数据库系统当前SCN

改变数据库当前状态,模拟创建表TEST10,并插入一条记录

进行闪回数据库恢复,将数据库恢复到创建表之前的状态,即SCN为1238544

用RESETLOGS选项打开数据库


验证数据库的状态,TEST10表不存在。

查询数据库中当前最早的闪回SCN和时间

按照指定时间闪回数据库

查询数据库中当前时间和当前SCN

改变数据库的当前状态,模拟创建表test11,并插入1条记录

进行闪回数据库恢复,将数据库恢复到创建表之前的状态。

使用RESETLOGS打开数据库

验证数据库的状态test11表是否存在。

闪回数据库操作的限制:

数据文件损坏或丢失等介质故障不能使用闪回数据库进行恢复。闪回数据库只能基于当前正常运行的数据文件

闪回数据库功能启动后,如果发生数据控制文件重建或利用备份恢复控制文件,则不能使用闪回数据库

不能使用闪回数据库进行数据文件收缩操作

不能使用闪回数据库将数据库恢复到在闪回日志中可获得的最早的SCN之前的SCN,因为闪回日志文件在一定的条件下被删除,而不是始终保存在闪回恢复区中

闪回表
闪回表是将表恢复到过去的某个时间点或者指定的SCN而不用恢复数据文件,为DBA提供了一种在线、快速、便捷的恢复方式,可以恢复对表进行的修改、删除、插入等错误的操作。

     利用闪回表技术恢复表中的数据的过程,实际上是对表进行DML操作的过程。oracle自动维护与表相关联的索引、触发器、约束等。

为了使用数据库闪回功能,必须满足下列条件

用户具有FALSHBACKANY TABLE系统权限,或者具有所操作表的FLASHBACK对象权限

用户具有所操作表的SELECT/INSERT/DELETE/ALTER对象权限

启动被操作表的ROW MOVEMENT特性,可以采用下列方式进行:

SQL> ALTER TABLE 表名 ENABLE ROWMOVEMENT;

闪回表语法格式:

FLASHBACK TABLE [schema].table TO SCN |TIMESTAMP expression [ENABLE|DISABLE TRIGGERS]

参数说明:

SCN:将表恢复到指定的SCN时的状态

TIMESTAMP:将表恢复到指定额时间点

ENABLE|DISABLETRIGGERS:在恢复表中数据的过程中,表上的触发器时禁用还是激活(默认是引用)

举例说明:

使用SCOTT用户登录

创建表,插入记录,提交事物

查询当前SCN号,如果当前用户没有权限查询v$database,则以sys用户登录,授予当前用户访问数据字典的权限。

更新记录,并提交事物

查看表中的记录

删除ID=3的记录

启动test01表的ROW MOVEMENT特性

将test01表恢复到2015-11-22 05:44:48时刻的状态

将test01表恢复到SCN为1240503的状态。

闪回删除
闪回删除可以恢复使用DROP table语句删除的表,是一种对意外删除的表恢复机制。闪回删除的功能的实现主要是通过oracle数据库中的“回收站”技术实现的。在oracle数据库中,当执行DROP table操作时,并不立即收回表及其关联对象的空间,而是将他们重命名后放入一个称为“回收站”的逻辑容器中保存,直到用户决定永久删除他们或存储该表的表空间或存储空间不足时,表才真正被删除,为了使用数据库的闪回删除技术,必须开启数据库的“回收站”

启动“回收站”将参数RECYCLEBIN设置为ON,在默认情况下“回收站”已经启动

如果没有启动可以使用:

查看回收站。当执行DROP table 时,表及关联的对象被命名后保存在“回收站”中,可以通过查询USER_RECYCLEBIN DBA_RECYCLEBIN视图获得被删除的表及其关联对象。

通过USER_RECYCLEBIN查看被删除的表

不支持sys用户和system用户,这两个用户下的表被删除之后,无法从回收站里拿到,查询时为“空”

如果删除表的时候使用了PURGE短语,则表及其关联对象呗直接释放,空间被回收,相关信息不会进入“回收站”中

清空回收站,由于被删除的表级其关联对象信息保存在“回收站”中,其存储空间并没有释放,因此需要定期清空“回收站”。或清除“回收站”中没有用的对象(表,索引,表空间)释放其所占用的磁盘空间

语法如下:

PURGE [TABLE 表名 | INDEX index]

[RECYCLEBIN | DBA_RECYCLEBIN] | [TABLESPACEtablespace [USER user]]

参数说明:

TABLE:从回收站中清除指定的表

INDEX:从回收站中清除指定的索引,并回收其磁盘空间

RECYCLEBIN:清空用户“回收站”,并回收所有对象的磁盘空间

DBA_RECYCLEBIN:清空整个数据库系统的“回收站”,只有具有SYSDBA权限的用户才可以使用

TABLESPACE :清除“回收站”中指定额表空间,并回收磁盘空间

USER:清除回收站中指定表空间中特定用户的对象,并回收磁盘空间

闪回删除操作,闪回删除的基本语法

FLASHBACK TABLE [schema.]table to BEFOREDROP [RENAME TO table]

闪回删除

闪回删除举例说明:



需要注意:只有本地管理的,非系统表空间中的表可以使用闪回删除操作。

闪回查询
允许根据时间点timestamp或SCN查看就的数据,除了可以查看旧数据,需要时可以通过检索旧数据来撤销错误的更改。

使用SCOTT用户登录,对EMP表基于AS of TIMESTAMP的闪回查询

SQL> show user;

USER is "SCOTT"

更新员工号为7900的工资,更新为2000,并提交事物

更新员工号为7900的工资,更新两次,提交事物。

更新员工号为7900的工资,更新为3500,并提交事物

查看7900号员工的更新后工资。

查询7900号员工前一个小时的工资是多少

查询第一个事物提交,第二个事物还没有提交时7900员工的工资

查询第二个事物提交,第三个事物还没有提交时的7900号员工的工资

如果需要,可以将数据恢复到过去某个时刻的状态。

如果对此有兴趣,请扫下面二维码免费获取更多详情

原文地址:http://blog.51cto.com/11233498/2129265

时间: 2024-10-09 20:05:57

Oracle 11g R2 闪回技术的相关文章

Oracle 11g R2 Rman、数据泵、闪回备份与恢复

Oracle 11g R2 Rman备份备份与恢复的定义及分类 备份的定义及分类: 备份就是把数据库复制到转储设备的过程.其中,转储设备是指用于放置数据库副本的磁带或磁盘.通常也将存放于转储设备中的数据库的副本称为原数据库的备份或转储.备份是一份数据副本,从不同的角度分类如下: 从物理与逻辑的角度来分类: 从物理与逻辑的,备份可以分为物理备份和逻辑备份. 物理备份:对数据库操作系统的物理文件(数据文件,控制文件和日志文件)的备份.物理备份又可以分为脱机备份(冷备份)和联机备份(热备份),前者是在

Oracle 六大闪回技术,flashback

Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数. 要使用flashback 的特性,必须启用自动撤销管理表空间. 在Oracle 11g里又出了一个新特性:Oracle Flashback Data Archive. FDA通过将变化数据另外存储到创建的闪回归档区(Flashback Archive)中,以和undo区别开来, 这样就可以为闪回归档区单独设置存储策略,使之可以闪回到指定时间之前的旧数据而不影响undo策略. 在Or

Oracle 11g R2 备份与恢复

Oracle 11g R2 Rman备份 1. 备份与恢复的定义及分类 备份的定义及分类: 备份就是把数据库复制到转储设备的过程.其中,转储设备是指用于放置数据库副本的磁带或磁盘.通常也将存放于转储设备中的数据库的副本称为原数据库的备份或转储.备份是一份数据副本,从不同的角度分类如下: 从物理与逻辑的角度来分类: 从物理与逻辑的,备份可以分为物理备份和逻辑备份. 物理备份:对数据库操作系统的物理文件(数据文件,控制文件和日志文件)的备份.物理备份又可以分为脱机备份(冷备份)和联机备份(热备份),

Oracle闪回技术(Flashback)

闪回技术有闪回表.闪回删除.闪回查询.闪回事务查询.闪回事务.闪回数据库.闪回数据归档.其中,闪回查询.闪回事务查询用来“观察”过去:闪回数据归档并不是一个独立的功能,其功能是扩展闪回查询的时间窗口:闪回表.闪回删表能够以表为单位“回到”过去:闪回事务能够以事务为单位“回到”过去:闪回数据库能够以数据库为单位“回到”过去. 一. 闪回表(Flashback Table) 闪回表是利用UNDO表空间的撤销数据,所以能把表闪回到多久之前受到undo_retention,UNDO表空间的数据文件是否启

Oracle闪回技术详解

概述: 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速恢复逻辑错误,对于物理损坏或是介质丢失的错误,闪回技术就回天乏术了,还是得借助于Oracle一些高级的备份恢复工具如RAMN去完成(这才是Oracle强大备份恢复机制的精髓所在啊)  撤销段(UNDO SEGMENT) 在讲闪回技术前,需要先了解Oracle中一个逻辑结构--撤销段.因为大部分闪回技术

Oracle闪回技术--更新ing

Oracle10g中引入了闪回技术,但这并不意味着所有的表都能闪回成功,当没有足够的磁盘空间,Oracle将使用回收站中的磁盘空间,而且位图连接索引和引用完整性约束也不受回收站的保护. recyclebin参数的设置 show parameter bin --展示是否使用了闪回技术,默认是使用闪回技术的alter session set recyclebin=off; --在session级别修改alter system set recyclebin=off DEFERRED; --不加DEFE

Oracle的闪回技术--闪回错误的DML操作

提交DML操作后,该操作使用的还原段就可以被其它对象使用了,为了保证闪回操作时这些数据仍然被保存在还原段中,可能需要重新设置undo_retention参数,表示一个事务提交后,该事务的数据必须保存在还原段中的时间:但是这也并不能完全保证指定的时间的数据一定能够被恢复,还原表空间没有足够的时间时,仍会覆盖要求保留的磁盘空间. 查看undo_retention的当前值: SQL> show parameter undo_retention NAME TYPE VALUE -------------

【读书笔记】oracle闪回技术

1.闪回技术有三种,分别是闪回数据库.闪回查询.闪回删除. 闪回数据库是把数据库恢复到某一个时间点:闪回查询是查询表的历史记录:闪回删除是把drop掉的表还原回来(表存在于recyclebin中). 2.三种闪回技术的限制: 闪回数据库受闪回日志大小的限制: 闪回查询受撤销保留时间限制: 闪回删除受表可用空间限制: 但可以通过配置Flashback Data Archive来无限期地存储行的前映像.(如何对表启用?) 3.闪回数据库的配置: 1)确保数据库处于归档模式中,如果不是归档模式则要进行

Oracle Linux 6.3下安装Oracle 11g R2(11.2.0.3)

本文主要描述了在Oracle Linux 6.3下安装Oracle 11gR2(11.2.0.3).从Oracle 11g开始,Oracle官方网站不再提供其Patch的下载链接,需要使用Meatlink账户才可以进行下载.童鞋们不要着急,没有Metalink账户的也可以自己百度一下,网上有很多下载链接,迅雷就可以搞定了.Oracle 11.2.0.3整合为7个zip压缩包,如果仅仅是安装Oracle Database,下载1至2.zip包即可.下面是其安装步骤. 一.准备安装环境1.安装rpm