一次TempDB损毁的处理过程

类别:数据库 点击:0 评论:0 推荐:
故障環境: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=

 

至此,資料庫恢復正常.

 

本文地址:http://com.8s8s.com/it/it19499.htm