码迷,mamicode.com
首页 > 数据库 > 详细

oracle中闪回错误的dml操作原理

时间:2014-09-12 21:54:54      阅读:388      评论:0      收藏:0      [点我收藏+]

标签:style   io   使用   ar   strong   数据   sp   on   c   

原理: 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操作。通常报错为“表结构的定义被修改了”

  

oracle中闪回错误的dml操作原理

标签:style   io   使用   ar   strong   数据   sp   on   c   

原文地址:http://www.cnblogs.com/moonfans/p/3969060.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!