Oracle误删除数据的恢复方法

Oracle误删数据的恢复,分为两种方法:SCN和时间戳两种方法恢复。

一、通过SCN恢复删除且已提交的数据

1、获得当前数据库的SCN号

 select current_scn from v$database; (切换到sys用户或system用户查询)

 查询到的SCN号为:1499223

2、查询当前SCN号之前的SCN

 select * from 表名 as of scn 1499220; (确定删除的数据是否存在,如果存在,则恢复数据;如果不是,则继续缩小scn号)

3、恢复删除且已提交的数据

  flashback table 表名 to scn 1499220;

二、通过时间恢复删除且已提交的数据

1、查询当前系统时间

select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘) from dual;

2、查询删除数据的时间点的数据

select * from 表名 as of timestamp to_timestamp(‘2013-05-29 15:29:00‘,‘yyyy-mm-dd hh24:mi:ss‘);  (如果不是,则继续缩小范围)

3、恢复删除且已提交的数据

flashback table 表名 to timestamp to_timestamp(‘2013-05-29 15:29:00‘,‘yyyy-mm-dd hh24:mi:ss‘);

注意:如果在执行上面的语句,出现错误。可以尝试执行 alter table 表名 enable row movement; //允许更改时间戳

找出删除的数据:select * from 表名 as of timestamp to_timestamp(‘删除时间点‘,‘yyyy-mm-dd hh24:mi:ss‘)

把删除的数据重新插入原表: insert into 表名 (select * from 表名 as of timestamp to_timestamp(‘删除时间点‘,‘yyyy-mm-dd hh24:mi:ss‘));

select * from t_xxx as of timestamp (systimestamp - interval ‘10‘ minute)

参考:http://blog.chinaunix.net/uid-20845577-id-3866745.html

时间: 2024-08-11 16:29:32

Oracle误删除数据的恢复方法的相关文章

北亚案例:oracle数据库误删除数据的恢复方法

学习数据库时,我们只是以学习的态度,考虑如何使用数据库命令语句,并未想过工作中,如果误操作一下,都可能导致无可挽回的损失.当我在工作中真正遇到这些问题时,我开始寻找答案. 今天主要以oracle数据库为例,介绍关于表中数据删除的解决办法.(不考虑全库备份和利用归档日志) 删除表中数据有三种方法: ·delete(删除一条记录) ·drop或truncate删除表格中数据 1.delete误删除的解决方法 原理:利用oracle提供的闪回方法,如果在删除数据后还没做大量的操作(只要保证被删除数据的

Oracle误删数据的恢复

Oracle误删数据的恢复,分为两种方法:SCN和时间戳两种方法恢复. 一.通过SCN恢复删除且已提交的数据 1.获得当前数据库的SCN号 select current_scn from v$database; (切换到sys用户或system用户查询) 查询到的SCN号为:1499223 2.查询当前SCN号之前的SCN select * from 表名 as of scn 1499220; (确定删除的数据是否存在,如果存在,则恢复数据:如果不是,则继续缩小scn号) 3.恢复删除且已提交的

SQL Server 2008 数据库误删除数据的恢复

原文:http://www.cnblogs.com/dudu/archive/2011/10/15/sql_server_recover_deleted_records.html SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可.但是,这个恢复需要有两个前提条件: 1. 至少有一个误删除之前的数据库完全备份. 2. 数据库的恢复模式(Recovery mode)是“完整(Full)”. 针对这两个前提条件,会有三种情况: 情况一.如果这两个前提条件都存在,通过SQL语句只

实战 SQL Server 2008 数据库误删除数据的恢复

关键字:SQL Server 2008, recover deleted records 今天有个朋友很着急地打电话给我,他用delete语句误删除了SQL Server 2008数据库中两个表中的所有记录,而这个数据库之前没有任何备份.让我帮他解决一下,不然他要赔偿客户很多钱. SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可.但是,这个恢复需要有两个前提条件: 1. 至少有一个误删除之前的数据库完全备份. 2. 数据库的恢复模式(Recovery mode)是“完整(

SQL Server中误删除数据的恢复

SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可.但是,这个恢复需要有两个前提条件: 1. 至少有一个误删除之前的数据库完全备份. 2. 数据库的恢复模式(Recovery mode)是“完整(Full)”. 针对这两个前提条件,会有三种情况: 情况一.如果这两个前提条件都存在,通过SQL语句只需三步就能恢复(参考文章),无需借助第三方工具(Recovery for SQL Server). a) 备份当前数据库的事务日志:BACKUP LOG [数据库名] TO dis

U盘强制拔出丢失数据的恢复方法(U盘写保护的四种解决方法)

● U盘强制拔出丢失数据的恢复方法 U盘从出现以来,小巧便携容量大深受人们的喜爱,不用像云盘一样需要下载,所以重要的文件我们都喜欢用U盘来传递数据,但是很多人使用U盘拔出时都没有使用"弹出U盘"功能,取出过程中电脑正在对U盘读写,这时候拔出很容易造成数据丢失或者导致U盘中的文件损坏无法打开,那么这种情况下我们应该怎么解决呢?下面小编就教大家如何恢复,一起来看看吧. 首先,下载一个数据恢复软件,比较好用的就有[迷你兔数据恢复软件](minitool中文版本),可以恢复U盘中被删除的数据,

读了这篇文章 AIX误删除数据的恢复将变得非常简单

在AIX环境下,若因维护误操作.存储mapping错误等,不小心将LV误删除,这种损失通常是巨大的.删除后的不当保护及恢复操作可能使数据无法恢复,也可能增加处理的时间与算法复杂度.如何有效保护现场,并选择正确的数据恢复方案是非常重要的. AIX的存储层有太多文章描述,做为铺垫,简要描述一下.PV相当于物理磁盘(对于存储,是存储映射过来的卷,对于操作系统而言,等同于物理硬盘),若干个PV组成一个VG,意味着可以将容量不同的存储空间合起来统一分配.为了实现这个目的,AIX把同一个VG的所有PV按相同

oracle 误删数据的恢复

误删数据的恢复 oracle恢复删除的数据 分为两种方法:scn和时间戳两种方法恢复. 一.通过scn恢复删除且已提交的数据 1.获得当前数据库的scn号 select current_scn from v$database; (切换到sys用户或system用户查询) 查询到的scn号为:1499223 2.查询当前scn号之前的scn select * from 表名 as of scn 1499220; (确定删除的数据是否存在,如果存在,则恢复数据:如果不是,则继续缩小scn号) 3.恢

本地磁盘显示0字节可用数据的恢复方法

在我们使用电脑的时候,文件数据都会保存在本地磁盘,也就是c盘d盘里,它的容量一般情况下都不会是0字节,但是就有网友遇到了打不开本地磁盘,硬盘0字节的情况,这该怎么办?本地磁盘显示0字节可用数据怎么恢复?下面就让小编为大家带来硬盘0字节可用数据恢复方法的相关教程吧. 硬盘里面出现的这种情况一般是DBR和FDT损坏,U盘出现这种情况一般是U盘前面的若干扇区都变成FFFF这样的没有用的数据破坏了DBR,FAT,FDT记录.碰到盘变成0字节的,建议不要格式化这个盘符,不然可能会把本来还是可用的文件分配表