Story:今天我们的一位客户问我们,他在程序中删除的所有数据是否都无法恢复。
除了计划的备份之外,我们每天缩小一次日志文件,并使用DELETE
命令在需要时删除表中的记录。
不过,只是为了它,我用编辑器(使用 PSPad)打开了 .mdf 文件,并搜索了一个特定的独特数据 - 我确信 - 在一个表中。
Problem:我在文件中跟踪它,然后执行DELETE
命令,它仍然在那里。
Question:
是否有一个我们不知道的特定命令可以从磁盘上物理删除记录?
注意:我们知道有一些特殊的技术可以从硬盘驱动器恢复丢失的数据,但在这里我谈论的是记事本爱好者!
文本可能仍然存在,但 SQL Server 不知道该数据具有任何结构或可用。
“释放的空间”只是被重新分配:没有被删除、压缩或清零。
The "即时文件初始化 http://msdn.microsoft.com/en-us/library/ms175935.aspx“功能也依赖于这一点(不将整个 MDF 文件清零),并且以前的磁盘数据仍然可用于全新的数据库:
由于删除的磁盘内容仅在新数据写入文件时才会被覆盖,因此删除的内容可能会被未经授权的主体访问。
编辑:要回收空间:
改变索引...重建 http://technet.microsoft.com/en-us/library/ms188388%28SQL.90%29.aspx是最好的办法
使用 NOTRUNCATE 的 DBCC SHRINKFILE http://msdn.microsoft.com/en-us/library/ms189493%28SQL.90%29.aspx可以将页面压缩到由释放页面引起的间隙中,但不会回收空间in已删除行的页面
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)