极佳数据库修复 13510228421

www.sql110.com

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

实战 SQL Server 2008 数据库误删除数据的恢复

一个客户SQL数据库2008R2版本 其中一个很大的表 里面有15W记录被请delete from table 删除掉了。寻求恢复、。

首先要明白 删除表数据,SQL做了那些操作,

1 SQL重置系统索引表里改变的一些值

2 SQL会将每行标识更改为删除状态,

3 SQL会将页面行计数清零(大部分情况下)

4 SQL会将页面每行偏移地址清除掉

5 SQL会将该表IAM分配页面和PFS页面相关该表占用页记录清除掉。

完成以上,就整个删除数据过程完成。

在数据库日志LDF文件里面会存储每个删除掉的行,。如果是简单模式的日志就不行了。

所以 我们恢复删除的数据 可以从两个地方恢复 一 MDF文件 二 LDF文件 

如果你的数据库是完整模式 且有最近老备份 那就可以利用日志恢复,如果没有老备份 可以下载极佳SQL数据库日志恢复工具尝试从日志读取数据. 

我们下面主要针对LDF文件是简单模式时,怎样从MDF文件恢复数据

首先拷贝一份数据库,这个很重要,永远不要再原库上处理

我们从MDF文件恢复数据,只需要讲该表占用的数据页面的行偏移地址写回去 然后把每个页面的行总数填写回去 然后使用SQL数据库修复工具就可以读取到数据了。 当然你也可以自己开发个软件根据字段结构从该表页面取数据.

我们自己目前对这两种方法基本不是第一个考虑,我们优先的处理方法 考虑从MDF和日志文件逆向恢复数据。

关于这个技术您可以查看这个页面 

 

 

posted on 2013-09-30 12:11  极佳数据库  阅读(2040)  评论(0编辑  收藏  举报