9i新特性之backQuery的应用-------------针对DML误操作的恢复(1)

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
 
9i 新特性之Flash backQuery的应用------------- 针对 DML 误操作恢复

 

作者:刘颖博


mail:liuyingbo@126.com,请指正

 

转载请注明出处及作者

 

在9i之前,如果出现 DML误操作,只能通过备份来完成基于时间点的 恢复,9i给提供了一个新的特性Flash backQuery,我们可以应用此特性,可以很方便的实现 恢复。但是要注意的是,Flash backQuery仅仅是一个查询的机制,不会真正的UNDO任何数据。

 

1.      什么是Flash backQuery

利用多版本读一致的特性通过undo来提供所需的前镜像中的数据。通过这个功能,可以看到历史数据,甚至用历史数据来修复 误操作引起的错误。可以通过指定时间或者SCN来检索需要的数据。{UsesOracle'smultiversionread-consistencycapabilitiestorestoredatabyapplyingundoasneeded.Youcanviewandrepairhistoricaldata,andyoucanperformqueriesonthedatabaseasofacertainwallclocktimeoruser-specifiedsystemcommitnumber(SCN).}

可以理解成,Oracle在之前的版本中就已经存在了Flash backQuery了,之前我们把它称为多版本的读一致性。(多版本特性提供跨多个用户会话的一致性视图,Oracle不执行dirtyread)

2.      准备工作

thebestway:处于AutomaticUndoManagement状态(也有文章说必须,我查找了oracle文档应用了这个词Prerequisite<先决条件>,同时在AskTom上我也查找到相应的解释,指明最好是自动Undo管理,手动的Undo管理也是可以的,并且有例子)

最大可以闪回查询的时间段由UNDO_RETENTION初始化参数(单位为秒)指定,参看下面执行命令

SQL>showparameterundo

 

NAME                             TYPE       VALUE

-----------------------------------------------------------------------------

undo_management                   string     AUTO

undo_retention                      integer    600

undo_suppress_errors                boolean    FALSE

undo_tablespace                     string     UNDOTBS1

SQL>

这是一个可以动态的修改的参数,可以通过ALTERSYSTEMSETUNDO_RETENTION=<seconds>;来修改参数值

比较显然的是,你设置了相对大的UNDO_RETENTION,就必须设置足够大的UNDOROLLBACKSEGMENTS。

3.   如何使用Flash backQuery

我们可以通过两种方式来使用Flash backQuery

用SQL

使用SELECT语句的ASOF来进行闪回查询,语法如下:

asof scn(timestamp)expr

 

通过关键词ASOF可以对表,视图,物化视图进行Flash backQuery,可以制定SCN或者TIMESTAMP,其中TIMESTAMP是9i中出现的,可以有毫秒的时间单位,如

SQL>selectsystimestampfromdual; 1
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值