程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server誤區:數據庫鏡像在故障發生後馬上就能發現

SQL Server誤區:數據庫鏡像在故障發生後馬上就能發現

編輯:關於SqlServer

誤區10.數據庫鏡像在故障發生後,馬上就能發現

錯誤

市面上大肆宣傳數據庫鏡像技術可以在故障發生後,立即檢測到錯誤並進行故障轉移。

但事實並不是這樣,檢測到故障發生的速度要取決於故障的類型。

檢測故障發生的最快的情況是,鏡像中的主體實例崩潰,從而鏡像服務器每秒一次的PING就無法返回值,從而知道主體服務器上不再有這個進程偵聽相應的TCP端口,這種情況下,鏡像服務器幾乎瞬間就能發現故障。

檢測到故障發生第二快的情況是主體服務器的操作系統崩潰。此時主體服務器不再響應鏡像服務器的PING,從而在鏡像服務器PING超時後發現錯誤。這個超時的阈值默認是10秒。但你也可以延長這個時間,這時,故障發生時間完全取決於PING的超時時間。

檢測到故障第三快的情況是是主體的日志磁盤不可用,此時SQL SERVER仍然會發起IO請求,但20秒IO等待無法寫入日志後發現日志磁盤不可用,最終40秒後宣告磁盤日志不可用,從而讓鏡像服務器上線。SQL SERVER是十分有耐心的,比如拿鎖來說,SQL SERVER對於鎖會無限等待,除非遇到死鎖才進行干預。

還有,損壞頁有可能完全不會引發故障,如果查詢報了823或是824錯誤,鏡像技術完全不會關注(SQL SERVER 2008之後這個問題得到修復: SQL Server 2008: Automatic Page Repair with Database Mirroring),如果數據回滾的過程中遇到823錯誤或是824錯誤,數據庫立刻會變為質疑狀態,也就是日志和數據不統一。這也會導致鏡像失敗。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved