oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!

一、闪回技术的介绍
闪回技术是为了使Oracle数据库从任何逻辑误操作中迅速地恢复。该技术首先以闪回查询 (Flashback Query)出现在Oracle 9i版本中,后来Oracle在10g中对该技术进行了全面扩展,提供了闪回数据库、闪回删除、闪回表、闪回事物及闪回版本查询等功能,在11g 中,Oracle继续对该技术进行改进和增强,增加了闪回数据归档功能。

二、闪回技术的使用
2.1 闪回数据库
闪回数据库要确保在mount模式下进行闪回,开启闪回需要在归档模式下开启。
·查询是否开启了闪回
在这里插入图片描述
·查看是否处于归档模式
在这里插入图片描述
·这里需要注意的是,在我们设置闪回区域的时候,需先设置闪回区域大小,不然会报如下错误:

·设置闪回区域大小和闪回区域位置

oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第1张图片
在这里插入图片描述
·设置闪回数据库的数据保留周期(设置为一天,以分钟为单位)

在这里插入图片描述
·启用闪回日志
在这里插入图片描述

·查询是否成功启用闪回恢复区
在这里插入图片描述
·查询是否成功使用闪回数据库:select flashback_on from v$database;

在这里插入图片描述

·先查看数据库当前SCN:select current_scn from v$database;
在这里插入图片描述

·建一张表,插入一条数据,以作对比:

oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第2张图片
·开始使用闪回数据库恢复

oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第3张图片
oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第4张图片
再查询时,发现已经没有这张表了。

2.2 闪回表
闪回表有个特性就是无法作用于SYS用户的对象
·先新建一个用户
在这里插入图片描述
·先建一张新表:

oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第5张图片
在这里插入图片描述
·然后在里面插入三条数据:
oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第6张图片

·查询当前SCN号(查之前要给用户查询视图的权限):

在这里插入图片描述
在这里插入图片描述
·更新一行数据:
oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第7张图片
·查询数据库当前时间:

oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第8张图片

·删除一行数据:
oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第9张图片

·在恢复至某一时刻时,需要将表的 ROW MOVEMENT特性开启,否则如下报错:

oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第10张图片
·开启qqi的ROW MOVEMENT特性:

在这里插入图片描述
·将表闪回至删除id=3的记录之前的时间段:

oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第11张图片

·将表闪回至SCN=975638的状态:
oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第12张图片
2.3闪回删除
闪回删除的原理类似于Windows中的回收站,在我们将文件(表)删除时,并不会直接删除,而是先将表扔至回收站中,除非是用户想真正给删了或者存储该表的表空间空间不足时,才会真正删除。因此要想使用闪回删除技术,就要先确保回收站的状态是启动的。与闪回表一样,闪回删除不能在SYS用户中使用,此用户下删除表在回收站中是找不到的。
·查询回收站是否启动(默认启动):
在这里插入图片描述
若是未启动则可以通过alter system set recyclebin=on deferred;
·删除表qqi:

oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第13张图片
·在回收站中查询:

oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第14张图片

·闪回删除:
oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第15张图片

2.4闪回查询

闪回查询能够根据timestamp和scn来查看数据更改之前的数据。
·查询id=3的用户的信息:
在这里插入图片描述
·更新id=3的用户的信息:
oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第16张图片

·查询一分钟前id=3的用户的信息:
oracle闪回技术使用+简介(干货满满哦),也该闪回了,两级反转!_第17张图片
三、闪回技术的限制
1.数据文件损坏或丢失等介质故障不能使用闪回数据库进行恢复。闪回数据库只能基于当前正常运行的数据文件

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

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

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

你可能感兴趣的:(数据库,oracle)