`

【转】恢复ORACLE被误更新或删除数据的办法

 
阅读更多
有时候我们在操作ORACLE数据库的时候,可能由于SQL写错了导致把数据update错了,或者delete删除掉了,那么这时候如何去恢复之前的数据呢?

莫着急,我们可以采用oracle的基于时间查询as of timestamp的办法进行恢复数据。下面以具体例子进行讲解用法。



1、比如,我的wl_notify_task表目前有三条数据,大家重点关注PARAMETER字段。





2、我现在做一个update操作,要把id=1的parameter字段更新为param_test8,但是由于我操作的失误,id=1条件忘了加了,导致整表更新了。导致其他记录的parameter字段全部都是param_test8

update wl_notify_task set parameter = ‘param_test8′





杯具发生了,那么如何再找到我之前的记录是什么呢??

3、没事,我们可以采用oracle的基于时间查询的办法查询出3分钟前的表的记录情况,查询SQL如下:

SELECT * FROM wl_notify_task AS OF TIMESTAMP SYSDATE – 3/1440



对SQL的解释说明:

SYSDATE :当前时间

1440 :24h*60m=1440m

3:3分钟前







4、通过上面的查询,我们看到了在update之前的数据情况。那么把数据恢复回去就很简单了,通过ID关联的方式更新回去即可。如下:

update wl_notify_task t1
set t1.parameter =
(select parameter
from wl_notify_task AS OF TIMESTAMP SYSDATE – 3 / 1440
where t1.id = id)





这种做法也是DBA常用的恢复数据的手段。对于删除的情况,那么就通过insert办法重新把记录插入表即可。

最后需要特别提醒大家注意的是,SQL中的 SYSDATE-3/1440 代表查询3分钟前的记录情况,由于是和当前时间SYSDATE的距离3分钟前,所以这个随着隔的时间不同及时间的推移是会变化的,一般的做法是在真正做恢复时的update前,需要先select查询一下比如3分钟前的数据是否是我们想要的数据,确认无误后立即做恢复的update。如果数据不是我们想要的,那么就需要通过调节分钟数直到找到我们想要的数据。这种办法适合小批量数据,如果是大批量数据且很重要的数据的话,建议大家新建一张结构相同的表,先把as of timestamp查询出来的数据存到新表中,再进行恢复操作,因为这样数据不再受时间差的影响,确保数据是准确的,无论你何时开始做恢复操作。



转自:http://wangchongan.com/articles/oracle-data-update-delete-recover.html
分享到:
评论

相关推荐

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

    ### Oracle数据库误删除数据的不同恢复方法 #### 一、引言 在日常的数据库管理工作中,数据误删除是一个常见的问题。对于Oracle数据库来说,它提供了一系列强大的数据恢复工具和技术,帮助管理员快速有效地恢复误...

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

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

    Oracle恢复误删除数据

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

    ORACLE误删除数据的恢复方法

    通过以上步骤,我们可以有效地利用SCN恢复Oracle数据库中误删除的数据。需要注意的是,虽然SCN提供了一种强大的恢复手段,但在实际操作中还需谨慎行事,并确保对数据库有足够的了解。此外,定期备份数据仍然是避免...

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

    在日常操作中,有时可能会发生误操作,如误删除数据或锁定问题,本篇文章将详细讲解如何在Oracle中恢复误删除数据以及解锁相关操作。 1. **恢复误删除数据** 当你不小心删除了数据库表中的数据时,Oracle提供了一...

    oracle中truncate table后的数据恢复

    在Oracle数据库中,`TRUNCATE TABLE`是一个用于删除表中所有数据的命令,它与`DELETE`语句不同,不记录任何删除操作,并且在大多数情况下执行速度更快。然而,一旦执行`TRUNCATE TABLE`,数据通常无法通过常规的...

    Oracle必杀技物理删除数据文件恢复

    一旦数据文件被物理删除,不仅文件本身消失,Oracle数据库可能无法识别该文件,导致表空间不可用,进而影响到相关的数据库对象。因此,快速有效的恢复策略至关重要。 恢复步骤如下: 1. **备份检查**:在尝试任何...

    ORACLE truncate 数据恢复

    在Oracle数据库中,`TRUNCATE TABLE`命令用于删除表中的所有数据,但它与`DELETE`语句有所不同。`TRUNCATE`操作是DDL(Data Definition Language)的一部分,而`DELETE`是DML(Data Manipulation Language)。由于`...

    oracle 通过快照进行数据恢复

    在日常的数据库管理工作中,数据丢失或误删除是常见的问题之一。对于Oracle数据库来说,它提供了多种手段来进行数据恢复,其中一种有效的方式就是利用快照(Snapshot)技术。本文将详细介绍如何利用Oracle的快照功能...

    Oracle通过DBF恢复数据

    在日常工作中,Oracle数据库作为企业级数据管理系统之一,经常面临着各种意外情况,如误删除、误操作或系统故障导致的数据丢失。在这种情况下,如何有效地恢复数据成为了一项重要的技能。本文将详细介绍在没有备份的...

    oracle数据文件被误删除后的灾难处理

    本文将详细探讨当遇到 Oracle 数据文件被误删除的情况时,如何采取有效措施进行恢复,尽可能减少对业务的影响。 #### 一、Oracle 数据文件误删前的准备 在开始讨论具体的数据恢复步骤之前,我们需要了解一些基本...

    oracle 误删除表恢复

    ### Oracle误删除表恢复 在Oracle数据库管理过程中,误删表是常见的操作失误之一,而如何有效、快速地恢复这些被误删的表对于DBA(数据库管理员)来说至关重要。本文将详细介绍如何在Oracle环境下利用回收站功能...

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

    当数据被误删除后,我们可以借助这些工具来尝试恢复。 1. **闪回查询(Flashback Query)**:如果数据库开启了闪回功能,可以通过闪回查询回溯到删除操作之前的状态,查看并恢复数据。`FLASHBACK TABLE table_name ...

    原创Oracle 物理删除数据文件恢复 危机演练

    在Oracle数据库管理中,物理删除数据文件是一种严重的情况,可能导致数据丢失或系统不可用。本文将深入探讨如何在危机情况下进行Oracle数据文件的物理删除恢复。这个话题对于DBA(数据库管理员)来说至关重要,因为...

    oracle恢复误删数据

    在Oracle数据库环境中,数据安全是至关重要的,但有时由于误操作,可能会导致数据被意外删除。在这种情况下,了解如何恢复误删数据变得极其关键。Oracle提供了多种机制来帮助用户在不同场景下恢复丢失的数据,包括闪...

    oracle数据恢复工具

    物理恢复主要是针对数据文件、控制文件、重做日志文件等物理组件的损坏或丢失,而逻辑恢复则涉及事务错误、误删除数据等问题。"Oracle数据恢复工具"在这些领域提供支持,帮助用户在数据灾难发生时尽可能地恢复数据...

    sql恢复oracle数据库delete的数据

    在"恢复oracle数据库delete的数据.txt"文件中,可能会包含具体的恢复步骤、示例SQL语句和注意事项,建议仔细阅读以获取更详细的信息。记得在实际操作前进行充分的测试,以验证恢复策略的有效性。

    oracle误删除表空间后恢复

    标题与描述概述的知识点是关于Oracle数据库中误删除表空间后的恢复方法。这涉及到Oracle数据库管理中的关键领域,包括表空间管理、数据恢复以及RMAN(Recovery Manager)的使用。下面将对这一主题进行详细解析,涵盖...

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

    为了使 Oracle 数据库从任何逻辑误操作中迅速地恢复,Oracle 推出了闪回技术。 该技术首 先以闪回查询( Flashback Query)出现在 Oracle 9i 版本中,后来 Oracle 在 10g 中对该技术 进行了全面扩展,提供了闪回...

    ORACLE数据库误操作执行了DELETE,该如何恢复数据?

    ### ORACLE数据库误操作执行了DELETE,该如何恢复数据? 在Oracle数据库管理中,误操作是常见的问题之一。尤其是在执行删除(DELETE)操作时,如果未能正确地确认或配置好相关参数,可能会导致重要数据的丢失。本文...

Global site tag (gtag.js) - Google Analytics