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