SQL Server誤區(qū)30日談 第10天 數(shù)據(jù)庫(kù)鏡像在故障發(fā)生后 馬上就能發(fā)現(xiàn)
發(fā)布日期:2022-01-08 10:47 | 文章來(lái)源:源碼之家
錯(cuò)誤
市面上大肆宣傳數(shù)據(jù)庫(kù)鏡像技術(shù)可以在故障發(fā)生后,立即檢測(cè)到錯(cuò)誤并進(jìn)行故障轉(zhuǎn)移。
但事實(shí)并不是這樣,檢測(cè)到故障發(fā)生的速度要取決于故障的類型。
檢測(cè)故障發(fā)生的最快的情況是,鏡像中的主體實(shí)例崩潰,從而鏡像服務(wù)器每秒一次的PING就無(wú)法返回值,從而知道主體服務(wù)器上不再有這個(gè)進(jìn)程偵聽相應(yīng)的TCP端口,這種情況下,鏡像服務(wù)器幾乎瞬間就能發(fā)現(xiàn)故障。
檢測(cè)到故障發(fā)生第二快的情況是主體服務(wù)器的操作系統(tǒng)崩潰。此時(shí)主體服務(wù)器不再響應(yīng)鏡像服務(wù)器的PING,從而在鏡像服務(wù)器PING超時(shí)后發(fā)現(xiàn)錯(cuò)誤。這個(gè)超時(shí)的閾值默認(rèn)是10秒。但你也可以延長(zhǎng)這個(gè)時(shí)間,這時(shí),故障發(fā)生時(shí)間完全取決于PING的超時(shí)時(shí)間。
檢測(cè)到故障第三快的情況是是主體的日志磁盤不可用,此時(shí)SQL SERVER仍然會(huì)發(fā)起IO請(qǐng)求,但20秒IO等待無(wú)法寫入日志后發(fā)現(xiàn)日志磁盤不可用,最終40秒后宣告磁盤日志不可用,從而讓鏡像服務(wù)器上線。SQL SERVER是十分有耐心的,比如拿鎖來(lái)說(shuō),SQL SERVER對(duì)于鎖會(huì)無(wú)限等待,除非遇到死鎖才進(jìn)行干預(yù)。
還有,損壞頁(yè)有可能完全不會(huì)引發(fā)故障,如果查詢報(bào)了823或是824錯(cuò)誤,鏡像技術(shù)完全不會(huì)關(guān)注(SQL SERVER 2008之后這個(gè)問(wèn)題得到修復(fù): SQL Server 2008: Automatic Page Repair with Database Mirroring),如果數(shù)據(jù)回滾的過(guò)程中遇到823錯(cuò)誤或是824錯(cuò)誤,數(shù)據(jù)庫(kù)立刻會(huì)變?yōu)橘|(zhì)疑狀態(tài),也就是日志和數(shù)據(jù)不統(tǒng)一。這也會(huì)導(dǎo)致鏡像失敗。
你在圣經(jīng)上學(xué)習(xí)到的那些教條也不是需要完全遵循的嘛:-)
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
相關(guān)文章
關(guān)注官方微信