oracle中闪回错误的dml操作原理
原理: Oracle根据还原表空间信息,利用还原表空间中的数据,类似一致性读取方法,可以把表置于一个删除前的时间点(或SCN),从而将数据找回。
删除删除错误的dml操作的oracle的前提准备:
一、保证可以闪回两个小时之前的数据
show parameter undo_retention
显示事务在undo表空间中至少保存的时间。表示一个事务提交以后,该事务的数据至少要在还原表空间中保存的undo_retention参数指定的时间(秒).
alter system set undo_retention=7200
二、还原表空间相关的参数
SQL> show parameter undo;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
其中undo_management = auto,设置自动undo管理(AUM),该参数默认设置为:auto;(必须设置为自动管理的还原表空间,否则不能实现闪回数据)
Undo_retention = n(秒),设置决定undo最多的保存时间,其值越大,就需要越多的undo表空间的支持
undo_tablespace指定系统使用的当前的还原表空间。
三、设置足够大的还原表空间
虽然设置undo中保存两个小时的数据,但是如果表空间上的dml操作过于频频导致占用了大量的undo表空间。还原表空间上没有足够的空间时oracle会使用undo_retention参数要求保留的磁盘空间,即这部分空间中的数据将被覆盖掉,无法恢复错误的dml操作。通常报错为“表结构的定义被修改了”
四、闪回错误的dml操作主要根据具体的情况有三种方法:
1、已知需要闪回的时间使用基于 as of snc(timestamp)的闪回查询获得指定时间(scn)的数据
2、闪回版本查询,查询在undo_retention指定的时间内保存的 between scn minvalue and maxvalue。获取索引的版本快照信息
3、闪回事务查询,根据闪回版本查询获得修改操作提交的事务号,根据flashback_transcation_view视图获得undo_sql来还原误操作数据
oracle中闪回错误的dml操作原理的更多相关文章
- Oracle的闪回技术--闪回错误的DML操作
提交DML操作后,该操作使用的还原段就可以被其它对象使用了,为了保证闪回操作时这些数据仍然被保存在还原段中,可能需要重新设置undo_retention参数,表示一个事务提交后,该事务的数据必须保存在 ...
- Oracle的闪回操作
Oracle10g中引入了闪回技术,但这并不意味着所有的表都能闪回成功,当没有足够的磁盘空间,Oracle将使用回收站中的磁盘空间,而且位图连接索引和引用完整性约束也不受回收站的保护. recycle ...
- Oracle 六闪回技术,flashback
Flashback 技术基于Undo segment基于内容的, 因此,限制UNDO_RETENTON参数. 要使用flashback 特征,您必须启用自己主动撤销管理表空间. 在Oracle 11g ...
- Oracle Flashback 闪回
Oracle 的闪回技术是一种数据恢复技术,仅能对用户逻辑错误进行恢复, 闪回针对的是提交commit的事务,没有提交的事务,使用rollback 1.闪回版本查询 Flashback Version ...
- Oracle的闪回特性之恢复truncate删除表的数据
Oracle的闪回特性之恢复truncate删除表的数据 SQL> show parameter flashback NAME T ...
- oracle的闪回功能
ORACLE的闪回功能: navicat 执行删改语句 不用提交直接执行? 感觉很恐怖? 今天一不下心手一滑 选错 结果把数据库的字段全改了 很慌 然后发现 oracle 有一个闪回功能 专门用来补天 ...
- [Oracle]Oracle的闪回归档
Oracle的闪回归档 场景需求,由于管理数据库的一些核心表,在实施初期会有人为误删除的问题.Oracle 11gR2提供了闪回归档的特性,可以保证不用RMAN来恢复误删除的数据.实践如下: 1.创建 ...
- Oracle数据库中闪回恢复的详细分析
Oracle9i开始提供闪回查询,以便能在需要的时候查到过去某个时刻的一致性数据,这是通过Undo实现的.这个功能有很大的限制,就是相关事务的undo不能被覆盖,否则就无力回天了.oracle10g大 ...
- oracle之三闪回flashback
闪回 flashback 5.1 flashback 的功能:1)利用undo data回溯或撤销提交的数据,2)flashback log 使database 可以恢复到过去某个时间点,可以作为不完 ...
随机推荐
- Python学习笔记3(数据结构)
1.元组结构(Tuple) 元组由不同的元素组成,每个元素可以存储不同类型的数据,如字符串.数字甚至元组.元组创建后不能修改. 元组通常代表一行数据,而元组中的元素代表不同的数据项. 1.1元组的创建 ...
- VLC的相关文档以及javascript接口
参看下面链接:VLC相关文档
- HDU 1172 猜数字(DFS)
猜数字 Time Limit:10000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
- StringBuilder是不是线程安全的?
测试条件: 开启2个并行执行任务,往同一个StringBuilder对象写入值 测试代码: ; static StringBuilder sbIsThreadSafe = new StringBuil ...
- information_schema.column_privileges 学习
mysql 的授权是分层次的 实例级 | 库级 | 表级 | 列级 而这些授权信息被保存在了mysql.user | mysql.db | mysql.tables_priv | mysql.colu ...
- linux设置虚拟内存(swap)解决mysql因内存不足挂掉的故障
mysql错误日志显示: InnoDB: mmap(137363456 bytes) failed; errno 122016-03-01 01:38:42 13064 [ERROR] InnoDB: ...
- 学习Emacs
1.http://ergoemacs.org/emacs/emacs.html 2.Debian7安装emacs24 http://my.oschina.net/xuzhouyu/blog/14954 ...
- 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
python IO操作的时候出现这种错误,检查一些url的目录 这个时候需要注意一下一般的dir举例是:“F:\DOCUMENT\4.7” 需要修改成为:F:/DOCUMENT/4.7
- Silverlight 结合ArcGis 在地图画点
原文 http://www.dotblogs.com.tw/justforgood/archive/2012/05/10/72076.aspx 我们直接来看完成后的画面读者会比较有兴趣 如上,小马在地 ...
- Linux下程序崩溃,ulimit,coredump,gdbserver
操作系统:Ubuntu10.04 前言: 在程序崩溃后,如何快速定位问题. 以下方法适用于开发调试阶段,不太适用成品. 本文着眼于嵌入式,PC方面更简单. 核心:gdbserv ...