博主QQ:819594300sql
博客地址:http://zpf666.blog.51cto.com/数据库
有什么疑问的朋友能够联系博主,博主会帮大家解答,谢谢支持!windows
数据库备份与恢复是数据库管理员必须掌握的。没有任何系统能免遭硬盘物理损坏、粗心用户的错误操做、或一些可能会威胁到存储数据的潜在灾难的侵袭。为了可以最大限度地恢复数据库数据,保证数据库的安全运行,应该选择最合理的备份方法来防止各类故障所致使的用户数据丢失,本次主要介绍三种备份恢复技术,即RMAN技术、数据泵技术及闪回技术。api
1、备份与恢复概述安全
1、须要备份的缘由服务器
现实工做中有不少状况均可能形成数据丢失,形成数据丢失的主要因素以下。网络
介质故障:磁盘损坏、磁头碰撞,瞬时强磁场干扰session
用户的错误操做oracle
服务器的完全崩溃ide
计算机病毒
不可预料的因素:天然灾害、电源故障、盗窃
上面是一些可能的故障缘由,根据缘由能够将oracle中的故障分为如下4种类型。
1)语句故障
语句故障时在执行sql语句过程当中发生的逻辑故障。例如:向表中插入违反约束的无效数据,或者表空间没有空间了致使没法插入数据等。这时,应用人员或者DBA根据状况进行相应处理及可。
2)用户进程故障
当用户程序出错而没法访问oracle数据库时,就会发生用户进程故障,缘由是异常断开链接或终止进程,若是网络不通,客户端计算机之外从新启动,这些故障会致使用户进程与服务器的链接意外终止。
用户进程故障只会致使当前用户没法正常操做数据库,但不会影响其余用户进程。当用户进程出现故障时,进程监控程序(PMON)会自动执行进程恢复。PMON是oracle的后台进程,用于检测与用户进程失去链接的服务器进程。PMON会经过回滚事务来处理故障,还将释放进程当前占用的资源。
3)实例故障
当oracle的数据库实例因为硬件故障或软件问题而没法继续运行时,就会发生实例故障。硬件问题包括意外断电,而软件问题多是服务器操做系统崩溃。
当从新启动数据库时,若是发现实例故障,oracle会自动完成实例恢复。实例恢复将数据库恢复到与故障以前的事务一致的状态,oracle会自动回滚未提交的数据。
4)介质故障
介质故障是当一个数据库文件、文件的部分或磁盘不能读或不能写时出现的故障。例如:硬盘磁头损坏会致使而数据库文件彻底损坏。要修复因为介质故障引发的数据库文件损坏,须要使用介质恢复。
2、备份与恢复的定义及分类
1、备份的定义及分类
备份就是把数据库复制到转储设备的过程。其中转储设备是指用于放置数据库副本的磁带或磁盘。从不一样的角度分类以下:
1)从物理与逻辑角度分类
从物理与逻辑角度分,备份能够分为物理备份和逻辑备份。
① 物理备份:
对数据库操做系统的物理文件(如数据文件、控制文件和日志文件)的备份。物理备份又能够分为脱机备份(冷备份)和联机备份(热备份),前者是在关闭数据库的时候进行的,后者对正以归档日志方式运行的数据库进行备份。可使用oracle的恢复管理器(RMAN)或操做系统命令进行数据库的物理备份。
② 逻辑备份:
对数据库逻辑组件(如表和存储过程等数据库对象)的备份。逻辑备份的手段不少,如传统的EXP、数据泵EXPDP、数据库闪回技术及第三方工具,均可以进行数据库的逻辑备份。
2)从数据库的备份策略角度分类
① 彻底备份:
每次对数据进行完整的备份。当发生数据丢失的灾难状况时,彻底备份无须依赖其余信息,便可实现100%数据恢复,其恢复时间最短且操做最方便。
② 增量备份:
只有那些在上次彻底备份或者增量备份后被修改的文件才会备份。优势是备份数据量小,须要的时间短,缺点是恢复的时候须要依赖以前的备份记录,出问题的风险较大。
③ 差别备份:
备份那些自从上次彻底备份以后被修改过的文件。从差别备份中恢复数据库时间较短,所以只须要两份数据(最后一次彻底备份和最后一次差别备份),缺点是每次备份须要的时间较长。
2、恢复的定义及分类
恢复就是发生故障后,利用已备份的数据或控制文件,从新创建一个完整的数据库。恢复分为如下两种类型。
1)实例恢复:当oracle实例出现失败后,oracle自动进行的恢复。
2)介质恢复:当存放数据库的介质出现故障时所作的恢复。介质恢复又分为彻底恢复和不彻底恢复。
彻底恢复:将数据库恢复到数据库失败时的状态。这种恢复是经过装载数据库备份,并用所有的重作日志作到的。
不彻底恢复:将数据库恢复到数据库失败前的某一时刻的状态。这种恢复是经过装载数据库备份并应用部分的重作日志作到的。进行不彻底恢复后,必须在启动数据库时用resetlogs选型重设联机重作日志。
3、使用RMAN工具
RMAN(recovery manager)是oracle的一个重要工具,用于备份和恢复数据库文件、归档日志和控制文件。也能够用来执行彻底或不彻底的数据库恢复。RMAN有3种不一样的用户接口:命令行方式,GUI方式(集成在OEM中的备份管理器)、api方式(用于集成到第三方的备份软件中)。它具备以下优势:
1)支持在线热备份
2)支持多级增量备份
3)支持并行备份、恢复
4)减小所须要的备分量
5)备份、恢复使用简单
RMAN有丰富的特性集。随着oracle新版本的发布,RMAN特性也不断加强,使得RMAN几乎在任何状况下均可以备份和恢复数据库。其中不少的新特性都是针对平常工做中所遇到的问题和困难开发的。
1、RMAN组件
1)target database(目标数据库)
目标数据库就是须要RMAN对其进行备份与恢复的数据库。RMAN能够备份数据文件、控制文件、归档日志文件、spfile。
2)server session(服务器会话)
RMAN启动数据库上的oracle服务器进程,并创建一个与目标数据库的会话。由目标数据库上的服务器进程进行备份、还原、恢复的实际操做。
3)RMAN repository(RMAN资料库)
RMAN使用过程当中会用到的控制信息,是一些关于备份、归档日志及RMAN活动的元数据。
4)recovery catalog(恢复目录)
恢复目录是创建在RMAN恢复目录数据库上的一种schema对象,用于保存RMAN资料库数据。
恢复目录是一个可选的组件。RMAN会将资料库数据记录在目标数据库的控制文件中,但这样不够安全,由于一旦目标数据库的控制文件损坏就意味着全部的RMAN备份失效。因此建议在单独的一个数据中创建恢复目录另外保存一份资料库数据。
对于
对于大部分中等环境的企业环境,将RMAN备份信息存储在恢复目录数据库中,而不是存储在目标数据库的控制文件中,这样可以发挥RMAN工具的所有功能,此外,RMAN的不少高级功能也只有在建立了恢复目录的环境下才被支持。
5)MML(媒体管理库)
MML(media management layer)是第三方工具或软件,用于管理对磁带的读写与文件的跟踪管理,若是你要想直接经过RMAN备份到磁带上,就必须配置媒体管理层,媒体管理层的工具和RMAN共同完成备份与恢复。
6)快闪恢复区
快闪恢复区是oracle数据库用于保存全部与恢复相关的文件的默认磁盘位置。这些相关文件包括归档日志、RMAN备份、控制文件自动备份、复用的控制文件和重作日志副本及闪回日志文件。
7)辅助数据库
在正常使用时,RMAN会与目标数据库一块儿使用,若是建立了恢复目录数据库,那么也会与恢复目录数据库一块儿使用。在某些状况下,但愿建立辅助数据库,辅助数据库是使用RMAN从目标数据库的备份中建立新的数据库。辅助数据库能被建立做为备用数据库使用。在产品数据库发生灾难时,可以在不丢失任何数据及停机时间最短的状况下切换至备用数据库。
2、建立恢复目录
恢复目录存在于RMAN的目录数据库中,相似于标准的数据库目录,主要包含以下几个部分的信息:
1)备份和恢复信息,能够是多个目标数据库
2)RMAN脚本,能够存储供重复使用
3)关于数据文件和日志文件的本分信息
4)关于目标数据库的表空间和数据文件的信息
建立恢复目录
1)建立恢复目录数据库(在oracl数据库中建立恢复目录所用的表空间benet)
2)在恢复目录数据库中建立RMAN 用户并受权
3)在恢复目录数据库中建立恢复目录
3、注册目标数据库到恢复目录
登陆目标数据库,若是要对目标数据库进行注册,能够按照如下操做。
至此,完成了目标数据库在恢复目录中的注册操做,此时就可使用RMAN的恢复目录对目标数据库进行备份和恢复操做。
4、通道分配
使用RMAN进行备份和恢复操做时,必须进行通道的分配,一个通道是RMAN和目标数据库之间的一个链接,通道指定了某种类型的设备用于备份和恢复,RMAN可使用的通道设备包括磁盘与磁带两种。
1)自动通道配置
使用CONFIGURE命令配置自动通道。
2)还能够手动通道配置
3)显示通道配置参数
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。其中||||||为该数据库的DBID,YYYYMMDD为日期,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恢复数据库时用到两个命令,即RESTORE和RECOVER。RESOTRE命令将备份数据恢复到指定的目录,RECOVER命令对数据库实施同步恢复。
RESOTRE命令:因为备份集中的备份片是以专有的RMAN格式存储的,须要使用RESTORE命令进行重建,重建的结果是自动产生目标数据库的物理文件结构。
RECOVER命令:负责把归档日志文件用于重建的数据文件,来完成数据库的同步恢复。在执行RECOVER命令时,RMAN须要读取归档日志,若是没有归档日志,或者数据库运行在非归档模式下,则恢复过程会报错。
案例:在归档方式下备份与恢复
要用RMAN进行联机备份操做。数据库就必须位于归档模式。恢复目录必须打开,目标数据库进程必须启动,数据库已经加载或者打开。
1)备份和恢复整个数据库
备份和恢复整个数据库,自动分配通道,FORMAT默认使用%U,备份集存储在数据库快闪恢复区内,备份文件包括数据文件,控制文件,重作日志文件和参数文件。
查看快闪恢复区,发现备份成功了:
若是还要包含归档日志文件,则要加上plus archivelog关键字,delete input的意思是在备份完成后,删除archivelog(归档日志)文件。可是事实是咱们通常不会删除归档日志文件,因此咱们通常不加delete input。
下面的一种方法是咱们本身创存储备份集的目录,不在使用快闪恢复区:
经过自动分配通道,经过FORMAT制定具体的路径和格式
首先创建备份目录:
接着设置目录权限并备份
最后查看备份目录下是否有备份文件存在
固然也能够手动分配通道,备份数据库。
恢复整个数据库(数据库要在mount状态下执行)
删除system01.dbf
再次开启数据库实例
使用sys链接RMAN
打开数据库
能够看见system01.dbf表空间已经被恢复了
2)备份和恢复表空间
对表空间users作备份:
备份多个表空间:
在RUN命令中备份表空间
若是只丢失了特定的表空间的数据文件,那么能够选择只恢复这个表空间,而不是恢复整个数据库,表空间恢复能够在不关闭数据库的状况下进行,只须要将须要恢复的表空间offline。
如今模拟删除表空间
恢复表空间
查看表空间文件已经恢复了
3)数据文件的备份与恢复
查看数据文件
备份数据文件users01.dbf(备份和恢复的时候能够指定文件号,也能够指定文件名)
查看数据文件
删除数据文件user01.dbf
对数据文件或表空间作恢复的时候数据文件和表空间必定要处于offline状态, 数据文件丢失了,但数据库实例还能够用。
此时数据文件4的状态为recover
恢复数据文件
将数据文件datafile 4处于online状态
查看数据文件的状态,已经变成online状态了
或者使用run命令恢复,命令以下:
先删除user01.dbf
开始恢复:
查看文件已经恢复:
补充自动备份:
1)生成脚本文件,如backup.rcv
假定文件内容以下:
$>cat backup.rcv
connect target sys/password rcvcatrman/rman@localname;
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup fileaperset 3 format‘/u01/oradata/backup/arch%u_%s_%p’
archivelog all delete input;
release channel c1;
release channel c2;
release channel c3;
}
2)生成执行文件
在windows上生成backup_archive.bat,内容包括
rman cmdfile = backup.rcv
在unix下生成backup_archive.sh,内容包括
/oracle/ramn/rman cmdfile = backup.rcv
3)加入调度
在windows中用任务计划向导便可,或使用at命令。
在unix中,在目标机器上编写一个文件,用以启动自动备份进程。假定文件名为ORACLE,文件将放在/var/spool/cron/crontabs目录下
$>cat oracle
0 23 * * 0 backup_archive.sh
#表示星期天23点对数据库备份
0 12,18 * * * backup_archive.sh
#表示天天12点,18点备份
Crontab文件的每一行由六个域(minutes,hours,day ofmonth,month,day of week,command)组成,域之间用空格或Tab分隔开来。
2、使用数据泵技术实现逻辑备份
逻辑备份是建立数据库对象的逻辑副本,并存入一个二进制转储文件的过程。从本质上说,逻辑备份与恢复实际就是对数据库实施数据的导入和导出。
导出:
导出即数据库的逻辑备份,实质是读取一个数据库集并将这个数据集写入一个文件(扩展名一般是dmp),这些记录的导出与物理位置无关。
导入:
导入及数据库的逻辑恢复,实质是读取被导出的二进制转储文件并将其恢复到数据库。
1、使用数据泵技术导入/导出
数据泵(data pump)是一种在数据库之间或在数据库与操做系统以前高速传输的技术。数据泵工具运行在服务器上,数据库管理员须要指定数据库目录来保存转储的数据。
基于命令行的数据泵导出步骤以下
1)建立数据泵备份用的目录,并把属主和属组赋予给oracle用户
2)链接oracle数据库
3)建立一个操做目录
4)授予用户scott操做mulu目录的权限
5)查询目录是否创建好
6)建立测试用户zpf并受权
7)导出scott用户下的表
说明:使用expdp命令导出数据(能够按照表导出,按照用户模式导出,按照表空间导出和全库导出),使用impdp命令导入数据(能够按照表导入,按照用户模式导入,按照表空间导入和全库导入)。
8)删除emp表
9)导入emp表
10)查看emp表已经还原
11)将导出的scott用户下的dept和emp表导入zpf用户下
12)使用zpf用户登陆查看表
或者
13)导出scott用户模式
14)导入scott用户模式
15)将scott中全部的对象导入zpf中
16)查看zpf用户的表,发现scott的表所有出如今了用户zpf这里
17)导出表空间
导出benet表空间(提早建立一个benet表空间)
在表空间benet建立一个表bdqn
18)导入表空间
导入以前删除表空间,相关的表也会删除
导入表空间以前,须要建立一个benet表空间
开始导入表空间
查看表已经恢复回来了
19)导出整个数据库
20)导入整个数据库
3、使用闪回技术
1、闪回技术概述
为了使数据库可以从任何逻辑误操做中迅速恢复,oracle退出了闪回技术。采用该技术,能够对行级和事务级的数据变化进行恢复,减小了数据恢复的时间,并且操做简单,经过sql语句就能够实现数据的恢复,大大提升了数据库恢复的效率。闪回技术是数据库恢复技术历史上一次重大的进步,从根本上改变了数据恢复。
闪回技术包括如下各项:
1)闪回查询(flashback query):查询过去某个时间点或某个SCN(system change number,系统更改号)值时表中的数据信息。
2)闪回版本查询(flashback version query):查询过去某个时间段或某个SCN段内表中数据的变化状况。
3)闪回事务查询(flashback transaction query):查看某个事务或全部事务在过去一段时间对数据进行的修改。
4)闪回数据库(flashback database):将数据库恢复到过去某个时间点或某个SCN值时的状态。
5)闪回删除(flashback drop):将已经删除的表及相关联的对象恢复到删除前的状态。
6)闪回表(flashback table):将表恢复到过去的某个时间点或某个SCN值时的状态。
说明:SCN:scn是当Oracle数据库更新后,有dbms自动维护而累积递增的一个数字,能够经过查询数据字典v$database中的current_scn得到当前的SCN号。
2、闪回恢复区
1)闪回恢复区的含义
Oracle推荐指定一个闪回恢复区(flash recovery area)做为存放备份与恢复相关文件的默认位置,这样oracle就能够实现自动的基于磁盘的备份与恢复(automatic disk-based backup and recovery)。那么,什么是闪回恢复区?简单地说,闪回恢复区是一块用以存储恢复相关的文件的存储空间,容许用户集中存储全部恢复相关的文件。以下集中文件能够放到闪回恢复区中。
控制文件
归档的日志文件
闪回日志
控制文件和SPFILE自动备份
RMAN备份集
数据文件拷贝
2)闪回恢复区的优势
闪回恢复区提供了一个集中化的存储区域,很大程度上减小了管理开销,这是其最主要的优势,另外,与RMAN结合使用能够进行快速恢复。
3)设置闪回恢复区
若是使用dbca建立的数据库,在安装时能够设定闪回恢复区的位置及大小。
4)闪回恢复区主要经过如下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清空以后才能够清空。(即删除闪回恢复区的空间大小以前必须先删除闪回恢复区的位置)
5)设置闪回数据库
设置可闪回恢复区以后,要启用闪回数据库的功能,还须要进一步配置。数据库必须已经处于归档模式,再设置闪回数据库。
设置闪回数据库的步骤以下:
1)启用归档模式(闪回数据库只能处于归档模式)
2)数据库未设置闪回数据库
3)创建闪回区,容量大小为3G(其余都是固定写法,就容量大小能够更换)
设置闪回数据库的数据保留周期为一天以min为单位
启用闪回日志
查询是否成功启用闪回恢复区
查询是否成功启用闪回数据库
6)取消闪回恢复区
7)查看一下是否取消闪回恢复区
3、闪回错误操做技术
1)闪回数据库
闪回数据库可以使数据迅速回滚到之前的某个时间点或者某个SCN上,这对于数据库从逻辑错误中恢复特别有用,并且也是大多数发生逻辑损害时恢复数据库的最佳选择。
做用相似于数据库的倒带按钮。
能够在用户形成了逻辑数据损坏的状况下使用。
案例:使用SCN闪回数据库
1)查询数据库当前的SCN
2)改变数据库的当前状态,模拟建立表bxjg,并插入一条数据。
3)进行闪回数据库恢复,将数据库恢复到建立表以前的状态,即SCN为1033421
4)用resetlogs选项打开数据库
5)验证数据库的状态(bxjg表应该不存在)
6)能够经过查询数据字典视图v$flashback_database_log来得到可以闪回的最先的scn号,及闪回时值最先不能小于该值。同理,若是经过时间点闪回,则闪回时间也不能小于查询获得的最先时间。
设置显示时间格式:
查询数据库中当前最先的闪回SCN和时间
7)按照指定时间闪回数据库
首先查询数据系统当前时间
改变数据库当前状态,模拟建立表test,并插入一条数据
进行闪回数据库恢复,将数据库恢复到建立表以前的状态。
使用resetlogs打开数据库
验证数据库的状态test表是否存在
2)闪回表
闪回表是将表恢复到过去的某个时间点或者指定的SCN而不用恢复数据文件,为DBA提供了一种在线、快读、便捷的恢复方式,能够恢复对标进行的修改、删除、插入等错误的操做。
利用闪回表技术恢复表中数据的过程,其实是对表进行DML操做的过程。Oracle自动维护与表相关联的索引、触发器、约束等。
为了使用数据库闪回表功能,必须知足下列条件
用户具备flashback any table系统权限,或者具备所操做表的flashback对象权限。
用户具备所操做表的select、insert、delete、alter对象权限
启动被操做表的row movement特性,能够采用下列方式进行。
Alter table 表名 enable row movement;
案例:使用SCN闪回表
1)使用scott用户登陆
2)改变数据库的当前状态,模拟建立表it,并插入3条数据
3)查询当前SCN号,若是当前用户没有权限查询v$database,则以sys用户登陆,授予当前用户访问数据字典的权限。
4)更新数据(把id=1的名字改为batianhu,删除id=3的数据),而且提交
5)启动it表的row movement特性
6)将it表恢复到2016-12-14 20:08:34
7)查询
8)将表it恢复到scn为1036263的状态
3)闪回删除
闪回删除能够恢复使用drop table语句删除的表,是一种对意外删除的表的恢复机制。
闪回删除功能的实现主要是经过oracle数据库中的“回收站”技术实现的。在oracle数据库中,当执行drop table 操做时,并不当即回收表及、及其关联的对象的空间,而是将它们重命名后放入一个称为“回收站”的逻辑容器中保存,直到用户决定永久删除它们或存储该表的表空间存储空间不足时,表才能真正被删除。为了使用闪回删除技术,必须开启数据库的“回收站”。
1)启动回收站,将参数recyclebin设置为ON,在默认状况下“回收站”已启动。
2)查看“回收站”。当执行drop table操做时,表及其关联对象被命名后保存在“回收站”中,能够经过查询user_recyclebin,dba_recyclebin视图得到被删除的表及其关联对象信息。
注意:不支持sys用户,system表空间下的对象也不能从回收站里拿到,故使用sys或者system用户登陆时,查询为空。
3)若是在删除表时使用了PURGE短语,则表及其关联对象被直接释放,空间被回收,相关信息不会进入“回收站”中。
创建表,而且使用purge短语删除
查看在回收站里面没有
4)清空回收站
因为被删除表及其关联对象的信息保存在“回收站”中,其存储空间并无释放,所以须要按期清空“回收站”,或清楚“回收站”中没有用的对象(表、索引、表空间),释放其所占的磁盘空间。
5)闪回删除操做
FLASHBACK TABLE [schema.]table TO BEFOREDROP [RENAME TO table]
注意:只有本地管理的,非系统表空间中的表可使用闪回删除操做。
案例:闪回删除示例
1)新建表,插入数据并提交
2)删除表
3)闪回表
或者闪回表以后从新命名
4)闪回查询技术
闪回查询:容许根据时间点或SCN查看旧的数据。除了能够查看旧数据,须要时能够经过检索旧数据来撤销错误的更改。
案例:闪回查询实例
1)使用scott用户登陆,对emp表基于as of timestamp的闪回查询
2)更新员工号为7844的工资,更新为2000,并提交事物
第一个事务提交,自动开启第二个事物。
3)再次更新员工号为7844的工资,更新两次,提交事物。
第二个事物提交,自动开启第三个事务。
4)再次更新员工号为7844的工资,更新为3500,并提交事物
第三个事务提交,自动开启第四个事务
5)查询7844号员工的当前工资
6)查询7844号员工前一个小时的工资
7)查询第一个事务提交,第二个事物尚未提交时7844号员工的工资
(2016-12-1421:46:26以前便可)
8)若是须要,能够将数据恢复到过去某个时刻的状态