裸機伺服器讀取複本,擴展資料庫工作負載指南
讀取複本是從主資料庫重播變更、並處理唯讀查詢的次要資料庫實例。企業可以把報表、搜尋、儀表板及應用程式的讀取流量分散到複本,而不必改變主資料庫的寫入路徑。
在裸機伺服器上,團隊可以控制資料庫節點的 CPU、記憶體、NVMe 儲存、網絡路徑及作業系統設定,有助按實際負載作出較可預測的容量規劃;但讀取複本仍需要路由、一致性規則、延遲監察、故障切換流程及獨立備份。
讀取複本如何擴展資料庫工作負載
主資料庫繼續負責寫入,而一個或多個複本則重播交易日誌並處理合適的讀取要求。把指定查詢移離主資料庫,可以減少資源競爭、保護寫入延遲,並為報表工作提供獨立的容量路徑。
- 資料庫密集型工作負載不只取決於核心數量。Dataplugs 的高 IOPS 資料庫工作負載伺服器設計指南文章說明工作負載分析、IOPS、讀寫比例,以及讀取複本如何分擔分析查詢。
- 需要即時資料時,把寫入及寫入後立即讀取的操作留在主資料庫
- 透過應用程式或路由層,把合適的唯讀要求傳送到複本
- 把報表、搜尋及儀表板流量與交易查詢分開處理
- 當讀取需求超出單一節點的實際容量時,再增加複本
- 除非資料庫及路由設計另有保證,否則應把複本視為最終一致
讀取路由及一致性選擇
只有在應用程式把安全的查詢傳送到複本時,複本才會帶來效益。路由可以在應用程式、資料庫代理或連線池進行,但必須清楚區分唯讀操作,並訂定可接受的資料延遲程度。
- 路由決定也會影響回應時間目標。Dataplugs 的如何優化交易密集型應用的儲存延遲文章說明調整交易密集型系統時,應把儲存延遲、讀取複本及查詢行為一併考慮。
- 先定義每項要求是否需要強一致性,或可以容許短暫延遲
- 讀取後立即寫入的流程應留在主資料庫,或等待複本追上進度
- 使用連線池,避免路由變更建立過多不必要的資料庫連線
- 避免長時間報表與低延遲讀取在同一複本上互相競爭
- 測試複本延遲、維護及節點移出路由池時的流量處理
裸機伺服器讀取複本的容量規劃
複本同時需要處理交易日誌重播及分配到的讀取查詢,因此容量應按讀寫比例、資料集、工作集大小、查詢組合、尖峰連線數及復原目標規劃,而不能只看平均 CPU 使用率。
- 活動或報表時段可能令讀取需求突然增加。Dataplugs 的季節性網站流量高峰的資源分配優化文章說明應以量度所得的 CPU、記憶體、儲存及頻寬需求規劃專屬基礎設施,而不是只按平均值估算。
- 為查詢執行、交易日誌重播及維護工作預留 CPU 量
- 為工作集、資料庫快取、連線池及作業系統快取分配記憶體
- 資料檔案、交易日誌及暫存工作使用低延遲 NVMe 儲存
- 頻寬需應付複寫、客戶端讀取、備份及複本重建
- 為故障切換、重建索引、vacuum 及突然的讀取高峰保留容量餘裕
Tip: 應使用最大而合理的資料集及查詢高峰進行測試。複本在平均負載下看似充足,仍可能在重播、報表或重建期間落後。
複寫延遲及資料新鮮度監察
- 複寫延遲不只是基礎設施指標,也會直接影響用戶看到的資料。複本即使保持連線,已套用的資料仍可能不夠新,未能支援儀表板、搜尋結果或營運決策。因此應同時監察複寫流程,以及應用程式實際取得的資料新鮮度。
- 可利用交易日誌位置、重播時間、佇列大小、查詢延遲及錯誤率找出複本落後的原因。告警門檻應按工作負載設定:分析查詢或可接受幾秒的延遲,但庫存或帳戶流程可能不能接受。
- 在資料庫支援的情況下,同時以時間及日誌數量量度延遲
- 追蹤重播速度、佇列增長、儲存延遲及複本 CPU 飽和情況
- 按不同應用程式流程設定資料新鮮度告警,而不是使用單一門檻
- 複本落後時先將其移出路由或降低優先級,避免回傳誤導性結果
- 記錄觸發流量調整、修復或提升複本決定的延遲門檻
故障切換、提升及流量路由
讀取複本可以提升為可寫入的主資料庫,但複寫本身不會決定何時適合提升。故障切換設計需要清楚的提升權限、隔離舊主資料庫的方法,以及轉移寫入流量和連線池的受控流程。
- 裸機伺服器架構應演練完整流程:偵測故障、選擇正確複本、進行提升、更新寫入端點、重建過時連線,並確認沒有兩個同時寫入的 split-brain 主資料庫。故障回復及複本重建步驟也應記錄在同一份操作手冊。
- 清楚定義誰或甚麼工具有權提升複本
- 允許新寫入者運作前,先隔離或圍堵舊主資料庫
- 使用穩定的應用程式端點、代理或受控 DNS 變更
- 以退避方式重連,避免故障後出現連線風暴
- 記錄故障回復、資料驗證及重建舊主資料庫的流程
備份及日常安全措施
讀取複本不是備份。誤刪資料、錯誤遷移及已損壞的寫入都可能同步到所有複本。應獨立保留基礎備份及交易日誌封存,讓團隊可以在事故發生前的指定時間點復原。
- 復原副本應存放在主資料庫及複本以外的故障範圍,並限制存取權限,在獨立容量上測試還原。復原計劃需要寫明保留期、加密、還原次序、重建時間,以及恢復節點重新投入服務前的檢查。
- 獨立於複本健康狀況,定期建立並驗證基礎備份
- 持續封存交易日誌,並監察封存失敗
- 以受保護的方式保留伺服器外或跨站副本
- 用時間點復原處理操作員、應用程式及遷移錯誤
- 按訂定的 RPO 及 RTO 進行還原、提升及複本重建演練
總結
裸機伺服器上的讀取複本可以提高資料庫讀取容量,同時保持資源分配較為可預測。要令設計可靠,必須一併定義路由、一致性、延遲門檻、伺服器容量、故障切換權限、備份及監察。
如工作負載需要資料庫及相關服務的可預測單租戶容量,Dataplugs 提供具備可配置 CPU、記憶體、儲存及網絡選項的專屬伺服器方案。
如需了解更多,歡迎瀏覽 Dataplugs 或聯絡 sales@dataplugs.com。