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‘);

(若没有数据 ,将时间继续提前)

3、恢复数据(激动人心的时刻)

flashback table 表名 to timestamp to_timestamp(‘2016-08-11 16:12:11‘,‘yyyy-mm-dd hh24:mi:ss‘);

大功告成,数据恢复成功;

但是也可能会出现问题,比如报错:ORA-08189:未启用行移动功能,不能闪回表;

不要怕,这个很简单;

alter table 表名 enable row movement;

然后再次执行上面SQL即可;

二:根据数据库SCN恢复数据

1、查询当前数据库SCN号

select current_scn from v$database;(不能执行的话,切换到sys用户或system用户查询)

查询到的当前值为:91799986

2、缩小SCN号查询被删除表数据(若无数据继续缩小SCN,由于数据库操作不止一人,SCN号变化比较多,可以多缩小几个号)

select * from 表名 as of scn 91799980;

3、恢复数据

flashback table 表名 to scn 91799980;

恢复完成。若报错:ORA-08189:未启用行移动功能,不能闪回表;结果方案同上。

时间: 2024-10-12 11:23:00

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

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

关于oracle找回误删数据

对于一个开发而言,在项目即将上线进行上线前测试阶段,这个过程往往会出现一些bug,那么我们一般就会在客户现场去直接解决这些问题.那么客户现场的机器上面我们可能会连接很多的数据库,包括客户生产数据库.有时候在我们连接工作十数小时的时候,由于人过度疲劳,可能会造成误删客户生产数据库的情况,那么一些很重要的数据被我们的一个不小心删除了,对于很多开发者来说,想到更多的大概就是 有没有备份数据库? 把备份数据库重新导一份到生产环境上,等等--那么,如果客户没有备份呢?那么我们该怎么办呢?节点恢复数据库,这

Oracle core02_数据块

数据更改 oracle core完成了oracle的核心功能,recovery,读一致性等. 深入的了解oracle的机制,就从一个最简单的更新开始.对于oracle来说,最大的一个特性就是写了两次数据: 写数据到数据文件中 写数据的变更日志到日志文件中 对于最常见的数据更新来说,oracle主要做了一下动作: 创建数据块变更的日志记录即 redo change vector 创建数据块的映像即undo record 创建undo数据块变更的日志记录 更新数据块 下面就以update为例:记录变

JavaWeb学习总结(三十五)——使用JDBC处理Oracle大数据

一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据 量非常大的业务领域(如图象.档案等). LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(Binary Large Object),适用于存贮非文本的字节流数据(如程序.图象.影音等).而CLOB,即字符型大型对象(Character Large Obj

关于Oracle导出数据的几个错误EXP-00008,ORA-00904,ORA-01003,EXP-00091

首先说明数据库的版本 服务器:10.2.0.5.0 客户端:11.2.0.1.0 导出会报错 EXP-00008: 遇到 ORACLE 错误 1003 ORA-01003: no statement parsed 和 EXP-00008: 遇到 ORACLE 错误 904 ORA-00904: "MAXSIZE": invalid identifier 这小样问题,怎么也不会想到是客户端不能向下兼容吧,困了我很久.我决定试下是不是客户端不兼容问题,果然是这样的. 装了个虚拟机,客户端版

oracle rename数据文件的两种方法

oracle rename数据文件的两种方法 2012-12-11 20:44 10925人阅读 评论(0) 收藏 举报  分类: oracle(98)  版权声明:本文为博主原创文章,未经博主允许不得转载. 第一种 alter tablespace users rename datafile '==' to '***'; 这种方式需要数据库处于open状态,表空间在offline的状态下才能更改. [sql] view plain copy SQL> alter tablespace user