高可用性與高效能的完美表現 從實務案例探討sql...
TRANSCRIPT
高可用性與高效能的完美表現從實務案例探討SQL Server 2014 AlwaysOn
許致學
資深合夥顧問
就是這個工作室
系統發生異常,你的反應時間是…
反應時間 –從異常發生,移轉異常/修復異常到重新恢復正常運作
秒 分鐘 小時 天
等級 反應時間
A + <= 30 秒
A <= 5分鐘
B <= 1 小時
C <= 4 小時
D >> 4 小時
可接受的條件下
1 分鐘以內
停機時間為 5 分鐘 不得有任何
訂單資料遺失
可以多快完成復原?
(停機時間?)
資料可以復原到哪個時間點?
(多少的資料損失量?)
可用度等級 RTO RPO
等級 A >99.99%
(小於1小時)
小於5分鐘
等級 B 99.9% - 99.99%
(1至 8.5 小時)
5分鐘至8.5小時
等級 C (<99.9%)
(數小時至數天)
數小時至數天
等級 ARTO
RPO
停機時間 –從異常偵測,移轉異常/修復異常到重新恢復正常運作 (RTO)
秒 分鐘 小時 天
資料庫鏡像高可用
AlwaysOn容錯叢集
資料庫鏡像高效能
複寫點對點
交易記錄檔傳送
備份/還原線上還原
卸離/附加資料庫快照可能的資料損失量(R
PO
)
天
分鐘
秒
無
熱備援
暖備援
冷備援
AlwaysOn可用性群組
無資料損失(RPO=0)
移轉單位 自動移轉 (RTO)
Inst DB Tab
讀取 多個備援
寫入
高可用度方案
交易記錄檔傳送
資料庫鏡像 同步
非同步
AlwaysOn
可用性群組同步
非同步
AlwaysOn 容錯叢集
交易式複寫
點對點複寫
RPO 移轉機制 備援使用
硬體 程式效能影響
管理性
低 低 低
低 高 低
低 低 低
低 高 低
低 低 低
高 ** 低 ** 低 **
低 低 高
低 低 高
費用
* 資料庫鏡像和交易記錄檔傳送可搭配資料庫快照或STANDBY模式提供唯讀存取** 搭配 SAN 解決方案
高可用性與災難復原技術
支援的節點數量
SQL Server 標準版 SQL Server 企業版
僅支援 2 個節點 依作業系統版本(最多 64 個節點)
(延展叢集, stretch cluster)
(Indirect Checkpoint)
SQL Server 2012 增強功能
Active Passive
資料庫磁碟
TARGET_RECOVERY_TIME
SQL Server 2012
彈性容錯移轉原則 FailureConditionLevel
等級 條件 每個等級包括前一個等級的狀況,任何一個狀況就會觸發
0沒有自動的容錯移轉或重新啟動
指出任何失敗狀況都不會自動觸發容錯移轉或重新啟動這個等級只會用於系統維護的用途
1伺服器關閉的容錯移轉或重新啟動
SQL Server 服務已關閉
2伺服器無回應的容錯移轉或重新啟動
SQL Server 執行個體沒有回應 (無法在 HealthCheckTimeout設定內接收來自 sp_server_diagnostics 的資料)
3發生重大伺服器錯誤的容錯移轉或重新啟動
sp_server_diagnostics 傳回「系統錯誤」
4發生一般伺服器錯誤的容錯移轉或重新啟動
sp_server_diagnostics 傳回「資源錯誤」
5任何合格失敗狀況的容錯移轉或重新啟動
sp_server_diagnostics 傳回「query_processing錯誤」
為何會發生應用程式無法連線
容錯移轉叢集,但不會自動移
轉?
高可用性需求監控系統運作
max worker threads
要求產生工作
工作對應工作者執行緒
耗用CPU時間或等候
Requests TasksWorkerThreads
EXEC sp_configure 'max worker threads', 2048
max worker threads 預設為 0512 + (Cores-4) * 16
4 Cores 512 max worker threads 16 Cores 704 max worker threads
確保服務等級
定期模擬存取資料庫
DB1
LUN1
…
… 1221
Log1
LUN2
DB2
LUN3
Log2
LUN4
DB12
LUN23
Log12
LUN24
支援 Windows Cluster Shared Volumes (Windows Server 2012+)
叢集共用磁碟區的部署方式
SMB
3.0
Share Share Share
CSV
CSV
儲存設備規劃
DB1 DB2 DB49
…CSV1 on LUN1
… 4921
Log1 Log2
…CSV2 on LUN2
Log49
顯示 CSV I/O 模式
回報原因
PowerShell cmdlet:Get-ClusterSharedVolumeState
顯示每個節點的 I/O 模式:Direct I/O、Block level redirected、File system level redirectedCSV 狀態
Understanding the State of your Cluster Shared Volumes in Windows Server 2012 R2
支援 Windows Cluster Shared Volumes (Windows Server 2012+)
CSV block level cache
叢集共用磁碟區
可用性 磁碟異常狀況的復原能力
增強容錯移轉的復原能力
零停機執行 CHKDSK
擴充性 突破 24 個磁碟代碼的限制
可以整合更多執行個體
提升磁碟使用率
管理 可以從任一節點管理
磁碟抽象化
效能和安全性 叢集共用磁碟區快取
支援 BitLocker
多個資料庫容錯移轉
最多8個次要複本
2個同步/非同步
自動資料壓縮與加密傳輸
手動/自動容錯移轉
彈性的容錯移轉原則
毀損資料頁自動修復
活用次要複本
唯讀
備份
支援 powershell
快速移轉
SQL Server 2014
無縫的應用程式連線
組態精靈
監控儀錶板
豐富的偵測架構
System Center 整合
完整功能支援
自主資料庫、FileStream, FileTable,
Service Broker
當主要伺服器發生異常時,如
何手動由異地AlwaysOn可用
性群組的次要複本接手服務?
高可用性需求手動容錯移轉
SQL Server 容錯移轉叢集 + 可用性群組
非同步
強制手動移轉至異地的次要複本
強制手動移轉至異地的次要複本
強制手動移轉至異地的次要複本
強制手動移轉至異地的次要複本
如何在Microsoft Azure 建立
AlwaysOn可用性群組的次要
複本?
高可用性需求善用Microsoft Azure的資源
新增 Azure 次要複本精靈
新增 Azure 次要複本精靈
當 AlwaysOn可用性群組的主
要資料庫發生部分資料頁毀損
時,毀損的資料頁會自動修復
嗎?
高可用性需求資料頁毀損自動修復
1.
2.
3.
4.
5.
聽說當 AlwaysOn可用性群組
的主要伺服器和複本伺服器之
間的網路發生斷線,次要複本
會無法讀取?
高可用性需求複本資料庫可持續提供讀取
SQL Server 容錯移轉叢集 + 可用性群組
非同步
增加可唯讀次要複本的可用性
高效能的挑戰
• 避免效能不佳導致的系統不穩定
• 適當的規劃達成更佳的效能表現
• 系統硬體資源• 處理器、記憶體、磁碟、網路
• 單一主機硬體資源升級 vs. 多部主機分擔處理負荷
• 與效能相關的設定• tempdb、資料庫設計、檔案規劃、索引、資料分割、資料壓縮
• 應用程式• 應用程式架構、語法、交易與鎖定
• 集中式處理 vs. 分散式處理
• 集合處理 vs. 逐筆處理
• 分散讀取和寫入的負荷
如何利用 AlwaysOn可用性群
組的次要複本分擔報表查詢負
荷?
高效能需求善用複本伺服器的資源
增加次要複本的數量
增加次要複本的數量
增加次要複本的數量
我想利用 AlwaysOn可用性群
組的複本資料庫分擔報表查詢
負荷,可是應用程式還需要寫
入資料表留下查詢的記錄?
高效能需求善用複本伺服器的資源
善用複本伺服器的資源
AlwaysOn可用性群組的次要複
本可以分擔備份負荷嗎?
高效能需求善用複本伺服器的資源
備份方式 備份檔案大小 備份時間
A 未壓縮,1 個備份檔案 32.8 GB * 1 1524 秒 (00:25:24)
B 未壓縮,4 個備份檔案 8.2 GB * 4 1020 秒 (00:17:00)
C 壓縮,1 個備份檔案 5.1 GB * 1 417 秒 (00:06:57)
D 壓縮,4 個備份檔案 1.3 GB * 4 392 秒 (00:06:32)
PS. 測試主機 : HP ProLiant DL360 G4p
• CPU: Xeon 3.0GHz Dual-Core * 2• Memory: 4GB• HDD: 73GB * 2 10,000 rpm (RAID 0)
AlwaysOn可用性群組愈多的複
本是否也會影響效能?
高效能需求
Heartbeat Network
支援 Windows Cluster Shared Volumes 增加次要複本數量
增加可唯讀次要複本數量
新增 Azure 複本精靈
SQL Server 2014 高可用與災害復原技術
如何知道 AlwaysOn可用性群
組的主要資料庫和複本資料庫
之間的同步狀態?
更容易管理資料庫同步狀態
增強偵錯能力:SQL Server 2014 更清楚的同步狀態
增強偵錯能力
增強偵錯能力:系統函數 & 動態管理檢視
主要複本定期執行交易記錄檔備份
詳細規劃大型資料表的維護作業索引、統計資料、歷史資料
應用程式與資料表設計分散讀取和寫入的負荷
大型資料庫檔案磁碟規劃多個檔案群組配置多個檔案
資料壓縮
大型資料庫實務規劃SQL Server 2014 AlwaysOn
高可用性與高效能的完美表現從實務案例探討SQL Server 2014 AlwaysOn
Thank You