Oracle 恢复误删表(drop)

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:3

Oracle 恢复误删表(drop)

时间2021年 07月30日周五下午5点时分,

 drop table T_BD_GeneralAsstActType;

简单的三个字母一个标点成了心扑通扑通的开始,已是周五马上放假的心又收了回来。避免被负责人骂(虽然并不会这样,但自己做错的事终究还是羞愧难当),我首先想到的就是寻求恢复表的方法。

第一步:万能的百度

遇事不决先百度,看到诸如此类的博文https://www.cnblogs.com/zzh941210/p/9355370.html后,心中大定。看来恢复一下并不会很困难

简单来说只需要两个步骤

-- 查询删除记录
select * from recyclebin

-- 执行恢复命令
flashback table "需要恢复的表名" to before drop

第二步:连接数据库

这个过程完全是自己摸索

  • XShell连接到服务器

  • sqlplus命令登陆Oracle 数据库

  • 执行  select * from recyclebin;

  • 执行  flashback table "需要恢复的表名" to before drop;

踩坑踩坑,总是有大大小小的坑

  • 找到用户名密码

  • 登陆数据库

sqlplus  用户名  密码

  • 查询

执行select * from recyclebin 时 因为数据量特别大 建议加过滤条件  另外在查询分析器中执行 可以获得较好的查看体验。本来想使用navicat 连接 但是死活连不上 ,因为之前也没怎么操作过Oracle 数据库,实在是还没找到解决办法。

  • 恢复

在sqlplus中执行(查询分析器好像不支持这个命令) flashback命令进行 恢复时 切记 flashback table "需要恢复的表名" to before drop

表名需要使用双引号引起。暂不清楚是否有数据库版本的问题, 另外 表名一定要与 查询出的表名完全一致,大小写也要一致。

总结

世上无难事,只怕有心人。

这次教训虽然发生在测试环境,最最最不济可以从正式环境中将表恢复到测试环境中来,但即便这样 历史数据依旧可能会存在问题。  所以在执行sql语句时一定要万分小心 尤其是 update、delete、drop这样的命令时、 update一定要主要追加条件。

二一个遇事不要慌张,一定有解决问题的方法。一定要多问,多搜索,多思考。



惊喜不惊喜,刺激不刺激,我都直接把drop这个词忘掉

Oracle 恢复误删表(drop)

时间2021年 07月30日周五下午5点时分, drop table T_BD_GeneralAsstActType;简单的三个字母一个标点成了心扑通扑通的开始,已是周五马上...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息