LogWriter: 遇到了操作系统错误 33(另一个程序已锁定文件的一部分,进程无法访问。)。 Write error during log flush. Shutting down server 数据库 'XXXX' 的日志不可用。。 错误: 9001,严重度: 21,状态: 4 The log for database 'XXXX' is not available.。怎么会这样啊?????
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
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文件
如果系统运行过程中 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
更改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文件
补充一下,不是TEMPDB的问题,TEMPDB我很早的时候就已经移到别的盘了,空间够大的。