真正高可用的資料庫,都具備這些技能

摘要:

高可用高可靠,華為雲數據庫有話說。

對於數據庫來說,可用性是永恆的話題。DBA(數據庫管理員) 會按照業務的不同要求,選擇不同的策略,保證系統正常運作。其中包含數據庫本身內核提供的能力,和外部的監控管理系統。那麼真正高可用的數據庫,應該具備哪些技能呢? 這還得從頭說起。

眾所周知,商用數據庫提供全套的管理系統,缺點只有一個,貴。開源數據庫有很多生態工具,此外借助其他組件的解決方案,也能完成相應功能;但使用開元數據庫,有一定技術門檻和維護成本。

雲數據庫的出現,剛好彌補了兩者間的不足。一方面,雲數據庫服務以較低的價格提供了企業級解決方案,節省運維成本,且只需要配置,服務就能按照業務訴求執行不同的管理策略。另一方面,按需付費按需擴展,彈性伸縮能力強,是企業的高性價比選擇。

需要注意的是,不同雲廠商提供的可用性方案和策略也不同。從底層實現上有兩類,一是通過底層能力,比如 AWS 的 DRBD 方案,類似傳統 Shared disk(共用磁盤) 的冷備方案。 一是大部分廠商都使用的,利用數據庫本身能力即數據庫主備同步方式來實現。

我們以最受歡迎的開源數據庫 MySQL 為例。MySQL 同步模式:

異步: 主機事務提交不會確認備機是否接到數據,寫入和數據傳輸是個異步過程,主機性能比較好。

半同步:通常情況下主機會等待備機收到同步過去的 binlog 日誌才提交數據,這樣是為了保證數據不丟失。

那麼,半同步是否能保證數據不丟失呢? 答案是否定的。當網絡異常或其他因素影響時,MySQL 的半同步複製方式會降為異步;因此,其半同步大體來說就是儘量保證數據不丟失,但在異常情況下下,可用性優先。

這就會導致一個問題,當數據庫連接增多時,備實例收集和執行日誌中事務的速度較慢,處理事務能力遠落後於主實例,高負荷的情況越持久,事務積壓越嚴重,故障情況下恢復所需的時間越長。

也就是說,在高併發場景下,開源 MySQL 不但複製延遲突出、故障恢復時間長,而且受可用性優先的同步機制影響,可能出現數據丟失的情況。

華為雲數據庫 RDS for MySQL 是怎麼做的呢?

首先,客戶可以根據業務選擇複製模式。如果業務有對賬系統,希望保證最大的可用性和性能,可以選擇異步; 如果對可靠性要求較高可以選擇半同步。

其次,華為雲數據庫還增加了 HA 高可用策略,客戶可以選擇高可用模式和高可靠模式。 HA 監視器(monitor)除了對主備實例進行健康檢查以外,還記錄主備同步情況,在高可用模式下發現故障直接切換。

高可靠模式下,HA monitor 會根據當前的主備延遲進行判斷,達到一定閾值,則進行可靠性保護,不進行切換,保證數據庫的可靠性。(故障處理方式見下文。)

有了這兩種設置,客戶可以充分根據業務進行靈活選擇。

這些就完了嗎,當然沒有。除了 HA 處理外,華為雲數據庫還提供了補償機制,可以將HA 丟失數據找回。(在雲下,這種高端操作可是要給 DBA 加雞腿的。)

當主備切換、原主實例恢復後,會與原備實例、現在的新主實例做數據檢查, 將丟失的部分數據生成一個“碎片備份”, 客戶可以在備份列表中看到,然後根據業務需要選擇將這部分數據插入。

以上是華為雲在雲服務化方面的優化處理,以提供強大的管理能力。此外,華為雲數據庫增強版更是結合內核和服務化,對其性能進一步優化提升。還是以 MySQL 為例:

同步模式上:華為雲數據庫 MySQL 增強版屏蔽異步模式,對半同步模式性能、並行複製等進行優化。半同步模式下不但性能損耗大幅降低,而且能提供業界領先的性能表現。在高併發場景下,華為雲數據庫 MySQL 增強版始終保持高 QPS,性能達社區版本 MySQL 5.6 的 3 倍、5.7 的 1.5 倍。

在 HA 策略上:華為雲數據庫 MySQL 增強版提供探針和降異步接口,控制降異步的過程,根據客戶的選擇可以提供強同步模式,保證數據0丟失。 在此模式下,如果發生故障則不進行切換,但是對於故障不會置之不理,而是提供虛擬化層面的可靠性策略,可以進行虛擬機層的 HA 漂移,將原主恢復。

從服務化到數據庫內核到底層平臺,華為雲數據庫提供了 360 度的數據庫 SLA 服務等級保障。目前,華為雲多款高可用數據庫引擎可 1 元試用 30 天,配套數據庫免費遷移 “零”中斷上雲活動,歡迎大家體驗。

二維碼鏈接:

https://activity.huaweicloud.com/dbmove/index.html?utm_source=jinritoutiao&utm_medium=sm&utm_content=shujuku_jrtt

https://www.huaweicloud.com/product/dbs.html?utm_source=jinritoutiao&utm_medium=sm&utm_content=shujuku_jrt


分享到:


相關文章: