1.先分离该数据库,备份仅有的MDF文件,切记。若OK直接进入第3步。
2.如果不能分离,停止SQL Server服务,再备份该MDF文件,启动SQL Server服务。
3.删除该数据库,新建一个同名数据库。
4.停止SQL Server服务,COPY刚刚备份的MDF文件,覆盖新建数据库的MDF文件。
5.重启SQL Server服务,此时打开企业管理器,会发现新建数据库处于“置疑”状态。
6.打开查询分析器:user master
go--Step1:允许多系统目录进行直接修改
exec sp_configure 'allow updates',1
reconfigure with override--Step2:将新建同名库置为紧急状态
update master.dbo.sysdatabases set status=32768 where name='数据库名'--Setp3:重建日志文件
dbcc rebuild_log('数据库名', '日志文件') --注:“日志文件”包括全路径--Step4:恢复数据库状态
update master.dbo.sysdatabases set status=16 where name='数据库名'--Step5:不允许多系统目录进行直接修改
exec sp_configure 'allow updates',0
reconfigure with override7.停止SQL Server服务,再重启SQL Server服务,OK。

解决方案 »

  1.   

    按你说的步骤执行了,DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
    已将配置选项 'allow updates' 从 0 改为 1。请运行 RECONFIGURE 语句以安装。
    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
    已将配置选项 'allow updates' 从 1 改为 1。请运行 RECONFIGURE 语句以安装。(所影响的行数为 1 行)警告: 数据库 'UFDATA_003_2007' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。
    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。(所影响的行数为 1 行)DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
    已将配置选项 'allow updates' 从 1 改为 0。请运行 RECONFIGURE 语句以安装。最后数据库报“错误823”不早点是那一步出了差错!望大虾们多提建议!谢谢
      

  2.   


      “错误823”Microsoft® SQL Server™ 在对某设备进行读或写请求时遇到 I/O 错误。该错误通常表明磁盘问题。但是,错误日志中在错误 823 之前记录的其它核心消息应指出涉及了哪个设备。
    我想问是不是我的mdf文件也被破损了?原文件是被误删以后 通过数据恢复找回的!在恢复数据库的时候报日志错误!不知道还有没有办法恢复数据库
      

  3.   

    并且可能需要删除多余的日志文件。 
    ---------------------------
    这个应该是重建了一个新的日志文件,而不是将重建原LOG文件。
      

  4.   

    应运行 DBCC CHECKDB 以验证物理一致性。
    -----------------
    那按SQL所说的办法先CHECKDB看一看什么结果。
      

  5.   

    运行DBCC CHECKDB 结果为服务器: 消息 8966,级别 16,状态 1,行 1
    未能读取并闩锁页 (1:10123)(用闩锁类型 SH)。sysobjects 失败。
    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
      

  6.   

    现在数据库是什么状态?能不能执行:select 数据库名.dbo.sysfiles看看是不是多建了一个日志文件。
      

  7.   

    原log文件找回来了!但是用附加数据库的办法恢复提示为
    错误9004 处理日志错误 还有的文件恢复是 错误823
      

  8.   

    我这里有10几个数据库需要恢复!谢谢你的指导!机器比较慢!
    日志文件没有多建!sp_attach_single_file_db  不会用!
      

  9.   

    exec sp_attach_single_file_db @dbname = '???', 
       @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\???.mdf'
      

  10.   


    exec sp_attach_single_file_db @dbname =  'UFDATA_006_2007 ',  
       @physname =  'c:\Program Files\Microsoft SQL Server\MSSQL\Data\UFDATA_006_2007_Data.mdf'服务器: 消息 1801,级别 16,状态 3,行 1
    数据库 'UFDATA_006_2007 ' 已存在。  谢谢你的指导!我今天还有事!晚上回来再做!出了不少问题!现在是重建log出错!连接中断!刚开始按您的方法我能重建,后来换了别的数据文件就无法实现,我是刚从事软件开发不久的学生,很感谢Limpire  的指导!!!
      

  11.   

    有MSN的愿意的话留一下!谢谢!