我误删除了SQL Server中的数据库,马上停止了对硬盘的一切操作,然后用EasyRecovery恢复,虽然EasyRecovery能找到删除的MDF和LDF文件,
可是在SQL中却无法挂载,我用16进制编辑软件查看MDF文件,发现有开始和结尾的数据是错误的,只有中间一部分是正确的.
请问我还能恢复吗?在线等待.
要是恢复不了我就惨了啊....

解决方案 »

  1.   

    用log explorer for sqlserver从.ldf文件中恢复前提是你记录了日志
      

  2.   

    文件都删了,虽然用EasyRecovery恢复了可是文件已经有损坏,所以是无法恢复了log   explorer 可以恢复数据,但不能恢复数据库文件
      

  3.   

    ldf是EasyRecovery恢复的,可能也有错误
      

  4.   

    示例
    下面的示例将 pubs 中的两个文件附加到当前服务器。EXEC sp_attach_db @dbname = N'pubs', 
       @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf', 
       @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
      

  5.   

    你可以尝试用finaldata这个软件吧误删除的mdf和log文件找回来,
    如果你mdf文件删除后,mdf文件所在的那个盘没有再拷贝文件过去,那么你吧finaldata软件安装导另外一个盘,这样你有90%的可能性找回你的mdf文件,如果mdf文件所在的那个盘再mdf文件删除后有有文件变更操作,比如在那个盘里面拷过去了其它文件,就有可能把删除的mdf文件破坏,这样找回mdf文件的可能性就大大降低了
      

  6.   

    看来你的情况很严重,你可以使用一下的方法试着把mdf,log附加到数据库中,
    之后问题就好解决了
    --只有mdf文件的两种情况的解决办法由于种种原因,我们如果当时仅仅备份了mdf文件,那么恢复起来就是一件很麻烦的事情了。
    如果您的mdf文件是当前数据库产生的,那么很侥幸,也许你使用sp_attach_db或者sp_attach_single_file_db可以恢复数据库,但是会出现类似下面的提示信息:
    设备激活错误。物理文件名'C:\Program Files\Microsoft SQL Server\MSSQL\data\test_Log.LDF'     可能有误。已创建名为'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.LDF' 的新日志文件。但是,如果您的数据库文件是从其他计算机上复制过来的,那么很不幸,也许上述办法就行不通了。你也许会得到类似下面的错误信息:
    服务器: 消息1813,级别16,状态2,行1 未能打开新数据库'test'。CREATE DATABASE 将终止。设备激活错误。物理文件名'd:\test_log.LDF' 可能有误。怎么办呢?别着急,下面我们举例说明恢复办法。
    A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。
    B.停掉数据库服务器。
    C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。
    D.启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。
    E.设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。
    use master go sp_configure 'allow updates',1 go reconfigure with override go F.设置test为紧急修复模式
    update sysdatabases set status=-32768 where dbid=DB_ID('test') 此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表。
    G.下面执行真正的恢复操作,重建数据库日志文件
    dbcc rebuild_log('test',  'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf') 执行过程中,如果遇到下列提示信息:
    服务器: 消息5030,级别16,状态1,行1 未能排它地锁定数据库以执行该操作。
    DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。
    说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。
    正确执行完成的提示应该类似于:
    警告:数据库'test' 的日志已重建。已失去事务的一致性。应运行DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。
    DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。
    此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。
    H.验证数据库一致性(可省略)
    dbcc checkdb('test') 一般执行结果如下:
    CHECKDB 发现了0 个分配错误和0 个一致性错误(在数据库'test' 中)。
    DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。
    I.设置数据库为正常状态
    sp_dboption 'test','dbo use only','false' 如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。
    J.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成:
    sp_configure 'allow updates',0 go reconfigure with override go  
      

  7.   

    log       explorer   可以恢复数据
      

  8.   

    先用下面的工具恢复被删除掉的数据库文件(*.mdf,*.ldf)   
        
      **************************************************************************   
      特别注意,任何对磁盘的操作,包括安装软件,都可能破坏已经删除的文件,导致文件恢复失败.   
        
      所以建议你在另一台电脑上安装上述文件恢复工具.   
      并将你的硬盘挂到该电脑上进行文件恢复.   
      **************************************************************************   
      =============================================================   
      文件恢复工具   
        
      EasyRecovery     
      下载: http://www.skycn.com/soft/13950.html   
        
      优秀的数据恢复工具,可把受到病毒破坏、格式化、删除的硬盘数据抢救回来!   
      6.0版本使用新的数据恢复引擎,并且能够对ZIP文件以及微软的Office系列   
      文档进行修复!6.0中还包含了Ontrack   Data   Advisor!其他更新请看软件   
      自带的Readme   
        
      FinalData   NT   Standard   1.5   
        
      FinalData   可以回收在   Windows   NT/2000/XP   中被误删的文件。   
      它还可以恢复你的数据,主引导记录(MBR),引导扇区,FAT。   
      它能找回其他类似工具所找不到的,安全,快速,专业   
        
      Acronis   RecoveryExpert   2003   
      下载: http://www.91now.com/downsky/soft/7175.htm   
        
      Acronis   RecoveryExpert是一个数据恢复软件,它功能强大,甚至可以恢复已经删除的   
      硬盘分区!如果你的系统已经损坏,软件支持你通过能启动的光碟开机来进行数据恢复。   
      它可以让你免受由于其他软件的错误,病毒的破坏甚至于黑客的工具所带来的数据损失。 再用下面的方法附加数据库:   
        
      企业管理器   
      --右键"数据库"   
      --所有任务   
      --附加数据库   
      --选择你的.mdf文件名   
      --确定   
      --如果提示没有.ldf文件,是否创建,选择"是"   
        
        
      查询分析器中的方法:   
      --有数据文件及日志文件的情况   
      sp_attach_db   '数据库名'   
      ,'数据文件名(*.mdf注意要带目录)'   --后面可以是用,分隔的该数据库的多个数据文件   
      ,'日志文件名(*.ldf注意要带目录)' --后面可以是用,分隔的该数据库的多个日志文件   
        
      --如果只有数据文件的情况   
      sp_attach_single_file_db   '数据库名'   
      ,'数据文件名(*.mdf注意要带目录)'   --后面可以是用,分隔的该数据库的多个数据文件
    再用下面的方法附加数据库:   
        
    这方法是zjcxc(邹建)原创
      

  9.   

    如果是文件被删除,在没有做其他文件复制/删除/移动等操作的情况下,可以利用一些反删除工具来恢复,例如2楼所说的工具
    在恢复的文件中选择与数据库同名的mdf/ldf文件,将其恢复后附加即可如果未对硬盘做过操作,应该恢复功能的可能性很大!!
      

  10.   

    删除以后我确实没有做任何操作
    可是用EasyRecovery恢复的文件无法挂载
    提示不是有效的SQL文件
    用16进制编辑软件打开MDF和LDF看
    发现开头和结尾的数据不正确
      

  11.   

    FinalData OEM v2.0.CN.rar
    R-Studio_v2.0.rar
    数据恢复大师.exe
    -------
    恢复附加(曾用2G数据库测试没有问题,楼主用以上软件恢复试试),