资讯专栏INFORMATION COLUMN

Delete,drop操作后如何恢复数据

IT那活儿 / 1921人阅读
Delete,drop操作后如何恢复数据
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!! 

  
最近在学习Oracle数据库库过程中,如果我们delete表中的数据或drop表后,又后悔了,那该如何进行恢复数据呢?
我们知道如果DML操作没有提交事务前,是可以通过rollback进行回退,但是DDL操作是自动提交事务的,在进行相关知识点查询以及进行实验操作后,接下来就对delete,drop操作后如何进行恢复数据进行一个模拟实验。


01

当我们删除一张表的数据时:
如果这时候我们想要恢复数据,首先就要知道删除数据时的时间:
为什么了解时间呢,因为Oracle数据库有个机制就是undo保存的机制默认时15分钟,误删除delete可以通过闪回查询过去15分钟进行恢复,但是不能跨越DDL操作:
通过时间戳查询delete过去前一分钟的数据:
查询出数据进行重新insert就可以了:

02

当我们drop一张表如何进行恢复,这就牵扯到Oracle数据库回收站的相关知识,类似于我们window系统的回收站,当表drop后,都会放在回收站,可以进行恢复,当回收站满了此时会自动清除或我们手动清除回收站时,表被清除则不能被恢复,注意sys用户的表空间时systen,所以不具有回收站的功能。
删除表:
通过show recyclebin查看回收站,可以看到刚刚删除的student表,而我们在数据库中查询不到相关表的数据,其实是在回收站机制,将表的名字更换的一个新的id,回收站的数据只能做查询不能做DML,DDL操作;
查询回收站中表新的id:
通过flashback恢复表:
如果回收站有几张名字相同的表,在进行恢复时则回恢复最近一次drop的表;
如果Oracle数据库存在表名与回收站表名相同时,则进行恢复时则报错,需要改名:
更改名字:
如何清理回收站,普通用户清理只清理当前用户的回收站,sysdba用户作为管理员,使用此命令则清理所有用户下的回收站数据:
关于delete,drop表如何进行恢复数据实验以及相关知识点到此结束,谢谢大家!

END



本文作者:王 振

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129458.html

相关文章

  • MySQL误操作如何快速恢复数据

    摘要:基本上每个跟数据库打交道的程序员当然也可能是你同事都会碰一个问题,误操作后如何快速回滚比如,一张表,忘加限制条件,整张表都没了。误操作后,能快速回滚数据是非常重要的。登录确认,数据回滚成功。所以,误操作的话一般只能通过备份来恢复。 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表都没了。...

    taohonghui 评论0 收藏0
  • MySQL学习从这里出发!

    摘要:聚合函数将一列数据作为一个整体,进行纵向的计算。计算个数一般选择非空的列主键计算最大值计算最小值计算和计算平均值注意聚合函数的计算,排除值。 MySQL数据库 开发学习中,想满足一些需求,无疑需要经常与数据打交道,例如,我们在使用IO的一些技术的时候,常常需要将一些数据存储到外部文件,可能大家会问,我们初学的时候常常会简单的保存一些数据到 .txt 文件中,为什么还需要数据库呢? (一...

    adam1q84 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<