Oracle数据库备份与恢复

数据库备份与恢复是数据库管理员必须掌握的。没有任何系统能免遭硬盘物理损坏、粗心用户的错误操作、或一些可能会威胁到存储数据的潜在灾难的侵袭。为了能够最大限度地恢复数据库数据,保证数据库的安全运行,应该选择最合理的备份方法来防止各种故障所导致的用户数据丢失,本次主要介绍三种备份恢复技术,即RMAN技术、数据泵技术及闪回技术。

备份的定义及分类

1.png

恢复的定义及分类

恢复就是发生故障后,利用已备份的数据或控制文件,重新建立一个完整的数据库。恢复分为以下两种类型。

1)实例恢复:当oracle实例出现失败后,oracle自动进行的恢复。

2)介质恢复:当存放数据库的介质出现故障时所做的恢复。介质恢复又分为完全恢复和不完全恢复。

完全恢复:将数据库恢复到数据库失败时的状态。这种恢复是通过装载数据库备份,并用全部的重做日志做到的。

不完全恢复:将数据库恢复到数据库失败前的某一时刻的状态。这种恢复是通过装载数据库备份并应用部分的重做日志做到的。进行不完全恢复后,必须在启动数据库时用resetlogs选型重设联机重做日志

一、使用RMAN工具

扫描二维码关注公众号,回复: 42564 查看本文章

RMANrecovery  manager)是oracle的一个重要工具,用于备份和恢复数据库文件、归档日志和控制文件。也可以用来执行完全或不完全的数据库恢复。RMAN3种不同的用户接口:命令行方式,GUI方式(集成在OEM中的备份管理器)、api方式(用于集成到第三方的备份软件中)。它具有如下优点:

1)支持在线热备份

2)支持多级增量备份

3)支持并行备份、恢复

4)减少所需要的备份量

5)备份、恢复使用简单

RMAN有丰富的特性集。随着oracle新版本的发布,RMAN特性也不断增强,使得RMAN几乎在任何情况下都可以备份和恢复数据库。其中很多的新特性都是针对日常工作中所遇到的问题和困难开发的。

1.RMAN组件

2.png

1)target database(目标数据库)

目标数据库就是需要RMAN对其进行备份与恢复的数据库。RMAN可以备份数据文件、控制文件、归档日志文件、spfile 

2)server  session(服务器会话)

RMAN启动数据库上的oracle服务器进程,并建立一个与目标数据库的会话。由目标数据库上的服务器进程进行备份、还原、恢复的实际操作。

3RMAN repositoryRMAN资料库)

RMAN使用过程中会用到的控制信息,是一些关于备份、归档日志及RMAN活动的元数据。

4recovery  catalog(恢复目录)

恢复目录是建立在RMAN恢复目录数据库上的一种schema对象,用于保存RMAN资料库数据。

恢复目录是一个可选的组件。RMAN会将资料库数据记录在目标数据库的控制文件中,但这样不够安全,因为一旦目标数据库的控制文件损坏就意味着所有的RMAN备份失效。所以建议在单独的一个数据中建立恢复目录另外保存一份资料库数据。

对于

对于大部分中等环境的企业环境,将RMAN备份信息存储在恢复目录数据库中,而不是存储在目标数据库的控制文件中,这样能够发挥RMAN工具的全部功能,此外,RMAN的很多高级功能也只有在创建了恢复目录的环境下才被支持。

5)MML(媒体管理库)

MMLmedia management layer)是第三方工具或软件,用于管理对磁带的读写与文件的跟踪管理,如果你要想直接通过RMAN备份到磁带上,就必须配置媒体管理层,媒体管理层的工具和RMAN共同完成备份与恢复。 

6)快闪恢复区

快闪恢复区是oracle数据库用于保存所有与恢复相关的文件的默认磁盘位置。这些相关文件包括归档日志、RMAN备份、控制文件自动备份、复用的控制文件和重做日志副本及闪回日志文件。

7)辅助数据库

在正常使用时,RMAN会与目标数据库一起使用,如果创建了恢复目录数据库,那么也会与恢复目录数据库一起使用。在某些情况下,希望创建辅助数据库,辅助数据库是使用RMAN从目标数据库的备份中创建新的数据库。辅助数据库能被创建作为备用数据库使用。在产品数据库发生灾难时,能够在不丢失任何数据及停机时间最短的情况下切换至备用数据库。

2.创建恢复目录

恢复目录存在于RMAN的目录数据库中,类似于标准的数据库目录,主要包含如下几个部分的信息。

1)备份和恢复信息,可以是多个目标数据库

2)RMAN脚本,可以存储供重复使用

3)关于数据文件和日志文件的本分信息

4)关于目标数据库的表空间和数据文件的信

3.png

创建恢复目录数据库

4.png

在恢复目录数据库中创建RMAN用户并授权

5.png

6.png

在恢复目录数据库中创建恢复目录

7.png

3.注册目标数据库到恢复目录

登录目标数据库,如果要对目标数据库进行注册,可以按照以下操作

8.png

至此,完成了目标数据库在恢复目录中的注册操作,此时就可以使用RMAN的恢复目录对目标数据库进行备份和恢复操作。

4.通道分配

使用RMAN进行备份和恢复操作时,必须进行通道的分配,一个通道是RMAN和目标数据库之间的一个连接,通道指定了某种类型的设备用于备份和恢复,RMAN可以使用的通道设备包括磁盘与磁带两种。

(1)自动通道配置

使用CONFIGURE命令配置自动通道

语法格式如下:

CONFIGURE  DEVICE  TYPE  sbt/disk  PARALLELISM  n;   指定自动通道并行个数

CONFIGURE  DEFAULT  DEVICE  TYPE  TO  sbt/disk;     指定自动通道的默认设备

在语法中:

sbt/disk:磁带/磁盘

n:设置自动通道的个数


例如:指定RMAN可以打开5个磁盘通道

9.png

10.png

(2)手动通道配置

在RUN块中使用ALLOCATE  CHANNEL手动分配通道

语法格式如下:

RUN

{

   ALLOCATE  CHANNEL 通道名称  DEVICE  TYPE  设备类型;

   ......

}


例如:指定3个磁盘通道,分别是ch1ch2ch3

11.png

(3)显示通道配置参数

使用SHOW ALL命令可以显示已经配置过的和有默认值的参数,其中包括通道参数

12.png

5.备份与恢复的相关概念与操作

1)备份集与备份片

备份集:备份集是第一次备份的集合,它包含本次备份的所有备份片,以oracle专有的格式保存,是一个逻辑数据的集合。

备份片:一个备份集由若干个备份片组成,每个备份片是一个单独的输出文件,一个备份片的大小是有限制的,它的大小不能大于文件系统所支持的文件长度的最大值。

(2)配置备份集文件的格式

使用BACKUP命令进行备份时,需要明确备份文件的存储路径及文件名称格式。其路径和格式可以使用FORMAT参数进行统一设置。FORMAT格式由两部分组合,即存储路径和文件名称。

如果没有使用FORMAT指定存储路径和文件名称格式,则默认情况下BACKUP所产生的备份集将存储在快闪恢复区中,RMAN自动使用%U来确保文件名称不会重复。

   FORMAT命令格式如下:

    FORMAT ‘格式字符串’

其中格式字符串的文件名称部分可以使用替换变量,例如:FORMAT  ‘/backup/rmanback/%U’

常用的替换变量如下:

%c:备份片的拷贝数

%d:数据库名称

%D:位于该月中的第几天(DD

%M:位于该年中的第几月(MM

%F:一个基于DBID的唯一的名称,它的形式为C-||||||-YYYYMMDD-QQ。其中||||||为该数据库的DBIDYYYYMMDD为日期,QQ是一个1-256的序列。

%n:数据库名称,向右填补到最大8个字符

%u:一个8个字符的名称,它是根据备份集个数与创建时间信息成成的。

%p:该备份集的备份片号,从1开始到创建的文件数

%U:系统生成的一个唯一文件名,对于备份片来说,它的含义相当于%u_%p_%c

%s:备份集的号

%t:备份集时间戳

%T:年月日格式(YYYYMMDD

(3备份与恢复命令

① BACKUP命令用于备份数据库文件,可以将多个文件、表空间,整个数据库以备份集形式备份到磁盘或磁带上。在RUN命令外使用BACKUP命令,会自动使用自动通道;在RUN命令内使用BACKUP命令,如果定义了手动通道,则优先使用手动定义通道。

② 使用RMAN备份的数据库也只能使用RMAN提供的恢复命令进行恢复。RMAN的恢复目录中存储了目标数据库的备份信息。RMAN根据恢复目录中存储的信息,自动将数据库同步恢复到某一个数据一致的状态。

RMAN恢复数据库时用到两个命令,即RESTORERECOVERRESOTRE命令将备份数据恢复到指定的目录,RECOVER命令对数据库实施同步恢复。

n  RESOTRE命令:由于备份集中的备份片是以专有的RMAN格式存储的,需要使用RESTORE命令进行重建,重建的结果是自动产生目标数据库的物理文件结构。

n  RECOVER命令:负责把归档日志文件用于重建的数据文件,来完成数据库的同步恢复。在执行RECOVER命令时,RMAN需要读取归档日志,如果没有归档日志,或者数据库运行在非归档模式下,则恢复过程会报错。



案例:在归档方式下备份与恢复

要用RMAN进行联机备份操作。数据库就必须位于归档模式。恢复目录必须打开,目标数据库进程必须启动,数据库已经加载或者打开。

  1. 备份和恢复整个数据库
    查看当前数据模式为非归档模式

13.png

修改模式为归档模式

14.png

备份和恢复整个数据库,自动分配通道,FORMAT默认使用%U,备份集存储在数据库快闪恢复区内,备份文件包括数据文件,控制文件,重做日志文件和参数文件。

15.png

查看快闪恢复区,发现备份成功了

16.png

如果还要包含归档日志文件,则要加上plus archivelog关键字,delete input的意思是在备份完成后,删除archivelog文件。

17.png

通过自动分配通道,通过FORMAT制定具体的路径和格式

18.png


19.png

也可以手动分配通道,备份数据库

20.png

恢复整个数据库(数据库要在mount状态下执行)

21.png

删除system01.dbf

22.png

再次开启数据库实例

23.png

此时数据库无法启动了,因为删除了system01.dbf


使用sys连接RMAN,重建数据库物理文件

24.png

同步恢复

25.png

打开数据库

26.png

27.png

system01.dbf表空间已经被恢复了

28.png

2.备份和恢复表空间

表空间备份

29.png

多个表空间备份

30.png

如果只丢失了特定的表空间的数据文件,那么可以选择只恢复这个表空间,而不是恢复整个数据库,表空间恢复可以在不关闭数据库的情况下进行,只需要将需要恢复的表空间offline

模拟删除表空间

32.png 

恢复表空间

33.png 

查看表空间文件已经恢复了

34.png

(3)数据文件的备份与恢复

查看数据文件

35.png

备份数据文件users01.dbf(备份和恢复的时候可以指定文件号,也可以指定文件名)

36.png

查看数据文件

37.png

删除数据文件user01.dbf

38.png

对数据文件或表空间做恢复的时候数据文件和表空间一定要处于offline状态, 数据文件丢失了,但数据库实例还可以用

39.png

此时数据文件4的状态为recover

116.png

恢复数据文件

40.png

41.png

将数据文件datafile 4处于online状态

42.png

查看数据文件的状态,已经变成online状态了

117.png

二、使用数据泵技术实现逻辑备份

逻辑备份是创建数据库对象的逻辑副本,并存入一个二进制转储文件的过程。从本质上说,逻辑备份与恢复实际就是对数据库实施数据的导入和导出。

导出:

导出即数据库的逻辑备份,实质是读取一个数据库集并将这个数据集写入一个文件(扩展名通常是dmp),这些记录的导出与物理位置无关。

导入:

导入及数据库的逻辑恢复,实质是读取被导出的二进制转储文件并将其恢复到数据库

1.使用数据泵技术导入/导出

数据泵(data pump)是一种在数据库之间或在数据库与操作系统之前高速传输的技术。数据泵工具运行在服务器上,数据库管理员需要指定数据库目录来保存转储的数据

  

基于命令行的数据泵导出步骤如下

(1)连接Oracle数据库

(2)创建一个操作目录

43.png

47.png

(3)授予用户操作dump_dir目录的权限

44.png

(4)创建测试用户yyy并授权

46.png

5)导出scott用户下的表

使用expdp命令导入数据(可以按照表导出,按照用户模式导出,按照表空间导出和全库导出),使用impdp命令导入数据(可以按照表导入,按照用户模式导入,按照表空间导入和全库导入)

48.png

(6)删除emp

49.png

(7)导入emp

50.png

(8)查看emp表已经还原

51.png

(9)将导出的scott用户下的deptemp表导入yyy用户下

52.png

使用yyy用户登录查看表

53.png

(10)导出scott用户模式

54.png

(11)导入scott用户模式

55.png

(12)scott中所有的对象导入yyy

56.png

查看yyy用户的表,发现多了很多

57.png

(13)导出表空间

导出yyy表空间(提前创建一个yyy表空间)


58.png

在表空间yyy创建一个表ccc

59.png

导出表空间

60.png

(14)导入表空间

导入之前删除表空间,相关的表也会删除

61.png

导入表空间之前,需要创建一个yyy表空间

62.png

导入表空间

63.png

查看表已经恢复回来了

64.png

(15)导出整个数据库

65.png

(16)导入整个数据库

66.png

三、使用闪回技术

1.闪回技术概述

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

闪回技术包括以下各项:

1)闪回查询(flashback query):查询过去某个时间点或某个SCNsystem  change  number,系统更改号)值时表中的数据信息。

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

3)闪回事务查询(flashback  transaction query):查看某个事务或所有事务在过去一段时间对数据进行的修改。

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

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

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

118.png

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

注意:

闪回数据库是基于闪回恢复区(Flash Recovery Area)特性实现的,如果要使用闪回数据库技术,还需要启用闪回恢复区

闪回删除是基于回收站(Recycle Bin)特性实现的,如果要使用闪回删除技术,还需要启用回收站

闪回查询、闪回版本查询、闪回事务查询以及闪回表主要是基于撤销表空间中的回滚信息实现的

2.闪回恢复区

1)闪回恢复区的含义

Oracle推荐指定一个闪回恢复区(flash recovery  area)作为存放备份与恢复相关文件的默认位置,这样oracle就可以实现自动的基于磁盘的备份与恢复(automatic  disk-based backup and recovery)。那么,什么是闪回恢复区?简单地说,闪回恢复区是一块用以存储恢复相关的文件的存储空间,允许用户集中存储所有恢复相关的文件。如下集中文件可以放到闪回恢复区中。

控制文件

归档的日志文件

闪回日志

控制文件和SPFILE自动备份

RMAN备份集

数据文件拷贝

2)闪回恢复区的优点

闪回恢复区提供了一个集中化的存储区域,很大程度上减少了管理开销,这是其最主要的优点,另外,与RMAN结合使用可以进行快速恢复。

3)设置闪回恢复区

如果使用dbca创建的数据库,在安装时可以设定闪回恢复区的位置及大小。

119.png

闪回恢复区主要通过以下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清空之后才可以清空。

4)设置闪回数据库

设置可闪回恢复区之后,要启用闪回数据库的功能,还需要进一步配置。数据库必须已经处于归档模式,再设置闪回数据库。

设置闪回数据库的步骤如下:

(1)启用归档模式。闪回数据库只能处于归档模式

  SQL> shutdown immediate;

 SQL> startup mount;

 SQL> alter database archivelog;

数据库未设置闪回数据库

67.png

(2)建立闪回区,设置闪回数据库的数据保留周期为一天,以min为单位

68.png

(3)启用闪回日志

69.png

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

70.png

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

71.png

5)取消闪回恢复区

将db_recovery_file_dest参数设置为空,可以停用闪回恢复区,但是,如果已经启用闪回数据库,则不能取消闪回恢复区,所以必须先禁用闪回数据库,才能取消闪回恢复区

步骤如下;

(1)关闭数据库

SQL> shutdown immediate;

(2)装载数据库

SQL> startup mount;

(3)关闭数据库闪回

SQL> alter database flashback off;

(4)打开数据库

SQL> alter database open;

(5)修改闪回参数

SQL> alter system set db_recovery_file_dest='';

3.闪回错误操作技术

1、闪回数据库

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

 作用类似于数据库的倒带按钮。

   可以在用户造成了逻辑数据损坏的情况下使用

120.png

1)闪回数据库语法格式

FLASHBACK  DATABASE [database] TO

[SCN | TIMESTAMP expression]|

[BEFORE SCN | TIMESTAMP expression]

参数说明

n  TO SCN:将数据库恢复到指定SCN的状态

n  TO TIMESTAMP:将数据库恢复到指定的时间点

n  TO BEFORE SCN:将数据库恢复到指定SCN的前一个SCN状态

n  TO BEFORE TIMESTAMP:将数据库恢复到指定时间点前的状态

2)闪回数据库操作的限制:

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

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

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

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

案例:使用SCN闪回数据库

1)查询数据库当前的SCN

73.png

2)改变数据库的当前状态,模拟创建表bxjg,并插入一条数据。

74.png

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

75.png

76.png

4)用RESETLOGS选项打开数据库,并验证数据库的状态(bxjg表应该不存在)

77.png

5)可以通过查询数据字典视图v$flashback_database_log来获得能够闪回的最早的scn号,及闪回时值最早不能小于该值。同理,如果通过时间点闪回,则闪回时间也不能小于查询得到的最早时间。

设置显示时间格式

78.png

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

79.png

6)按照指定时间闪回数据库

首先查询数据系统当前时间

80.png

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

81.png

82.png

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

83.png


84.png

使用RESETLOGS打开数据库

85.png

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

86.png

2.闪回表

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

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

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

n  用户具有flashback  any table系统权限,或者具有所操作表的flashback对象权限。

n  用户具有所操作表的selectinsertdeletealter对象权限

n  启动被操作表的row movement特性,可以采用下列方式进行。

          SQL> Alter  table 表名  enable  row  movement

(2)闪回表操作的基本语法为

FLASHBACK TABLE [schema.]table TO

SCN|TIMESTAMP expression

[ENABLE|DISABLE TRIGGERS]

参数说明

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

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

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

注意:SYS用户或以AS SYSDBA身份登录的用户不能执行闪回表操作


案例:使用SCN闪回表

1)使用scott用户登录,创建一个表,并插入数据,并提交

87.png

88.png

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

89.png


90.png


91.png

3)更新数据(把id=1的名字改成batianhu,删除id=3的数据),并且提交

92.png

4)启动test3表的ROW MOVEMENT特性

93.png

5)将test3表恢复到2018-04-08  14:44:00,并查询

94.png

6)将表test3恢复到scn为的状态1133309

95.png


3.闪回删除

闪回删除可以恢复使用drop  table语句删除的表,是一种对意外删除的表的恢复机制。

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

121.png

(1)启动回收站,将参数recyclebin设置为ON,在默认情况下“回收站”已启动

96.png

(2)查看“回收站”。当执行drop table操作时,表及其关联对象被命名后保存在“回收站”中,可以通过查询user_recyclebindba_recyclebin视图获得被删除的表及其关联对象信息。

97.png


98.png

99.png

注意:不支持sys用户,system表空间下的对象也不能从回收站里拿到,故使用sys或者system用户登录时,查询为空

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

建立表,并且使用purge短语删除

100.png

查看在回收站里面没有

4)清空回收站

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

语法如下:

PURGE [TABLE 表名 | INDEX index]

[RECYCLEBIN | DBA_RECYCLEBIN] | [TABLESPACE tablespace [USER user]]

参数说明:

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

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

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

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

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

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

101.png

5)闪回删除操作

FLASHBACK TABLE [schema.]table TO BEFORE DROP [RENAME TO table]

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


案例:闪回删除示例

新建表,插入数据并提交

102.png

删除表

103.png



闪回表

104.png


105.png

或者闪回表之后重新命名

106.png


107.png

4、闪回查询技术

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

基本语法如下:

Select column_name[,...]

From table_name

[as of scn | timestamp expression]

[Where condition]

参数说明:

As for timestamp:基于时间的闪回查询

As of scn:基于scn的闪回查询


案例:闪回查询实例

1)使用scott用户登录,对emp表基于as of timestamp的闪回查询

108.png

2)更新员工号为7844的工资,更新为2000,并提交事物

109.png

3)再次更新员工号为7844的工资,更新两次,提交事物

110.png

4)再次更新员工号为7844的工资,更新为3500,并提交事物

111.png

5)查询7844号员工的当前工资

112.png

6)查询7844号员工前一个小时的工

113.png

7)查询第一个事务提交,第二个事物还没有提交时7844号员工的工资

114.png

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

115.png

猜你喜欢

转载自blog.51cto.com/13555753/2106506