CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  应用实例

请教SQL Server错误解决方法

楼主li_zero(相遇太早,反而淡了缘分)2003-09-02 17:55:11 在 MS-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

相关问题

  • sql server 错误
  • 请教sql-server中的错误处理方法
  • asp sql server 错误
  • !!!高分求救ADODB.Connection的Execute方法执行sql server存储过程出现0x80004005错误!
  • sql 错误:[microsoft][odbc sql Server Driver][SQL server] 对象名 ‘dbo.usertable’无效
  • ****有关Sql Server的错误处理?***
  • 一条sql server 的错误信息
  • 一个SQL SERVER返回的错误
  • 一个MS SQL server 的错误!?
  • SQL Server企业版安装错误!

关键词

  • 数据库
  • database
  • 用户
  • 系统
  • sql
  • server
  • tempdb
  • 错误
  • 磁盘
  • 日志

得分解答快速导航

  • 帖主:li_zero
  • tjan
  • pengdali
  • happydreamer
  • qruntime

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo