2010年7月16日 星期五

MS SQL 資料庫 "有疑問"?

前言
前陣子對Server進行大量存取動作時,應用程式突然一直回報錯誤,最後甚至回報了"找不服務"等訊息,直覺是Server操掛了,很自然地去重開了Server(危險及愚蠢動作,小朋友不要模仿…),重開完畢後,Server一樣不回應我的操作,reset IIS 也沒用,後來神來一筆地,我開了SSMS,才看到作業資料庫竟被mark上了"有疑問"字樣,so…原來問題在資料庫…

處理
資料庫會因為作業系統拒絕存取資料庫資源、一或多個資料庫檔案無法使用或損毀等原因而變成被質疑的狀態。
這時,資料庫竟無法缷離,連想拿backup還原的機會也不給,幸Google大神沒放棄我,給了我有用的解法,處理步驟如下:
//把"有疑問"db設定緊急處理狀態 ALTER DATABASE [DB Name] SET EMERGENCY; //檢查修正DB問題 DBCC checkdb('DB Name'); //ROLLBACK ALTER DATABASE [DB Name] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; //修復遺失資料 DBCC CheckDB ('DB Name', REPAIR_ALLOW_DATA_LOSS); //設回正常使用模式 ALTER DATABASE [DB Name] SET MULTI_USER;
幾個步驟下來,資料庫及Server的服務終於都正常了,呼…

1 則留言: