SQL2000
在同一个服务器上,我先把数据库“MADB”执行“分离数据库”操作,成功。然后我把.MDF和.LDB文件前切到另外的文件夹里。我再执行附加数据库操作时,报错”错误:9004 处理数据库的日志时出错“
请问如何解决?

解决方案 »

  1.   

    先把原库文件备份一份,然后
    在其它机器上直接附加数据库,不要日志文件!试试!如果不行再按以下方法试试!
    在其他机器上,用这个试试:   
      1.设置数据库为紧急模式   
                    Use   Master   
                    GO   
                    sp_configure   ‘allow   updates‘,   1   
                    reconfigure   with   override   
                  GO   
                  UPDATE   sysdatabases   SET   status   =   32768   where   name   =   ‘DB_SUSPECT‘   
                  GO   
        
      2.停掉SQL   Server服务:   
                NET   STOP   MSSQLSERVER   
        
      3.把原始数据库的数据文件DBNAME_DAT.MDF,DBNAME_LOG.LDF移走:   
        
      4.启动SQL   Server服务:   
                  NET   START   MSSQLSERVER   
        
      5.重新建立一个同名的数据库DB_SUSPECT;   
        
                    USE   master   
                    GO   
                    CREATE   DATABASE   DB_SUSPECT   
                      ON     
                        (   NAME   =   DBNAME_DAT,   
                            FILENAME   =   ‘C:‘,   
                            SIZE   =   10,   
                              FILEGROWTH   =   5   )   
                            LOG   ON   
                          (   NAME   =   ‘DBNAME_LOG‘,   
                            FILENAME   =   ‘g:‘,   
                            SIZE   =   5MB,   
                            FILEGROWTH   =   5MB   )   
                            GO   
        
        
      6.设置数据库运行在单用户的模式:   
                        USE   MASTER   
                      GO   
                      ALTER   DATABASE   DB_SUSPECT   SET   SINGLE_USER   
                      GO   
        
      7.停掉SQL服务:   
                NET   STOP   MSSQLSERVER   
        
      8.把原来的数据文件再覆盖回来:   
        
        
      9.启动SQL   Server服务:   
                  NET   START   MSSQLSERVER   
        
      10.重新设置SQLSERVER的状态:   
                        USE   MASTER   
                      GO   
                      EXEC   sp_resetstatus   “DB_SUSPECT“   
        
      11.数据库完整性检测:   
                      DBCC   CHECKDB(‘DB_SUSPECT‘)   
      

  2.   

    数据库分离之前是否正常,或是已经置疑?
    数据库的两个文件后缀名应该是MDF和LDF,注意看一下。看两个文件是否在同一个文件夹底下。
    你这种报错疑似数据库文件出了问题。能说得详细点吗?
      

  3.   


    分离前显示正在加载。但是在分离前我没对这个数据库做任何操作啊两个文件后缀名是MDF和LDF,两个文件是在同一个文件夹底下
      

  4.   

    引:
     新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数   
        
      据库文件,启动数据库,该数据库被设未suspect   
        
      然后把数据库改成紧急模式:   
      sp_configure   'allow',   1   
      reconfigure   with   override   
      update   sysdatabases   set   status   =   32768   where   name   =   '数据库名'   
        
      把LDF文件改名,再执行   
      DBCC   REBUILD_LOG   ('glsisp',   'd:\data\glsisp_log.ldf'   )   
        
      恢复数据库紧急模式   
      update   sysdatabases   set   status   =   0   where   name   =   'glsisp'   
      执行   
      restore   database   数据库名   WITH   RECOVERY   
      sp_configure   'allow',   0   
      reconfigure   with   override   
        
      然后用DBCC   CHECKDB   ('glsisp')看看有没有错误   
        
      如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库