故障環境: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=
至此,資料庫恢復正常.