请教SQL Server错误解决方法
LogWriter: 遇到了操作系统错误 1117(因为 I/O 设备错误,所以无法运行此项请求。)。
Write error during log flush. Shutting down server.
错误: 9001,严重度: 21,状态: 1
数据库 'tempdb' 的日志不可用。
错误: 9001,严重度: 21,状态: 1
The log for database 'tempdb' is not available.。
错误: 9001,严重度: 21,状态: 1
撤消数据库 'tempdb' 的日志中记录的操作时出错。出错位置在日志记录 ID (15653:80:692)。。
错误: 3314,严重度: 21,状态: 4
An error has occurred that requires SQL Server to shut down so that recovery can be performed on database ID 2.。
错误: 9001,严重度: 21,状态: 1
以上是sql server日志,几乎每天都会出现一次这种错误,导致sql server停止。但是看不出temp数据库有什么错误,空间也足够,磁盘、操作系统也没有发现问题。
而且这个WEB的数据库,以前都用的好好的,最近才出现这种错误。
请各位大侠指导方向。
问题点数:30、回复次数:7Top
1 楼tjan(安安(DBA招募中。。。))回复于 2003-09-02 18:03:00 得分 5
可能是一个大的查询使 tempdb 迅速膨胀造成磁盘空间不足,一般不会在数据库刚刚启动的时候出现。Top
2 楼pengdali()回复于 2003-09-02 18:31:55 得分 10
1、重起数据库。
2、把tempdb放到另一硬盘上。方法:
1、用Enterprise Manager或sp_helpdb查看tempdb现在存放的位置
2、用
alter database tempdb modify file(name='tempdev',filename='newpath\newfilename')
alter database tempdb modify file(name='templog',filename='newpath\newfilename')
3、关闭sqlserver重起
4、删掉旧的tempdb文件
Top
3 楼li_zero(相遇太早,反而淡了缘分)回复于 2003-09-03 09:10:00 得分 0
我也怀疑过是不是temp迅速膨胀造成磁盘空间不足,但是那个磁盘的空间确实很富裕,有好几G空余。
改变temp的位置,有什么好处么?排除磁盘坏道的可能?Top
4 楼happydreamer(www.sz.js.cn,www.gyxk.com)回复于 2003-09-03 09:43:43 得分 10
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
总结:
当系统自动调整tempdb大小时,对文件的读写将暂时的阻塞
所以如果我们预知tempdb将会增加到某个大小时,可以自行调整,从而避免性能下降
Top
5 楼li_zero(相遇太早,反而淡了缘分)回复于 2003-09-03 13:04:38 得分 0
但系统调整tempdb大小时,会阻塞到使数据库当机的程度?不至于吧。Top
6 楼qruntime(Allen)回复于 2003-09-03 15:49:23 得分 5
最好把tempdb的初期空间设大点,
自动增长比例设为10%Top
7 楼li_zero(相遇太早,反而淡了缘分)回复于 2003-09-03 17:19:57 得分 0
早就已经这样设过了,今天还是当机了:(Top




