oracle数据库delete 后数据恢复

原创 2016年08月31日 09:06:41
1.获得当前的SCN

select dbms_flashback.get_system_change_number from dual;

SCN(系统改变号),它的英文全拼为:System Change Number ,它是数据库中非常重要的一个数据结构。

  SCN提供了Oracle的内部时钟机制,可被看作逻辑时钟,这对于恢复操作是至关重要的
  注释:Oracle 仅根据 SCN 执行恢复。

  它定义了数据库在某个确切时刻提交的版本。在事物提交时,它被赋予一个唯一的标示事物的SCN 。一些人认

为 SCN 是指, System Commit Number ,而通常 SCN 在提交时才变化,所以很多情况下,

  这两个名词经常被交替使用。

  究竟是哪个词其实对我们来说并不是最重要的,重要的是我们知道 SCN 是 Oracle 内部的时钟机制, Oracle 通

过 SCN 来维护数据库的一致性,并通过SCN 实施 Oracle 至关重要的恢复机制。

      2.由于数据库没有停,因此scn号也在不断变化,因此需要查出数据在哪个scn点的时候还是存在的
      SQL> select count(*) from w as of scn 117854000; ------查看数据在scn号为117854000时是否存在
3.select count(*) from 表名 as of scn 10671000; 10671000为或得的SCN后
需要往前调整scn编号
4.insert into t1 select * from t1 as of scn 10670000;
commit;
现在稍微总结一下:

        在做数据表的删除操作之前,一点要谨慎,尤其是在生产系统不能停机的情况下,要么首先将数据库或者表备份

一下,再进行删除,这样就算需要恢复也可以用备份进行恢复;如果删除时候没有做相关备份,在删除之前一定

要先查下系统当前scn,并且验证出数据在哪个scn点的时候还是存在的(这点很重要,如果没有找到,就无法恢

复删除的数据)恢复的时候就基于这个scn点的恢复。

版权声明:本文为博主原创文章,未经博主允许不得转载。

oracle数据库delete删除数据恢复的方法

本文我是在论坛上看过收集整理测试过。  SCN(系统改变号),它的英文全拼为:System Change Number ,它是数据库中非常重要的一个数据结构。   SCN提供了Oracle的内部时...
  • wangdinghai365
  • wangdinghai365
  • 2013年02月20日 11:51
  • 16519

恢复oracle 中误删的表 或delete 删掉的数据恢复

查看回收站中表 select object_name,original_name,partition_name,type,ts_name,createtime,droptime from recyc...
  • taking_wang
  • taking_wang
  • 2016年07月15日 13:09
  • 3337

D_db2重定向恢复+日志前滚,恢复误删除的数据

重定向恢复+日志前滚,恢复误删除的数据 转自:
  • g18560
  • g18560
  • 2014年06月19日 23:34
  • 1977

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

作为一个程序员,数据库操作是必须的,但是如果操作失误,一般都会造成比较严重的后果。 今天一不小心,干了一件揪心的事情,将正在使用的组织机构误操作执行了delete,顿时大脑有点缺氧,感觉蒙圈了(相信...
  • qq_35052774
  • qq_35052774
  • 2016年08月11日 17:23
  • 8858

重装系统后如何恢复oracle10g数据…

环境:Windows server 2003  数据库: oracle10g  事故原因:由于系统原因,重做操作系统。  经过:公司服务器系统无法启动,所以不得已重装系统,但是现在已经无法备份ora...
  • lsfhack
  • lsfhack
  • 2017年04月08日 08:35
  • 732

db2 数据恢复-快速

1、Load 方法装入数据:   export to tempfile of del select * from TABLENAME where not 清理条件;   load from tem...
  • zwhfyy
  • zwhfyy
  • 2014年08月04日 17:38
  • 2088

oracle数据库误删数据恢复方法

1、查询过去某指定时间点数据库表中的数据(不需要开启闪回) select * from 表名 AS OF TIMESTAMP TO_TIMESTAMP('2017-05-01','yyyy-mm-dd...
  • Wewon_real
  • Wewon_real
  • 2017年07月01日 10:44
  • 165

ORACLE数据库误操作后数据恢复方法

1、查询误操作之前的数据,只需要保证时间在误操作之前即可 select * from YOUR_TABLE as of timestamp to_timestamp('2017-11-11 ...
  • u012836851
  • u012836851
  • 2017年11月21日 17:52
  • 94

重装系统后mysql数据恢复

我原来把mysql装在d盘。最近重装系统,不能用了。怎么办?我怎么既能继续使用mysql又能将原来的数据转移到新安装的mysql上? 1、把原来mysql安装目录下的data文件夹拷出来; 2、卸...
  • gyg1990
  • gyg1990
  • 2014年10月19日 12:11
  • 1256

Oracle表数据delete后恢复(救命用的)

今天改bug改的有点烦,最后发现问题出现在数据库,所以没做备份也没考虑太多,操作表数据的时候将一张以为没用的菜单关联表的表数据给删了好多条。然后登陆系统,哇。。。扑街。 于是查找了资料发现由于是del...
  • maple_fix
  • maple_fix
  • 2017年12月15日 15:04
  • 129
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle数据库delete 后数据恢复
举报原因:
原因补充:

(最多只允许输入30个字)