之前在操作数据的时候,我在思考如何编写SQL,但是不小心按下了F8执行了drop语句,不小心删除了表,不过之后被我恢复了,但是之后我又不小心删错了表数据,虽然很快恢复了,但是我也找了几篇博客对比,虽然都是发生开发环境,但是找起来也很麻烦,因为以前都没有发生过这种情况,经过这两次的遭遇,我打算做一下总结,有备无患嘛。

备注:以下的方法仅仅适用于oracle数据库,其他数据库不适用

首先说误删数据,因为oracle数据库有闪回功能,所以有两种方案解决此问题:

一、误删数据根据时间来恢复

删除前的数据:

删除后的数据:

接下来我们就开始恢复数据

1、查询数据库当前时间,因为有些数据库的时间跟你电脑的系统时间不一致的(如下图),我们需要准确的时间

select sysdate from dual;

2、查询删除数据时间点之前的数据(此时查出来的数据可以加上条件来进行查询,以便查看你删除的数据是否在这个时间点存在)

select * from 表名 as of timestamp to_timestamp('2021-01-31 22:22:11','yyyy-mm-dd hh24:mi:ss');

执行以下语句可以查看全部的数据或者查看自己删除掉的数据,都是为了得到准确的时间点来恢复数据。

执行:select * from table_test as of timestamp to_timestamp('2021-01-31 22:20:11','yyyy-mm-dd hh24:mi:ss');

执行:select * from table_test as of timestamp to_timestamp('2021-01-31 22:20:11','yyyy-mm-dd hh24:mi:ss') where id in ('3','4','5');

3、拿到恢复的时间点来恢复数据

flashback table 表名 to timestamp to_timestamp('2021-01-31 22:20:11','yyyy-mm-dd hh24:mi:ss');

执行:flashback table table_test to timestamp to_timestamp('2021-01-31 22:20:11','yyyy-mm-dd hh24:mi:ss');

执行完上面这段语句,我们就能恢复数据了,但是我们执行之后可能会报错:ORA-08189:因为未启用行移动功能,不能闪回表;

碰到这种情况,我们直接执行下面的语句:

alter table 表名 enable row movement;

执行:alter table table_test enable row movement;

执行完之后我们再执行flashback开头那段语句就能恢复数据了。

二、误删数据根据数据库SCN恢复

这里就不截图了,都是利用了oracle的闪回功能,只是方式不同,本人比较喜欢用时间来恢复。

1、查询当前数据库的scn

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

查询到的当前值为:285095103

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

select * from 表名 as of scn 285095100;

执行:select * from table_test as of scn 285095100;

3、恢复数据

flashback table 表名 to scn 285095100;

执行:flashback table table_test to scn 285095100;

执行完上面这段语句,我们就也能恢复数据。若报错:ORA-08189:因为未启用行移动功能,不能闪回表;方法同方法一一样操作即可。

最后说误删表的情况,没有像误删表数据那样需要找时间或者scn,需要注意的是尽快恢复,时间长了oracle就不保存原来的数据了!!!

3、误删表恢复

当我们不小心用drop语句删除了表,我们将表以及数据都清除了,此时我们不用慌,只要我们执行下面的语句,就能恢复了。

flashback table 表名 to before drop;

执行:flashback table table_test to before drop;

然后再次查询,发现表以及数据都恢复到删除之前了。

oracle误删数据和误删表的恢复方法到这里就结束了。

oracle误删数据和误删表的恢复方法相关推荐

  1. win10误删的注册表能还原吗_win10系统误删注册表怎么办|win10系统误删注册表的恢复方法...

    注册表是win10系统中一个很重要的部件,如果不小心修改或误删注册表会导致系统崩溃,有什么办法可以修复?这时候大家就可以使用CMD对注册表进行修复,以下便是win10系统误删注册表的恢复方法.小编建议 ...

  2. truncate表后恢复方法总结

    truncate表后恢复方法总结 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识, ...

  3. python如何复制oracle数据_Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法...

    本文实例讲述了Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法.分享给大家供大家参考.具体实现方法如下: # Export Oracle database tables ...

  4. 【ClickHouse】查看数据库容量和表大小的方法(system.parts各种操作方法)

    文章目录 1.概述 本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 1.概述 转载:[ClickHouse]查看数据库容量和表大小的方法(system. ...

  5. oracle rman部分恢复,Oracle中使用RMAN备份及一些恢复方法

    使用RMAN备份并恢复 Backup  备份命令生成 Backup sets (备份集合),以 oracle 专有的格式保存, 由一个完全的所有的备份片集合构成,构成一个完全备份或增量备份. 1.1. ...

  6. oracle监听服务在哪里看,手把手教你处理win7系统oracle监听服务无法打开的恢复方法...

    电脑犹如汽车,在使用过程中需要正确的方法,否则就会有win7系统oracle监听服务无法打开的情况出现,大多用户还是第一次碰到win7系统oracle监听服务无法打开的问题,有不少爱学习的电脑小白曾试 ...

  7. Oracle查询数据提示ORA-00942:表或视图不存在

    问题背景 imp导入数据,查询数据提示表不存在,表名是小写的,加了双引号查询是可以的. 查看imp日志,发现导入表,表名是有双引号的!!! 解决方法 ALTER TABLE "aa" ...

  8. oracle清理数据及释放表空间

    查询表所占表空间大小 select t.tablespace_name,t.owner, t.segment_name, t.segment_type, sum(t.bytes / 1024 / 10 ...

  9. Oracle数据库文件坏块损坏的恢复方法

    故障描述 打开oracle数据库报错 "system01.dbf需要更多的恢复来保持一致性,数据库无法打开".经检测数据库文件发现sysaux01.dbf有坏块,sysaux01. ...

最新文章

  1. NLP入门必知必会(一):Word Vectors
  2. 图挖掘与多关系学习:工具与应用,亚马逊与CMU-WWW2021教程(附ppt)
  3. mysql crm动态列设计_值得收藏:一份非常完整、详细的MySQL规范
  4. 十八、启动jmeter时提示findstr不是内部命令的解决方案
  5. Spring MVC漏洞学习总结
  6. SqlServer中从字符串中获取项目指标方法charindex月substring结合
  7. Hadoop(MapR)分布式安装及自动化脚本配置
  8. 整数和小数的移码计算方法
  9. 数据可视化,带给你的惊艳并不止这一点!
  10. shell脚本执行oracle删除表,shell脚本操作oracle删除表空间、创建表空间、删除用户...
  11. 基于github和hexo搭建博客 本地hexo博客搭建
  12. C 免费窗体控件Krypton Toolkit 4 2 0的使用
  13. CleanCodeHandbook Chapter 4: Binary Tree(25-32)
  14. 面试题02.07.链表相交
  15. 【html、CSS、javascript-11】jquery-事件使用方法总结
  16. 能翻译整篇论文的软件有什么?
  17. Python人脸笑脸识别【人工智能】【CNN】
  18. js中什么是事件气泡,如何阻止事件气泡
  19. tapestry3常见问题
  20. 有没有学长学姐可以推荐一些本科酒店管理专业好研究的毕业论文题目?

热门文章

  1. redis池--JedisPool
  2. Cordova打包安卓APP教程以及出现的问题
  3. 【论文解析】NeRFInvertor: High Fidelity NeRF-GAN Inversion for Single-shot Real Image Animation
  4. redis主从配置+sentinel哨兵模式
  5. 数组和字符串心得体会
  6. 在Spring中一个bean依赖于另外一个bean,如何解决?
  7. Oracle 模糊查询性能优化
  8. 如何让计算机保持待机不休眠,如何让笔记本电脑合上盖之后不休眠或待机(Win10篇)...
  9. HashMap之TreeNode
  10. 关于笔记本外接显示屏相关问题的解决办法