`

oracle恢复误删数据

阅读更多

自:http://topic.csdn.net/u/20100819/16/0ba394dc-c81e-44d2-9da7-710f0ab7c7b4.html?4730

同事找回时操作的数据库为oracle 10g , 之前删除方式为delete 不晓得trancate好使不

 SCN(系统改变号),它的英文全拼为:System Change Number ,它是数据库中非常重要的一个数据结构。
  SCN提供了Oracle的内部时钟机制,可被看作逻辑时钟,这对于恢复操作是至关重要的
  注释:Oracle 仅根据 SCN 执行恢复。
  它定义了数据库在某个确切时刻提交的版本。在事物提交时,它被赋予一个唯一的标示事物的SCN 。一些人认为 SCN 是指, System Commit Number ,而通常 SCN 在提交时才变化,所以很多情况下,
  这两个名词经常被交替使用。
  究竟是哪个词其实对我们来说并不是最重要的,重要的是我们知道 SCN 是 Oracle 内部的时钟机制, Oracle 通过 SCN 来维护数据库的一致性,并通过SCN 实施 Oracle 至关重要的恢复机制。
  具体执行流程我们可从以下几个示例图中体会;
  1.原表记录 $ sqlplus eygle/eygle
  SQL*Plus: Release 10.1.0.2.0 - Production on Wed Mar 30 08:52:04 2005
  Copyright (c) 1982, 2004, Oracle. All rights reserved.
  Connected to:
  Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
  With the Partitioning, OLAP and Data Mining options
  SQL>select count(*) from t1;
  COUNT(*)
  ----------
  9318
  2.误删除所有记录
  并且提交更改。
  SQL>delete from t1;
  9318 rows deleted.
  SQL>commit;
  Commit complete.
  SQL>select count(*) from t1;
  COUNT(*)
  ----------
  0
  3.获得当前SCN
  如果能够确切知道删除之前SCN最好,如果不知道,可以进行闪回查询尝试.
  SQL>select dbms_flashback.get_system_change_number from dual;
  GET_SYSTEM_CHANGE_NUMBER
  ------------------------
  10671006
  SQL>select count(*) from t1 as of scn 10671000;
  COUNT(*)
  ----------
  0
  SQL>select count(*) from t1 as of scn 10670000;
  COUNT(*)
  ----------
  9318
  我们看到在SCN=10670000时,数据都在。
  4.恢复数据.
  SQL>insert into t1 select * from t1 as of scn 10670000;
  9318 rows created.
  SQL>commit;
  Commit complete.
  SQL>select count(*) from t1;
  COUNT(*)
  ----------
  9318
  文章2
  误删数据后的还原
  select timestamp_to_scn(to_timestamp('2009-03-13 09:00:00','YYYY-MM-DD HH:MI:SS')) from dual;
  结果:13526973
  将删除时间转换为scn
  select * from reportinfo
  AS OF SCN 13526973
  将reportinfo表中的scn点的数据取出
  然后可以根据这个数据进行还原操作
  create table reporttest as select * from reportinfo where 1=0;
  insert into reporttest select * from reportinfo AS OF SCN 13526973;
  --上面两句应该可以合成一句
  --create table reporttest as select * from reportinfo AS OF SCN 13526973;
  这是reporttest表中就是scn点的reportinfo数据.处理即可

分享到:
评论

相关推荐

    oracle误删数据恢复方法

    利用oracle提供的闪回方法,如果在删除数据后还没做大量的操作(只要保证被删除数据的块没被覆写),就可以利用闪回方式直接找回删除的数据。

    oracle误删数据恢复

    ### Oracle误删数据恢复 在Oracle数据库管理过程中,误删数据是常见的问题之一。当遇到这类情况时,Oracle提供了一种强大的数据恢复机制——回闪(Flashback)功能。通过回闪功能,用户可以在特定的时间点恢复已...

    使用oracle快照恢复误删的数据

    oracle 数据恢复 误删恢复 111111111111111111111111111111111111111111111111111111111111111111111111

    Oracle恢复误删除数据,解除锁定的等SQL语句

    Oracle数据库管理系统是世界上最广泛使用的数据库之一,其强大的数据恢复和管理功能为企业提供了可靠的数据保障。在日常操作中,有时可能会发生误操作,如误删除数据或锁定问题,本篇文章将详细讲解如何在Oracle中...

    Oracle数据库误删除数据的不同恢复方法整理(超级实用)

    ### Oracle数据库误删除数据的不同恢复方法 #### 一、引言 在Oracle数据库管理中,误删除数据是一种常见的错误操作,可能导致重要的业务数据丢失。为了应对这种情况,Oracle提供了多种数据恢复的方法,包括闪回恢复...

    Oracle误删数据恢复.txt

    这对于恢复误删数据非常有用。 - **备份**: 定期对数据库进行备份是非常重要的。当数据丢失或损坏时,可以通过备份恢复到某个时间点的状态。 #### 三、恢复方法详解 ##### 方法1:通过Oracle提供的回闪功能恢复 *...

    Oracle误删的重要数据恢复指导

    本篇文章将详细探讨如何在Oracle中恢复误删的重要数据,以及如何采取预防措施以避免此类情况的发生。 首先,理解Oracle的数据恢复机制至关重要。Oracle数据库提供了一套完整的恢复策略,包括归档日志模式、闪回功能...

    恢复oracle误删数据

    --闪回到15分钟前 --闪回到某个时间点 --闪回到两天前

    Oracle数据库误删除数据的不同恢复方法整理

    无论是单条记录的误删还是整张表的删除,Oracle都提供了多种恢复手段。合理利用这些工具和技术,不仅可以避免数据丢失的风险,还能最大限度地减少对业务的影响。当然,在实际操作过程中还需要根据具体情况选择最适合...

    oracle数据误删找回

    Oracle 数据库是一个广泛使用的事务处理系统,其强大的功能包括数据恢复机制,这在数据误删的情况下显得尤为重要。本文将深入探讨如何在 Oracle 10g 中找回被误删的数据,主要涉及 SCNs(系统改变号)的概念及其在...

    Oracle恢复误删除数据

    Oracle 恢复误删除数据 Oracle 数据库是企业级的关系数据库管理系统,广泛应用于各种行业。然而,在实际操作中,误删除数据是一种常见的错误。因此,了解如何恢复误删除数据是非常重要的。本文将详细介绍 Oracle ...

    oracle误删数据恢复方法小结

    本文将详细介绍一种在Oracle数据库中恢复误删数据的方法,主要涉及Oracle 9i及更高版本引入的闪回查询(Flashback Query)技术。 首先,当用户误删数据后,如果没有启用任何备份机制,传统的恢复方式通常需要DBA...

    oracle使用logmnr找回误删数据.rar

    误删数据恢复步骤如下: 1. **开启归档模式**:为了使用logmnr进行数据分析,数据库需要处于归档模式。如果尚未开启,需要执行ALTER DATABASE ARCHIVELOG命令切换到归档模式。 2. **收集必要的日志信息**:需要...

    误删表或数据恢复

    在很多时候由于操作失误,程序出错会误删表或数据,本文档可以将oracle数据库误删表,或者误删数据,即时恢复。

    如何在ORACLE9I下利用闪回功能恢复误删数据.pdf

    Oracle 9i 是一款强大的关系型数据库管理系统,其在数据安全和恢复方面提供了诸多功能,其中闪回功能(Flashback)是一项重要的数据恢复工具。闪回功能允许用户恢复误删除或误修改的数据,大大增强了数据库的安全性...

    解决误删了oracle的表空间

    运行在虚拟机的Linux下,解决误删了oracle的表空间,不用重装oracle

    oracle 误删恢复

    在没有启用闪回功能的情况下,恢复误删数据的传统方法是依赖于备份和归档日志。通过使用RMAN(Recovery Manager)工具,我们可以从最近的备份中恢复数据,或者通过分析归档日志来还原数据至删除前的状态。这种方法...

    oracle数据库各种删除重复数据方法

    根据实际情况选择合适的方法,并确保在执行删除操作前充分测试,以避免误删重要数据。在处理大量数据时,建议先在小规模数据集上测试,确保SQL语句的正确性和效率。此外,在生产环境中操作之前,一定要备份数据,以...

    oracle 恢复表数据

    对于“oracle恢复表数据”的主题,本文将深入探讨几种常见的恢复方法,并结合给定的描述与部分代码示例进行详细解释。 ### Oracle恢复表数据概览 在Oracle数据库环境中,数据丢失可能由多种原因引起,如误操作、...

Global site tag (gtag.js) - Google Analytics