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)

转发:https://www.cnblogs.com/moonandstar08/p/6146935.html

原文地址:https://www.cnblogs.com/pongyc/p/11447322.html

时间: 2024-10-12 11:22:55

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.恢

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.恢复删除且已提交的

关于对SSD误删数据的恢复方法介绍

固态硬盘使用体验好,速度快,但硬盘最基本的的功能是存储,这就面临一个问题,用固态硬盘存储的数据如果被格式化或者误删了,能恢复吗? 固态硬盘用的是闪存,闪存有个特点,不像磁盘那样(磁盘数据可以被覆盖),在使用时不允许覆盖,只能先擦除在写入,也就是说只能在"空闲"的闪存空间进行写入. 如果像机械硬盘那样,只是简单标记一下的话,删除的数据其实还在,那这些闪存空间是不能被写入的,如果到用的时候再擦除,一是影响响应,造成固态硬盘的速度变慢,另一个可能会造成反复擦写某一地址,造成闪存的损坏,进而影

linux下误删数据文件恢复

linux下文件被删除可以用很多工具进行恢复,例如undelete(适合ext2,ext3).giis(不能恢复安装giis之前的文件).ext3grep(仅限ext3).R-linux(支持ext3,但是需要操作系统是32位的).还有testdisk等等就不一一介绍了.需要注意的是,我们误删文件后,最好保持现场. 下面不用工具来恢复误删的数据文件: [email protected]>select * from zbdba; select * from zbdba * ERROR at lin

oracle误删数据

有两种方案解决此问题,具体操作: 一:根据时间来恢复: 1.查询数据库当前时间(目的是为了检查数据库时间是否与你电脑时间相近,避免时间不同而将数据恢复到错误时间点) select  to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; 2.查询删除数据时间点之前的数据 select * from 表名 as of timestamp to_timestamp('2016-08-11 16:12:11','yyyy-mm-dd hh24:mi:ss

关于对移动硬盘误删数据的恢复方法介绍

移动硬盘能储存大量数据,由于操作不当可能会造成数据的丢失,那么在没有备份的情况下,移动硬盘丢失的数据还能找回来吗? 移动硬盘是以硬盘为存储介质,计算机之间交换大容量数据,强调便携性的存储产品移动硬盘可以提供相当大的存储容量,是一种较具性价比的移动存储产品.用户操作使用不当而造成数据丢失的情况也很常见,那么移动硬盘数据丢失到底还有恢复的可能吗? 选择迷你兔最新版v9.1进行恢复:可以恢复!但是要注意发现数据丢失后,就不要在该磁盘中在进行操作了,防止数据被覆盖和损坏.选择迷你兔v9.1,迷你兔数据恢

SQL Server无备份误删数据的恢复

在正式生产数据库中,因为客户现场管理不规范产生了一条错误数据,由于自身睡眠不佳加上客户方言表达,将编号记错,在没有备份的情况下,直接连远程数据库执行了delete操作. 由于备份设置的是每日0点,当天晚上九点钟的数据尚未进行备份,所以网上大多数基于备份文件的恢复就无法奏效. 上一篇博文(查询数据库各种历史记录)的对原理和操作进行了说明,但是具体操作时比较耗时,客户也比较着急,反复查找,找到一个工具,将下载链接提供在文末. 具体恢复步骤如下: 1.下载工具,略过不表. 2.解压后进入ApexSQL

电脑没有备份而误删数据?这样操作就好!

许多人在储存重要的数据时,或许没有备份数据的习惯,所以当数据丢失的时候才会后悔,怎么没有提前将数据备份起来呢?那么怎样才能将数据成功找回呢?本篇文章告诉你答案. 每天操作电脑处理很多数据,复制粘贴.保存删除是十分常见的操作,因此误删文件也是时常会发生的.在没备份的情况下误删数据怎么恢复?首选迷你兔数据恢复软件来操作. 迷你兔数据恢复软件是一款操作简单,功能强大的万恢复软件.免费恢复数据200M,.是U盘数据恢复,SD卡数据恢复,硬盘数据恢复,移动硬盘数据恢复的佼佼者,堪称数据恢复大师.且支持多种

Oracle误删一个表数据的恢复方案

同事找回时操作的数据库为oracle 10g , 之前删除方式为delete 不晓得trancate好使不 SCN(系统改变号),它的英文全拼为:System Change Number ,它是数据库中非常重要的一个数据结构. SCN提供了Oracle的内部时钟机制,可被看作逻辑时钟,这对于恢复操作是至关重要的 注释:Oracle 仅根据 SCN 执行恢复. 它定义了数据库在某个确切时刻提交的版本.在事物提交时,它被赋予一个唯一的标示事物的SCN .一些人认为 SCN 是指, System Co