一次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=

至此 , 資料庫恢復正常 .

Published At
Categories with 数据库类
comments powered by Disqus