SQL Server誤區(qū)30日談 第21天 數(shù)據(jù)損壞可以通過重啟SQL Server來修復(fù)
發(fā)布日期:2022-01-07 16:43 | 文章來源:站長之家
錯誤
SQL Server中沒有任何一項操作可以修復(fù)數(shù)據(jù)損壞。損壞的頁當(dāng)然需要通過某種機制進行修復(fù)或是恢復(fù)-但絕不是通過重啟動SQL Server,Windows亦或是分離附加數(shù)據(jù)庫。
而實際上,如果你的數(shù)據(jù)庫的損壞程度無法進行Crash Recovery的話(質(zhì)疑狀態(tài)),那么分離附加數(shù)據(jù)庫將會是你做的最糟糕的決定。這個原理是由于附加數(shù)據(jù)庫中包含Crash Recovery步驟,如果Crash Recovery失敗的話,那么附加也會失敗。所以下面的技巧才是你所需要的:TechEd Demo: Creating, detaching, re-attaching, and fixing a suspect database。記住,永遠不要分離損壞的數(shù)據(jù)庫。
下面這類錯誤才是有可能通過重啟解決:
不管怎么說,你起碼要做到有對應(yīng)的備份策略或是容易系統(tǒng)進行恢復(fù)和故障轉(zhuǎn)移。重啟可不是一個解決方案,這只會浪費時間。
下面這類錯誤才是有可能通過重啟解決:
- 如果在內(nèi)存中的頁損壞,但在磁盤上的頁完好時,重啟能夠解決損壞問題
- 如果損壞發(fā)生了,但是重啟過程中的某個步驟導(dǎo)致這個頁不再被分配,則貌似損壞通過重啟解決了,這個問題我之前已經(jīng)有一篇博文進行闡述了:Misconceptions around corruptions: can they disappear?
- 如果IO子系統(tǒng)也重啟,之前SQL Server對IO的需求被IO子系統(tǒng)“卡”住,則重啟貌似能解決問題,但實際上這并不是修復(fù)損壞,而只是讓出問題的IO子系統(tǒng)恢復(fù)。我只碰見過三四次這類情況。
不管怎么說,你起碼要做到有對應(yīng)的備份策略或是容易系統(tǒng)進行恢復(fù)和故障轉(zhuǎn)移。重啟可不是一個解決方案,這只會浪費時間。
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
相關(guān)文章
關(guān)注官方微信