极佳数据库修复 13510228421

www.sql110.com

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

误删除表需要恢复该表,要注意几个问题,

第一 删除表后是否新建表了 是否插入数据了。

第二 删除表后是否立即关闭SQL服务了/

第三 数据库是否是完整模式

我们先来了解下 删除表做了那些操作,所有系统表的关于该表的记录会清除掉,例如表名字 ID 字段 索引 外间 触发器等。

其次 该表占用的页面在每个PFS页面给清除掉。那么基本上这个表就算是被删除掉了。

一般这种故障数据库管理员会用老备份跟事务日志还原到时间点,但这个要求是完整模式 而且容易出现LSN不匹配故障导致无法恢复。

数据库修复公司 怎么做的?如果删除表之后 您又新建表插入了新的数据,那么这个是很危险的,因为会这些操作会占用SQL数据库认为没有被任何对象使用的页面 这样就导致我们删除的表之前占用的页面很可能被新的表新的数据,或者其他表的数据给占用掉。那么将导致无法恢复 或者数据无法恢复完整。如果是删除表后就立即关闭服务或者数据库 那么肯定是完美的恢复的。

SQL2000每个表只有一个OBJID号,这个号在他的每个页面的第 24 25 26 27 四个字节就是这个号码/ 表被删除后就无法通过SQL语句获取表ID 那么就只能通过文件方面来分析,.或者可以还原老备份 来用SQL语句查询表ID。知道表ID就可以利用表ID定位删除掉的表的页面,然后虚拟系统表提取所有页面上的数据。、

自从SQL 2005 开始SQL数据库有了分区概念,这个东西很不利用数据恢复,我曾见过 一个表 有528个分区个分配ID 每个分区 每个分配ID都不一样 更疯狂的是几乎每个分配ID都写了数据,。每个分配ID就代表一个虚拟表ID,可想而知 要恢复这种删除的表 如果没有老备份,那么将是非常痛苦的 因为你要找到每个分配ID 提取528次 。

恢复SQL 2008 2008R2 2012 数据库也都跟SQL2000一样过程 唯一不一样的就是分区概念、

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