`

表闪回

 
阅读更多
使用delete删除数据的情况,如果是truncate只能用数据库闪回

需要注意的一点flashback table的一些限制:
1)启用行移动  alter table  table_name  enable row movement;
2)不能用于闪回系统表、远程表、外部表;
3)不能跨越DDL语句,即闪回期间如果发生了DDL,则闪回失败
4)9i只能闪回5分钟内的数据,10g有所增强,可以延长到5天,只要undo没有被覆盖

首先需要查出可以闪回的区间:
select versions_starttime,
        versions_endtime,
        versions_xid,
        versions_operation
   from 表名  versions between timestamp minvalue and maxvalue

按时间查:
select *
  from 表名 versions between timestamp to_timestamp('2014-6-19 14:00:00', 'yyyy-mm-dd hh24:mi:ss') and to_timestamp('2014-6-19 14:10:00', 'yyyy-mm-dd hh24:mi:ss');

恢复:
Alter table 表名 enable row movement;
flashback table 表名 to timestamp to_timestamp('2014-6-19 13:00:00','yyyy-mm-dd hh24:mi:ss');
恢复完后取消行迁移

设置:
show parameter undo;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS1

undo_retention:指定事物commit后undo 将要保存的时间(秒),在ORACLE10g中默认的是900秒。

GUARANTEE : 保证undo_retention参数所设定的时间有效,这个是10g的新功能。

SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE;

SQL> ALTER TABLESPACE undotbs1 RETENTION NOGUARANTEE;

在没有guarantee的保证下,ORACLE并不能保证能够将undo信息存储900秒,如果undo表空间不足,那么ORACLE将忽略undo_retention的设置,直接覆盖掉以前的undo,这个时候有可能会产生ORA-01555错误。如果undo表空间空间足够,那么undo将会保存很长一段时间,直到undo表空间达到maxsize,这个时候才会覆盖undo信息,而且ORACLE会从最古老的undo信息开始覆盖。

ORACLE推荐我们将undo 表空间中的datafile 设定MAXSIZE ,不要让它一直自动扩展,如果ORACLE获得了自动扩展的能力,那么旧的undo不会被覆盖,到后来undo表空间会越来越大,越来越大,直到将磁盘空间耗尽。

在有guarantee的保证下,ORACLE将会保证undo信息能够保存到undo_retention设定的值之后才被覆盖,如果这个时候同时执行了很多事物,将undo表空间耗完了,那么那个事物会失败,会报ORA-30036 错误,所以使用guarantee一定要慎用,如果非要使用guarantee,那么尽量将undo 表空间设大 一点。

Oracle10g开始,如果你设置UNDO_RETENTION为0,那么Oracle启用自动调整以满足最长运行查询的需要。当然如果空间不足,那么Oracle满足最大允许的长时间查询。而不再需要用户手工调整。
分享到:
评论

相关推荐

    达梦开启归档和闪回的方式

    ### 达梦开启归档和闪回的方式 #### 背景介绍 在数据库管理领域,数据的安全性和可用性是至关重要的。为了确保数据的安全,通常会采用多种备份策略和技术来实现这一目标。其中,归档(Archiving)和闪回...

    oracle_闪回15分钟前的数据操作写法

    Oracle闪回技术主要包括以下几种类型:闪回查询(Flashback Query)、闪回表(Flashback Table)、闪回事务查询(Flashback Transaction Query)、闪回数据库(Flashback Database)和闪回删除(Flashback Drop)。...

    oracle 闪回已删除的表

    ### Oracle 闪回已删除的表 在Oracle数据库管理中,**闪回删除的表**是一项非常实用的功能,它允许数据库管理员(DBA)恢复被误删的表及其所有数据。这一特性最早出现在Oracle 9i版本中,但在Oracle Database 10g中...

    Oracle数据库闪回技术详解.pdf

    启用表闪回需要在表上启用行移动特性,以允许行ID在闪回后保持一致。启用命令为 `ALTER TABLE emp ENABLE ROW MOVEMENT;`,然后执行闪回表操作,如 `FLASHBACK TABLE dept TO TIMESTAMP TO_TIMESTAMP('2016-09-10 11...

    Oracle数据库闪回技术详解.docx

    启用表闪回需要设置`ROW MOVEMENT`,以允许行ID的变化。如果闪回过程中出现违反数据库约束、撤销数据失效或DDL操作等问题,闪回表操作可能会失败。 3. 闪回删除可以恢复被DROP的表,包括其相关的索引和非外键约束。...

    利用oracle闪回技术恢复误删除的表或误更新的记录.pdf

    为了使 Oracle 数据库从任何逻辑误操作中迅速地恢复...进行了全面扩展,提供了闪回数据库、闪回删除、闪回表、闪回事物及闪回版本查询等功能,本 文将重点说闪回删除、闪回表的使用。(本文使用oracle 版本10.2.0.3.0)

    oracle回闪表中的数据

    【Oracle 回闪表数据详解】 Oracle数据库的回闪技术是一项强大的功能,它允许数据库管理员(DBA)恢复数据到过去的某个特定时间点,而无需完全恢复整个数据库。在Oracle 10g及更高版本中,回闪表是这项技术的一个...

    闪回技术、备份恢复与优化.txt

    除了闪回表之外,Oracle还提供了闪回事务查询(Flashback Transaction Query),这是一种更高级的闪回功能,可以显示特定事务对数据的影响。 - **获取事务的XID**: - 在执行更新等DML操作后,可以通过`SELECT ...

    Oracle 8大闪回模式及其特性及其详细实验解释

    它包括闪回数据库、闪回表和闪回删除等功能。闪回恢复区保存了一段时间内对数据的修改,以便在需要时恢复。闪回日志则记录了数据变化的前一个状态,存储在闪回缓冲区,然后由RVWR进程写入闪回日志文件。 2. **闪回...

    彻底删除和闪回oracle表

    在了解如何彻底删除Oracle表和如何使用闪回恢复回收站中的数据之前,我们需要先明白回收站的工作原理。 回收站的工作原理在于,当执行`DROP TABLE`等删除命令时,Oracle并不立即释放相关的磁盘空间,而是将被删除的...

    Oracle闪回技术详解

    闪回表操作是一个单独的事务,所以若由于撤销数据过期之类的原因导致无法闪回,整个操作会回滚,不会存在不一致的状态。 例如,可以使用以下SQL语句来闪回表: SQL> alter table emp enable row movement; SQL> ...

    利用oracle 闪回技术恢复数据

    在实际应用中,当发生误操作时,例如误删了表中的记录,可以首先确认有无开启闪回功能,然后使用闪回查询验证能否恢复所需数据,最后执行相应的闪回操作,如闪回表或闪回事务。在完成恢复后,记得分析并修复导致问题...

    oralce 闪回

    - 对于表闪回查询,需要注意UNDO表空间中数据的有效期,以避免因数据过期而导致无法查询。 - 闪回功能虽然强大,但在日常维护中也需要定期清理旧数据,以避免占用过多磁盘空间。 综上所述,Oracle闪回功能为数据库...

    oracle闪回技术

    Oracle 闪回技术是Oracle...通过闪回删除、闪回查询和闪回表数据,用户可以在不影响数据库正常运行的情况下,实现对数据的精细控制和恢复。然而,使用这些功能时也应谨慎,确保对潜在风险和资源消耗有充分的认识。

    ORACLE闪回技术恢复指南

    本文将涵盖闪回删除表、闪回删除、闪回查询等多种闪回类型,并通过具体的实例加深理解。 #### ORACLE闪回技术概述 Oracle闪回技术主要分为以下几个方面: 1. **闪回删除表**:适用于当表被误删除时,可以从回收站...

    Oracle闪回特性

    请注意,闪回表可能需要启用回收站(RECYCLEBIN)功能,并且可能会占用额外的存储空间。 3. 闪回数据库(Flashback Database) 这是最强大的闪回功能,可将整个数据库恢复到一个已知的系统改变号(SCN)或时间点。...

    Oracle闪回操作

    Oracle 闪回操作是Oracle数据库提供的一种高级恢复技术,它允许用户恢复数据库、表或单个行至一个特定的时间点或系统改变号 (SCN)。这种功能在处理误操作,如误删数据、错误更新等场景时尤其有用,因为它可以避免...

    oracle闪回数据库

    2. 表的闪回:如果误删或误修改了表,可以使用闪回表(Flashback Table)功能恢复。 3. 闪回删除:对于误删除的表,通过`FLASHBACK DROP`可以恢复。 4. 数据比较:`FLASHBACK QUERY`可用于对比当前数据与过去某时刻...

    oracle命令整理.7z

    本文将围绕“Oracle命令整理.7z”这个压缩包中的主题,详细解析Oracle数据库中的核心概念和实用命令,特别是与“表闪回”和“UNDO记录闪回”相关的知识。 首先,让我们了解一下Oracle的闪回技术。这是Oracle提供的...

    SCN号的闪回

    "SCN号的闪回"是Oracle数据库中一个重要的恢复机制,全称为System Change Number,它是Oracle数据库中记录事务更改的唯一序列号。SCN是一个不断增加的数字,每次数据库中的数据发生变化时,都会生成一个新的SCN,...

Global site tag (gtag.js) - Google Analytics