记一次表误删除的调查和恢复

2024-02-09 18:58
文章标签 恢复 一次 调查 误删除

本文主要是介绍记一次表误删除的调查和恢复,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

下午一个客户联系我说他发现数据库里面的一张表被清空了,不知道是谁干的,然给我帮他找出来,再看能不能修复数据,表的数据量不是太大。

询问了,前几天还有数据的,那么估计也就是最近一两天数据被清空的,由于客户没有做审计,所以能不能找到只能尽力而为。

下面是具体步骤:

1.首先大概定位一下A表被清空是delete全表还是truncate全表

通过查询dba_objects下的last_ddl_time,看表的最近一次发生ddl的时间。发现是去年的时间,那么应该是执行了delete from A;的操作。

2.查询相关的sql视图

select * from  XXXX where sql_text like '%A%';

一般需要查询的sql视图有v$sqlarea,v$sqltext,dba_hist_sqltext

v$sqlarea是共享sql区的sql,90%你的delete的语句已经被清理出了sql共享区,基本不会查到

v$sqltext是保存在sga中的,v$sqlarea中的sql可能被刷出了shared pool,但是有可能在v$sqltext中还存在,应该是oracle为v$sqltext有单独的划分了一个buffer

dba_hist_sqltext是awr用到的保存的历史sql,他的保存时间根据你awr的保留时间而定,默认是7天,而且这个视图的数据是在数据文件中的,不是保存在内存中,因此哪怕数据库重启也不会丢失,如果在上面的视图中还没有查到可以到此视图中查询,一般都可以查到。

我们通过查询上述几个视图在v$sqltext发现了一个delete from a;表的操作,并且时间定位到是上午10点多,得到了sql的sql_id.

3.查询相关的session视图

通过sql_id查询以下几个session视图:v$session,v$active_session_history,dba_hist_active_sess_history

v$session里显示的当前正在连接的session,可以查看sql_id和prev_sql_id,一般你也是查不到的,谁会干完坏事还继续连在数据库上呢,是我早就溜了~~

v$active_session_history是ash使用的到的视图,当ash buffer没有被重用的时候,会一直保留在其中除非重启

dba_hist_active_sess_history是awr用到的视图,默认也是保留7天,而且数据保存在数据文件中,不会因为重启而丢失。

我们这里通过查询v$active_session_history查询到了删除表的会话信息。得到了会话的program,username,machine等信息,到此表的调查就结束了。


既然知道了表删除的具体时间,而且表是通过delete语句删除的那么我们就可以通过logmnr日志挖掘将表中的数据恢复出来,如果是truncate操作清空的表只能通过备份恢复的方法了,具体的logmnr的操作就不在这里叙述了,网上文档比较多,也比较简单~~大笑

这篇关于记一次表误删除的调查和恢复的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/695037

相关文章

Python判断for循环最后一次的6种方法

《Python判断for循环最后一次的6种方法》在Python中,通常我们不会直接判断for循环是否正在执行最后一次迭代,因为Python的for循环是基于可迭代对象的,它不知道也不关心迭代的内部状态... 目录1.使用enuhttp://www.chinasem.cnmerate()和len()来判断for

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

电脑多久清理一次灰尘合? 合理清理电脑上灰尘的科普文

《电脑多久清理一次灰尘合?合理清理电脑上灰尘的科普文》聊起电脑清理灰尘这个话题,我可有不少话要说,你知道吗,电脑就像个勤劳的工人,每天不停地为我们服务,但时间一长,它也会“出汗”——也就是积累灰尘,... 灰尘的堆积几乎是所有电脑用户面临的问题。无论你的房间有多干净,或者你的电脑是否安装了灰尘过滤器,灰尘都

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

如何恢复回收站中已删除/清空的文件

回收站清空后如何恢复已删除的文件?是否可以恢复永久删除的文件?或者最糟糕的是,如果文件直接被删除怎么办?本文将向您展示清空回收站后恢复已删除数据的最佳方法。 回收站清空后如何恢复已删除的文件? “回收站清空后我还能恢复已删除的文件吗?” 答案是肯定的,但是在这种情况下您将需要一个  回收站恢复工具 来从回收站中检索文件: 错误/永久删除回收站或任何数字存储设备中的文件 直接删除的文件/

BT天堂网站挂马事件后续:“大灰狼”远控木马分析及幕后真凶调查

9月初安全团队披露bt天堂网站挂马事件,该网站被利用IE神洞CVE-2014-6332挂马,如果用户没有打补丁或开启安全软件防护,电脑会自动下载执行大灰狼远控木马程序。 鉴于bt天堂电影下载网站访问量巨大,此次挂马事件受害者甚众,安全团队专门针对该木马进行严密监控,并对其幕后真凶进行了深入调查。 一、“大灰狼”的伪装 以下是10月30日一天内大灰狼远控的木马样本截图,可以看到该木马变种数量不

(function() {})();只执行一次

测试例子: var xx = (function() {     (function() { alert(9) })(); alert(10)     return "yyyy";  })(); 调用: alert(xx); 在调用的时候,你会发现只弹出"yyyy"信息,并不见弹出"10"的信息!这也就是说,这个匿名函数只在立即调用的时候执行一次,这时它已经赋予了给xx变量,也就是只是

flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位

flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位 一、背景二、定位问题三、解决方法 一、背景 flume系列之:定位flume没有关闭某个时间点生成的tmp文件的原因,并制定解决方案在博主上面这篇文章的基础上,在机器内存、cpu资源、flume agent资源都足够的情况下,flume agent又出现了tmp文件无法关闭的情况 二、