9i新特性之backQuery的应用-------------针对DML误操作的恢复(1)
来源:互联网 发布:祖马龙女士香水 知乎 编辑:程序博客网 时间:2024/05/29 17:39
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
9i新特性之FlashbackQuery的应用-------------针对DML误操作的恢复
作者:刘颖博
mail:liuyingbo@126.com,请指正
转载请注明出处及作者
在9i之前,如果出现DML的误操作,只能通过备份来完成基于时间点的恢复,9i给提供了一个新的特性FlashbackQuery,我们可以应用此特性,可以很方便的实现恢复。但是要注意的是,FlashbackQuery仅仅是一个查询的机制,不会真正的UNDO任何数据。
1. 什么是FlashbackQuery?
利用多版本读一致的特性通过undo来提供所需的前镜像中的数据。通过这个功能,可以看到历史数据,甚至用历史数据来修复误操作引起的错误。可以通过指定时间或者SCN来检索需要的数据。{UsesOracle'smultiversionread-consistencycapabilitiestorestoredatabyapplyingundoasneeded.Youcanviewandrepairhistoricaldata,andyoucanperformqueriesonthedatabaseasofacertainwallclocktimeoruser-specifiedsystemcommitnumber(SCN).}
可以理解成,Oracle在之前的版本中就已经存在了FlashbackQuery了,之前我们把它称为多版本的读一致性。(多版本特性提供跨多个用户会话的一致性视图,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. 如何使用FlashbackQuery?
我们可以通过两种方式来使用FlashbackQuery:
用SQL
使用SELECT语句的ASOF来进行闪回查询,语法如下:
asof scn(timestamp)expr
通过关键词ASOF可以对表,视图,物化视图进行FlashbackQuery,可以制定SCN或者TIMESTAMP,其中TIMESTAMP是9i中出现的,可以有毫秒的时间单位,如
SQL>selectsystimestampfromdual;1
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
9i新特性之FlashbackQuery的应用-------------针对DML误操作的恢复
作者:刘颖博
mail:liuyingbo@126.com,请指正
转载请注明出处及作者
在9i之前,如果出现DML的误操作,只能通过备份来完成基于时间点的恢复,9i给提供了一个新的特性FlashbackQuery,我们可以应用此特性,可以很方便的实现恢复。但是要注意的是,FlashbackQuery仅仅是一个查询的机制,不会真正的UNDO任何数据。
1. 什么是FlashbackQuery?
利用多版本读一致的特性通过undo来提供所需的前镜像中的数据。通过这个功能,可以看到历史数据,甚至用历史数据来修复误操作引起的错误。可以通过指定时间或者SCN来检索需要的数据。{UsesOracle'smultiversionread-consistencycapabilitiestorestoredatabyapplyingundoasneeded.Youcanviewandrepairhistoricaldata,andyoucanperformqueriesonthedatabaseasofacertainwallclocktimeoruser-specifiedsystemcommitnumber(SCN).}
可以理解成,Oracle在之前的版本中就已经存在了FlashbackQuery了,之前我们把它称为多版本的读一致性。(多版本特性提供跨多个用户会话的一致性视图,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. 如何使用FlashbackQuery?
我们可以通过两种方式来使用FlashbackQuery:
用SQL
使用SELECT语句的ASOF来进行闪回查询,语法如下:
asof scn(timestamp)expr
通过关键词ASOF可以对表,视图,物化视图进行FlashbackQuery,可以制定SCN或者TIMESTAMP,其中TIMESTAMP是9i中出现的,可以有毫秒的时间单位,如
SQL>selectsystimestampfromdual;1
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 9i新特性之backQuery的应用-------------针对DML误操作的恢复(1)
- 9i新特性之backQuery的应用-------------针对DML误操作的恢复(2)
- 9i新特性之Flashback Query的应用-------------针对DML误操作的恢复(1)
- 9i新特性之Flashback Query的应用-------------针对DML误操作的恢复(2)
- 9i新特性之Flashback Query的应用----针对DML误操作的恢复(1)ZZ
- 9i新特性之Flashback Query的应用--针对DML误操作的恢复(2)(zz)
- 使用RMAN恢复用户DML误操作的步骤
- DML误操作基于时间点的不完全恢复
- Objective-c针对swift的新特性
- J2EE1.4新特性之EJB2.1的新特性
- JDK1.8的新特性之Lambda表达式的应用
- ocp试题之视图的DML操作
- 树形查询新特性CONNECT_BY_ISLEAF的9i实现方式
- J2SE1.4的I/O新特性
- J2SE1.4的I/O新特性
- IBM i 7.1的新特性
- android 4.0新的特性(针对开发者)
- Visual Studio 2017 针对移动开发的新特性介绍
- 080427周日
- (转)在UNIX中用sar命令进行系统维护
- log4j 使用笔记
- 不同unix下查看cpu,ram数量
- [转]甲骨文函数大全
- 9i新特性之backQuery的应用-------------针对DML误操作的恢复(1)
- 如何用P V原语实现进程间的互斥与同步
- ListenSoftware解决方案“HowTo”系列3:备份控制文件
- 准备开写一个小型的OS,从底层支持汉字输入输出
- ListenSoftware解决方案“HowTo”系列2:存储过程
- ListenSoftware解决方案“HowTo”系列1:范式大纲
- SQL中两台服务器间使用连接服务器
- ERP系统中与BOM有关的常用方法
- DevCpp的奇怪问题