一次TempDB损毁的处理过程
2024-07-21 02:11:23
供稿:网友
故障環境: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=
至此,資料庫恢復正常.