一、数据delete并且commit提交之后的闪回

(一):根据时间来恢复:
1、查询数据库当前时间(目的是为了检查数据库时间是否与你电脑时间相近,避免时间不同而将数据恢复到错误时间点)
select  to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
2、查询删除数据时间点之前的数据
select * from 表名 as of timestamp to_timestamp('2018-08-11 16:12:11','yyyy-mm-dd hh24:mi:ss');
(若没有数据 ,将时间继续提前)
3、恢复数据
flashback table 表名 to timestamp to_timestamp('2018-08-11 16:12:11','yyyy-mm-dd hh24:mi:ss');
但是也可能会出现问题,比如报错:ORA-08189:未启用行移动功能,不能闪回表,不要怕,这个很简单;
alter table 表名 enable row movement;
然后再次执行上面SQL即可;
大功告成,数据恢复成功;

实例:

1、创建测试数据:

 select * from test_tmp;

2、删除IDS=3的数据并提交

 delete from test_tmp where ids = 3;
commit;

3、查找删除数据时间点之前的数据(操作delete之前的时间)

 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;--2018-11-09 16:34:32     --查看当前时间(往前推)
select * from test_tmp as of timestamp to_timestamp('2018-11-09 16:30:00','yyyy-mm-dd hh24:mi:ss'); --取一个delete之前的数据(原则离你删除最近的时间,防止其他人的操作数据库增删改发生问题)

ps(还有一个简单的方法就是用plsql时,你可以按ctrl+e查看操作历史,这样更为精确,时间选取在你delete和上一条dml语句之间,如下就可以选取2018/11/9 17:27:09前一点的数据,闪回前查看下数据)

 select * from test_tmp as of timestamp to_timestamp('2018-11-09 17:27:00','yyyy-mm-dd hh24:mi:ss');--查看这个时间点的数据

4、最后闪回数据

1 alter table test_tmp enable row movement;--此步骤在执行下面闪回sql报ora-08189时执行
2 flashback table test_tmp to timestamp to_timestamp('2018-11-09 17:27:00','yyyy-mm-dd hh24:mi:ss');

若报错:ORA-08189:未启用行移动功能,不能闪回表先执行下面语句再闪回

 alter table 表名 enable row movement;
alter table 表名 disable row movement;  --关闭

ps(将row movement设置为enable,有可能发生行的物理移动,行的rowid会变化,某一行更新时,如果更新的是分区列,并且更新后的列值不属于原来的这个分区,如果开启了这个选项,就会把这行从这个分区中delete掉,并加到更新后所属的分区。相当于一个隐式的delete+insert,但是不会触发insert/delete触发器。如果没有开启这个选项,就会在更新时报错。)

truncate table也无法使用此方法闪回

(二):根据数据库SCN恢复数据
1、查询当前数据库SCN号
select current_scn from v$database;(不能执行的话,切换到sys用户或system用户查询)

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

 select * from 表名 as of scn 759447472000;
select * from test_tmp as of scn 759447472000;

3、恢复数据

 flashback table test_tmp to scn 759447472000;

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

建议:用方案(一)

二、表被drop掉后闪回

1、drop表

 drop table test_bak;

2、闪回表

 flashback table test_bak to before drop;

(注:drop table test_bak purge;此操作无法闪回,因为已经直接清空了回收站)

(注:此为学习记录笔记,仅供参考若有问题请指正,后续补充......)

原文参考:https://blog.csdn.net/qq_35052774/article/details/52184164

原文参考:https://blog.csdn.net/rockpk008/article/details/38504931

oracle闪回(flashback)的部分实用操作(彻底删除的除外)的更多相关文章

  1. Oracle闪回flashback

    参考资料:Using Oracle Flashback Technology Oracle 11g的新特性闪回操作 闪回查询 闪回查询 闪回版本查询 闪回事务查询 闪回数据 闪回表 闪回删除 闪回数据 ...

  2. Oracle闪回flashback总结

    1.说明: Ø  采用的技术. 使用的是多个技术. 1.      闪回日志 2.      回收站 3.      回滚段 无法使用回收站的操作 Drop table xxx purge; Drop ...

  3. Oracle 闪回特性(FLASHBACK DATABASE)

    --===================================== -- Oracle 闪回特性(FLASHBACK DATABASE) --======================= ...

  4. Oracle闪回操作

    Oracle闪回操作 1. 记录当前时间或SCN 在数据库变动前记录时间或SCN SQL> select  to_char(sysdate,'YYYY-MM-DD HH24:mi:ss') fr ...

  5. Oracle 闪回归档(Flashback Database)

    cmd --管理员身份打开 sqlplus / as sysdba --管理数据库 shu immediate; --独占方式开始 startup mount --修改日期模式 alter datab ...

  6. oracle之三闪回flashback

    闪回 flashback 5.1 flashback 的功能:1)利用undo data回溯或撤销提交的数据,2)flashback log 使database 可以恢复到过去某个时间点,可以作为不完 ...

  7. oracle闪回表详解

    --- 说明闪回数据库 --- 使用闪回表将表内容还原到过去的特定时间点 --- 从删除表中进行恢复 --- 使用闪回查询查看截止到任一时间点的数据库内容 --- 使用闪回版本查询查看某一行在一段时间 ...

  8. Oracle闪回技术

    (一)闪回技术概要 闪回技术是数据库备份与恢复的重要补充手段,主要包括以下7种特性: 特性 原理 数据库支持 闪回查询(Flashback Query) 利用undo表空间中的回退信息,查询过去某个时 ...

  9. Oracle闪回表

    Oracle闪回技术 场景:测试环境数据库的表数据被误删除. 解决思路:使用闪回表技术 原理 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小 ...

  10. Oracle 闪回

    Oracle 闪回特性(FLASHBACK DATABASE) 本文来源于:gerainly 的<Oracle 闪回特性(FLASHBACK DATABASE) > -========== ...

随机推荐

  1. Http面试题

    http请求由三部分组成,分别是:请求行.消息报头.请求正文 HTTP(超文本传输协议)是一个基于请求与响应模式的.无状态的.应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接 ...

  2. Html创建表单

    echo Html::beginForm(['/site/logout'], 'post'); echo Html::submitButton(Yii::t('app', 'logout'), ['c ...

  3. 36 有n个整数,使其前面各数顺序向后移n个位置,最后m个数变成最前面的m个数

    题目:有n个整数,使其前面各数顺序向后移n个位置,最后m个数变成最前面的m个数 public class _036ExchangeSite { public static void main(Stri ...

  4. JavaScript词法作用域经典练习题

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...

  5. (转)走进AngularJs(六) 服务

    原文地址:http://www.cnblogs.com/lvdabao/p/3464015.html 今天学习了一下ng的service机制,作为ng的基本知识之一,有必要做一个了解,在此做个笔记记录 ...

  6. Eclipse下配置主题颜色

    插件地址  http://eclipse-color-theme.github.com/update 安装之后 下载安装好之后,点击window -> preferences -> Gen ...

  7. 淘宝IP地址库采集器c#

    个人原创.欢迎转载.转载请注明出处.http://www.cnblogs.com/zetee/articles/3482085.html 采集器概貌,如下: 最近做一个项目,功能类似于CNZZ站长统计 ...

  8. linux 文件系统基本结构

    1.Linux文件系统为一个倒转的单根树状结构 2.文件系统的根为"/" 3.文件系统严格区分大小写 4.路径使用"/",与Windows使用"\&q ...

  9. 负载均衡-会话保持,session同步(转载)

    一,什么负载均衡一个新网站是不要做负载均衡的,因为访问量不大,流量也不大,所以没有必要搞这些东西.但是随着网站访问量和流量的快速增长,单台服务器受自身硬件条件的限制,很难承受这么大的访问量.在这种情况 ...

  10. CentOS 下 zookeeper 安装

     搭建zookeeper需要几个条件 a. 配置Java环境  c. centos d. 下载 xshell5 (下载它只是为了更方便的使用linux)     一.新建一个myapp目录: 二.下载 ...