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