暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle库误操作自救操作

michaelliu 2024-09-26
88

下面通过试验来演示如何在误操作和迅速挽回数据


首先要记得自己误操作的时间


workflow_base表33条数据


误操作对表workflow_base表进行了delete操作(箭头1)

表中数据被清空了(箭头2 select该表已经没有数据了)

恢复部分


恢复脚本:

alter table workflow_base enable row movement;

flashback table workflow_base to timestamp to_timestamp('2020-10-21 08:41:50','yyyy-mm-dd hh24:mi:ss');

alter table workflow_base disable row movement;

进行恢复操作,箭头所指的时间就是误操作前的时间,时间一定要确定是误操作前的时间


闪回操作后,对该表进行select操作,被误删的数据恢复回来了。

恢复注意事项:

一、生产环境误操作后,如果误操作的是非常重要的业务表,原则上立即停掉OA,然后进行恢复操作。

二、恢复操作是利用了数据库闪回特性,闪回是有时效性的,所以在误操作后越早进行越好,不要超过一个小时,太晚的话,数据就闪不回来了。

三、如果不是人工操作的,是上线某个新功能后,测试发现数据没按正常业务逻辑在Delete或者Update数据,那么立即停止OA,立即恢复数据,不要在线排查具体原因,因为排查原因时间是不确定的,排查时间太长,等到想恢复的时候已经错过了闪回的时效性了,这个时候误操作就演变成不可逆的严重事故了。数据恢复后再去排查原因不迟。

如何规避误操作

对于Delete和Update语句在操作前,先Selete出来确认下,确认是自己要操作的数据,然后再进行操作。


比如要对workflow_base表id=11的表进行Delete或者Update操作

在操作前,先通过Select语句选出该条数据,确认是要操作的数据后再进行Delete或者Update操作。


那么Select也看过数据了但是还是不确认,因为要改完数据后,来通过前端页面验证对不对或者过两天后又想还原回来怎么办。

对于这种情况,操作前先对要操作的数据进行备份,比如操作的是workflow_base表id=11的数据,那么在操作前,把该条数据备份到一个表里去,后边反悔了,可以通过该备份表找回数据。

create table workflow_base_ID11

as

select * from workflow_base where id=11;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论