`

ORACLE误删数据的恢复

阅读更多
有很多原因导致了数据记录的误删,怎样恢复误删的记录呢?先来看看这个概念:
    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提供了一种强大的数据恢复机制——回闪(Flashback)功能。通过回闪功能,用户可以在特定的时间点恢复已...

    oracle误删数据恢复方法

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

    Oracle误删数据恢复.txt

    ### Oracle误删数据恢复知识点详解 #### 一、概述 在Oracle数据库管理中,误删数据是一种常见的问题,尤其对于大型或关键业务系统的数据库来说,误删数据可能会导致严重的后果。因此,掌握如何有效地恢复误删的数据...

    oracle误删数据恢复方法小结

    总的来说,Oracle的闪回查询功能为用户提供了快速恢复误删数据的能力,大大简化了数据恢复流程。然而,预防总是优于治疗,定期备份数据库、合理设置数据库参数以及对用户进行充分的数据库操作培训,仍然是防止数据...

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

    为了应对这种情况,Oracle提供了多种数据恢复的方法,包括闪回恢复、从回收站恢复等。本文将详细介绍这些方法,并给出具体的实施步骤。 #### 二、误删除数据恢复概述 ##### 2.1 闪回恢复 **闪回恢复**是Oracle提供...

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

    首先,理解Oracle的数据恢复机制至关重要。Oracle数据库提供了一套完整的恢复策略,包括归档日志模式、闪回功能、RMAN(恢复管理器)等工具。当数据被误删除后,我们可以借助这些工具来尝试恢复。 1. **闪回查询...

    oracle恢复误删数据

    在这种情况下,了解如何恢复误删数据变得极其关键。Oracle提供了多种机制来帮助用户在不同场景下恢复丢失的数据,包括闪回技术、归档日志恢复等。下面将详细介绍这些方法,以及如何在已提交的DELETE操作后恢复数据。...

    恢复oracle误删数据

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

    oracle 误删恢复

    综上所述,Oracle提供了多种误删数据恢复的解决方案,从基本的闪回查询到高级的表空间闪回和ADR诊断,每种方法都有其适用场景和限制。在实际应用中,应结合具体情况选择最合适的方法,并确保有充分的准备和预防措施...

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

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

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

    oracle 数据恢复 误删恢复 111111111111111111111111111111111111111111111111111111111111111111111111

    oracle误删数据表还原的二种方法(oracle还原)

    Oracle数据库在面临误删数据表的情况时,有多种方法可以尝试恢复数据。以下将详细介绍两种主要的方法,以及一些额外的恢复策略。 一、即时恢复(Flashback Technology) Oracle数据库提供了强大的回闪技术,允许...

    Oracle恢复误删除数据

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

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

    对于Oracle数据库来说,它提供了一系列强大的数据恢复工具和技术,帮助管理员快速有效地恢复误删除的数据。本文将详细介绍Oracle数据库中不同场景下的数据恢复方法。 #### 二、Delete误删除的解决方法 **1. 原理**...

    ORACLE truncate 数据恢复

    以下是一些可能的数据恢复策略: 1. **闪回数据库**:如果启用并配置了闪回数据库,你可以利用这个功能恢复到误操作之前的状态。使用`FLASHBACK DATABASE TO TIMESTAMP`或`TO SCN`命令,但请注意,这可能会影响整个...

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

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

    误删表或数据恢复

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

    oracle数据误删找回

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

Global site tag (gtag.js) - Google Analytics