已经“彻底”删除的数据是怎么找回来的?

   问:为什么一些“彻底”删除的数据还可以找的回来还可以恢复呢?

  答:有的朋友会感到奇怪:我明明把数据删除了,并且清空了回收站,为什么又能够找回来呢?这就得从硬盘记录数据的原理说起了:当我们向硬盘里存放文件时,操作系统首先会在硬盘的文件分配表内写上文件名称、大小,并根据数据区的空闲空间在文件分配表上继续写上文件内容在数据区的起始位置,然后开始向数据区写上文件的真实内容,这样一个文件存放操作才算完毕。而当我们删除文件时,其步骤却比建立文件要简单得多。我们执行删除操作后,系统只是在文件分配表内在该文件前面写一个删除标志,表示该文件已被删除,他所占用的空间已被“释放”,其他文件可以使用他占用的空间。所以,当我们删除文件又想找回它(数据恢复)时,只需用工具将删除标志去掉,数据就被恢复回来了。当然,恢复的前提是没有新的文件写入,该文件所占用的空间没有被新的内容覆盖。

时间: 2024-12-25 20:59:10

已经“彻底”删除的数据是怎么找回来的?的相关文章

如何不使用rman工具恢复被rm删除的数据文件

朋友一时兴起使用了rm**,删除了oracle数据文件后找我帮忙,我在帮朋友恢复数据库时,遇到了当recover时,报错不能找到28739号归档日志,这样我就不能同步scn,更不能打开数据库了.这是归档日志不连续的典型案例,我最后告诉他要做好心理准备.事情还没有完,这个真实案例引发了我的思考,如果当时在朋友没有做rman拯救措施的情况下,可不可能不使用rman即可恢复数据文件呢!最后我找到了答案:) 案例 1.系统solaris SunOS TJLT-YDWG6 5.9 Generic_1223

Excel2003/2007中删除重复数据

大家在使用Excel表格总汇大批量数据时,难免会发现一些重复行和重复数据,这时我们就应该将那些重复的数据删除,以免会影响我们的工作,在Excel中删除重复数据和重复行的方法有N多,Excel2003删除重复数据和重复行方法: 第1种情况:重复行的内容完全一致 如下图所示,第2行和第4行的内容完全相同: 操作方法: 选中表中的所有记录(注意,此时应将每列的标题行也选择上,否则筛选完的数据表中将不再包含有该标题行),执行"数据"菜单→"筛选→高级筛 选"命令;在弹出的&

Excel 2007中删除重复数据的小技巧

  第一步:找到重复数据 首先打开Excel,选中需要整理的数据区域,然后选择"开始"选项卡中的"条件格式",在下拉菜单中选择"突出显示单元格规则/重复值",在弹出的"重复值"对话框中选择一个合适的样式,以便突出显示重复值,没有特殊要求的话,保持默认即可,最后单击"确定",重复值已被高亮显示了. 图1 Excel 2007显示重复值 第二步:删除重复值 找出重复数值后,单击切换到"数据"

Excel 2007中删除重复数据的办法

  Excel 2007中删除重复数据的办法 如果经常跟数据打交道,最头痛的莫过于收集到大量信息中,有一部分重复数据,如果找到并删除他们实在是一件麻烦的事情,不过在Excel 2007中可以很轻松的解决. 第一步:找到重复数据 首先打开Excel,选中需要整理的数据区域,然后选择"开始"选项卡中的"条件格式",在下拉菜单中选择"突出显示单元格规则/重复值",在弹出的"重复值"对话框中选择一个合适的样式,以便突出显示重复值,没有

MySQL中删除重复数据的简单方法_Mysql

MYSQL里有五百万数据,但大多是重复的,真实的就180万,于是想怎样把这些重复的数据搞出来,在网上找了一圈,好多是用NOT IN这样的代码,这样效率很低,自己琢磨组合了一下,找到一个高效的处理方式,用这个方式,五百万数据,十来分钟就全部去除重复了,请各位参考. 第一步:从500万数据表data_content_152里提取出不重复的字段SFZHM对应的ID字段到TMP3表 create table tmp3 as select min(id) as col1 from data_content

T-SQL技术收集——删除重复数据

原文:T-SQL技术收集--删除重复数据          在工作和面试中,经常出现如何查询或者删除重复数据的问题,如果有主键,那还好办一点,如果没有主键,那就有点麻烦.          当一个表上没有辅助键时,如果使用SSMS界面来删除,就会报错(注意,本人测试环境是2012,所以界面可能会有所不一样,但是对结果没有任何影响):          因为在创建表后插入数据是没有做判断.但是在删除时,为了保证数据库的一致性,RDBMS还是会做判断从而拒绝执行这类操作. 说明:         

通过Transaction Log(fn_dblog)取回被删除的数据

最近跟 James 讨论为何「ApexSQL Log」这个工具可以读到被删除的数据呢? 原来它是透过 Transaction Log 来读取数据的! 于是透过 Transaction Log 到网络上有找到「SQL Server – How to find Who Deleted What records at What Time」直接透过 Transaction Log 来把被删除的数据给找回来! 蛮神奇的,只是Run在我的区分大小写的DB中会发生错误,因为有些字段名称大小写没有一致,于是就调

SQL去除重复删除重复数据(千万级数据量)

MYSQL里有五百万数据,但大多是重复的,真实的就180万,于是想怎样把这些重复的数据搞出来,在网上找了一圈,好多是用NOT IN这样的代码,这样效率很低,自己琢磨组合了一下,找到一个高效的处理方式,用这个方式,五百万数据,十来分钟就全部去除重复了,请各位参考. 第一步:从500万数据表data_content_152里提取出不重复的字段SFZHM对应的ID字段到TMP3表  代码如下 复制代码 create table tmp3 as select min(id) as col1 from d

MYSQL中delete删除多表数据与删除关联数据

 1.delete from t1 where 条件 2.delete t1 from t1 where 条件 3.delete t1 from t1,t2 where 条件 4.delete t1,t2 from t1,t2 where 条件 前3者是可行的,第4者不可行. 也就是简单用delete语句无法进行多表删除数据操作,不过可以建立级联删除,在两个表之间建立级联 删除关系,则可以实现删除一个表的数据时,同时删除另一个表中相关的数据. 1.从数据表t1中把那些id值在数据表t2里有匹配的