重視可用性的系統 (SQL Server AlwaysOn) - 技術說明
重視可用性的系統 (SQL Server AlwaysOn) - 技術說明
重視可用性的系統架構
1. 利用虛擬名稱以透明的方式從應用程式來存取
- 虛擬名稱是容錯移轉叢集的資源,會識別運作中的主要伺服器,並使連線路徑選擇連線至主要伺服器(以規則為基礎)
- 虛擬名稱會登錄至 AD 的 DNS 伺服器,以便對用戶端進行名稱解析
- 當連線為唯讀屬性,則連線路徑會選擇連線至主動的次要伺服器 (可讀)
2. 最多可在可用性群組 (Availability Group,AG) 中構成 4 部次要伺服器
- 其中 2 部可採用同步模式,另外 2 部的其中 1 部可以定義為自動容錯移轉對象
3. 如果發生容錯移轉
- 與主要伺服器連線的用戶端必須重新連線 (連線對象仍為虛擬名稱)
- 會利用 LSN 重新傳送交易記錄
重視可用性的系統架構
1. 整合可用性群組 (Availability Group,AG) 與 Windows Server 容錯移轉叢集
(Windows Server Failover Clustering,WSFC)
- 叢集內的錯誤偵測
- 節點關閉
- SQL Server 服務關閉
- 容錯移轉協同合作
- 資源監視器狀態變更通知
- 虛擬名稱管理
- SQL Server 服務檢查
- SQL Server 無回應
- SQL Server 活動異常
- 狀態變更通知
編號 | 錯誤詳細資料 | 偵測規則 |
1 | 節點關閉 *1(根據其他節點偵測) | 活動訊號 1 秒 * 5 次 (< 5 秒) |
2 | SQL Server 服務關閉 * 1(報告失敗) | < 1 秒 |
3 | SQL Server 無回應 | < LEASE 逾時 |
4 | sp_server_diagnostics 偵測結果狀況不良If "Offline Success" then 通知 SQL ServerElse 等待 LEASE 逾時 | < 5 秒 |
*1:可略過離線處理。 |
層級 | 條件 | SQL Server 服務重新啟動 或容錯移轉的觸發條件 |
0 | 無自動容錯移轉或重新啟動 | 將不會自動進行 SQL Server 服務的重新啟動或容錯移轉。這個層級只會用於系統維護的用途。 |
1 | 伺服器關閉時進行容錯移轉或重新啟動 |
|
2 | 伺服器沒有回應時進行容錯移轉或重新啟動 |
|
3(預設) | 發生重大伺服器錯誤時進行容錯移轉或重新啟動 |
|
4 | 發生中度伺服器錯誤時進行容錯移轉或重新啟動 |
|
5 | 發生任何合格失敗條件時進行容錯移轉或重新啟動 |
|
失敗類型 | 動作 | 容錯移轉時間 | |
容錯移轉 叢集 |
硬體失敗 (電源中斷) | 偵測到失敗,進行容錯移轉 | 28 秒 |
作業系統失敗(藍色畫面) | 偵測到失敗,進行容錯移轉 | 17 秒 | |
處理序 (SQL Server)失敗 | 偵測到失敗,進行容錯移轉(在同一節點重新啟動,同時可設定重試的臨界值) | 11 秒 | |
資料庫鏡像(參考資訊) | 硬體失敗 (電源中斷) | 偵測到失敗,進行容錯移轉 | 8 秒 |
作業系統失敗(藍色畫面) | 偵測到失敗,進行容錯移轉 | 9 秒 | |
處理序 (SQL Server) 失敗 | 偵測到失敗,進行容錯移轉 | 1 秒 |