当前位置 返回首页 > 相关修复资料 > 正文

TempDB损坏的处理

故障环境:WinNT4.0Cluster+SQL Server7.0
故障描述: 8:30左右发现资料库当机,cluster作移转后sql server无法起来,查看windows日志,有错误纪录如下
  事件类型: 错误
  事件来源: ClusSvc
  事件类别目录: (2052)
  事件识别码: 1066
  日期: 2005-1-21
  时间: 8:23:20
  使用者: N/A
  电脑: TEST
  描述:
Cluster disk resource Disk G:: is corrupt. Running ChkDsk /F to repair problems.
请在http://go.microsoft.com/fwlink/events.asp 查看说明及支援中心,以取得其他资讯。
根据该错误纪录,需要对TEST\G做check disk.再对资料库做完整backup后,停止cluster服务,重起server后,chkdsk g: /f 执行成功.再次启动sql server,依旧无法开启,windows event log出下以下错误
  事件类型: 资讯
  事件来源: MSSQLServer$TEST
  事件类别目录: Server
  事件识别码: 17055
  日期: 2005-1-21
  时间: 8:23:54
  使用者: N/A
  电脑: TEST
  描述:
17052 :Database ‘tempdb’ cannot be opened. It has been marked SUSPECT by recovery. See the SQL Server errorlog for more information.
请在http://go.microsoft.com/fwlink/events.asp 查看说明及支援中心,以取得其他资讯。
  资料:
  0000: 9c 42 00 00 0a 00 00 00 ?B……
  …
  0030: 00 00 ..
在Microsoft网站查找17055,10752的错误代码没有结果. 通过查找关键字“Database ‘tempdb’ cannot be opened”,找到重建TempDB的一篇文章http://support.microsoft.com/default.aspx?scid= kb;en-us;288809
处理方法: 根据微软文档,操作步骤如下
  1.设置SQL Server Virtul Server Name
C:\> set _CLUSTER_NETWORK_NAME=YourSQLVirtualName
2.命令行启动SQL Server单用户模式(命令行窗口不能关闭)
  C:\> sqlservr -c -f -T3608 -T4022
3.开启查询分析器,以SA登入,执行系统存储过程重设TempDB状态
  exec master..sp_resetstatus Tempdb
  4.按CTRL+C关闭第2步的命令行窗口
5.重新正常启动SQL Server,此时会自动重建TempDB
  6.还原第1步的环境参数设置
  C:\> set _CLUSTER_NETWORK_NAME=
  至此,数据库恢复正常.

上一篇 数据库由于索引损坏通过dbcc checkdb修复后记录有缺失的恢复案例下一篇 重装系统通过数据恢复软件找回来的数据库文件提示不是有效的SQL SERVER文件的修复案例