LogWriter: 遇到了操作系统错误 33(另一个程序已锁定文件的一部分,进程无法访问。)。
Write error during log flush. Shutting down server
数据库 'XXXX' 的日志不可用。。
错误: 9001,严重度: 21,状态: 4
The log for database 'XXXX' is not available.。怎么会这样啊?????

解决方案 »

  1.   

    SQL   Server在每次重启服务时会重建tempdb数据库   
        
      如果系统运行过程中   tempdb因需要自动增长了,SQL   Serve不会记住增长后的大小,重启服务后仍然恢复到初始大小,   
      但如果用户使用了手工调整tempdb的大小,重启服务SQL   Server会把tempdb重建为用户指定大小   
        
      测试示例   
        
      tempdb初始化大小为8MB   
        
      1)使tempdb自动增长   
        
      select   b.*   into   #t   from   sysprocesses   a,sysobjects   b   
        
      重启后使用sp_helpdb   'tempdb'   
      可以看到tempdb又恢复到8MB   
        
      2)   用户使用Alter   Database调整为100MB,   
        
      USE   master   
      GO   
      ALTER   DATABASE   tempdb   
      MODIFY   FILE   
            (NAME   =   tempdev,SIZE   =   100MB)   
        
      重启服务后使用查看tempdb大小就为100MB   
        
      以下查询可以看到tempdb的变化   
      select   a.filename,a.name,a.size*8.0/1024.0   as   originalsize_MB,   
      f.size*8.0/1024.0   as   currentsize_MB   
      from   master..sysaltfiles   a   join   tempdb..sysfiles   f   on   a.fileid=f.fileid   
      where   dbid=db_id('tempdb')   
      and   a.size<>f.size   
      

  2.   

    try:
    更改Tempdb存放位置:   
      1.用Enterprise Manager或sp_helpdb查看tempdb现在存放的位置   
      2.在查询分析器执行以下语句   
      alter database tempdb modify filename='tempdev',filename='newpath\newfilename')   
      alter database tempdb modify filename='templog',filename='newpath\newfilename')   
      3.关闭sqlserver重启   
      4.删掉旧的tempdb文件
      

  3.   

    我是楼主
    补充一下,不是TEMPDB的问题,TEMPDB我很早的时候就已经移到别的盘了,空间够大的。