蘇智韜
(大慶油田信息技術公司北京分公司,北京 100043)
在當前網絡環境下,信息越來越成為整個社會環境溝通的載體,甚至可以說,信息本身的安全與穩定,已經成為影響社會環境諸多方面穩定的重要因素。而這種對于信息的安全,進一步推動了數據庫領域相關問題的產生,在MySQL數據庫環境中,高可用性(HA,High Availability)以及相關技術與實現,已經成為確保數據庫工作穩定特征重要手段和依據。
對于MySQL數據庫工作體系而言,高可用性水平在很大程度上受到應用環境的影響,不同的應用領域,對于高可用性的要求都會有所不同。常規而言,高可用性體系需要確保整個系統的可用性,如果可用度達到99.9%,就意味著每年的停機時間不超過8.8小時。而對于要求更為嚴格的軍事環境,可用性甚至會被要求達到99.999%,當然其對應的成本也會隨之激增。
當前在MySQL數據庫系統領域中,較為常見的打造高可用性的手段,是采用雙機服務器并且建立互為同步復制體系,進一步配合結合后臺進程延時數據復制技術,以及服務器IP地址動態“漂移”等相關技術,切實實現對于數據庫系統可用性的提升。隨著技術的發展,目前在該領域中,四機體系也開始投入應用,進一步分為四機兩數據節點系統和四機四數據節點技術兩個主要分類,同時多機體系也在積極的研發過程中,對于兩機以上的高可用性系統而言,當前主要采用MySQL Cluster技術予以展開,實現數據從整體結構上的分布式存儲和熱備份等相關職能。
當前在數據庫環境中存儲的數據有多個類型,不同類型的數據在存儲和加工的過程中都會遵守嚴格的時序特征,并且對應的操作結果還需要進行實時輸出,因此對于數據庫的高可用方面的要求,同樣會重點體現在實時、穩定等方面。除此以外,MySQL數據庫環境中還會存在大量外部信息源數據以及其他操作命令數據等,這些數據攜帶對應的時間戳存在,反映了系統一段時間內的運行情況,因此從數據庫的功能角度看,必須實現有快速數據錄入和數據冗余備份兩個方面的功能。
不同的方案體系,在數據庫的高可用性方面的表現會有所差異。就目前的情況看,雙機方案下集群的構成條件方面,要求至少有一臺工作站上的數據庫系統保持正常狀態;而對應的四機兩數據節點方案則要求兩個數據節點中至少有一個保持正常工作,管理節點同樣至少保持一個正常運行;相比之下四機四數據節點方案下,只需要任意一個數據節點保持正常即可,管理節點同樣有一臺正常即可。但是四機環境之下,系統初始化構建數據庫集群的效率就會相對低下,雙機方案下能夠實現隨操作系統同步啟動完成,但是對于四機環境則需要等待管理節點啟動之后才能實現構建。而從穩定性方面看,尤其是在系統納入新節點這一過程上的耗時方面,雙機方案表現并不穩定,需要取決于納入節點二進制日志增量提及,但是對于四機系統而言,通常可以在10 s之內完成,集群穩定性會更優。當面對故障的時候,數據故障點切換方面,雙機方案依據地址漂移技術來予以實現,通常可以在10 s之內完成,但是四機節點時間會比較長,四機兩數據節點方案下通常可以在30 s內完成,但是對于四數據節點而言,嚴重的時候會達到60 s上下。對于更新指令的執行效率,雙機系統同樣標下良好,能夠實現最多7 000條/s速率,但是四機兩數據節點方案下卻只能處理1 500條/s,而四機四數據節點處理能力只有800條/s左右。
從當前MySQL數據庫的高可用性方案實現以及應用特征的角度看,其核心需求體現在對于響應時間,以及故障切換能力等方面,同時對于服務本身的無縫連接,以及海量數據的存儲和數據庫本身的鏡像機制等方面,也都必須納入到考察的范圍之內。在這樣的綜合考量之下,可以發現雙機服務器MySQL數據庫系統,以及四機服務器MySQL數據庫在當前的應用環境中,分別表現出不同的工作特征,并且服務于不同的應用領域,而對應的在這樣兩個方面的核心技術,也成為目前該領域中的關注重點:
對于雙機服務器MySQL數據庫系統而言,互備份機制、地址漂移技術以及后臺延時復制是其有效提升可用性的核心手段。其中互備份機制即由兩臺服務器組成一個體系,將數據庫的服務端分別安裝在兩臺服務器上,而客戶端則通過網絡展開訪問。該方案之下的兩臺服務器分主從形式,其中主機將日志文件登記在本地,并且以增量工作方式展開對于從機的更新。但是該技術黨主服務器出現故障的時候,會直接導致客戶端無法獲取有效服務,并且在頻繁操作的情況下,可能會出現計算資源占用過大的問題。而地址漂移技術則主要用于實現面向客戶的透明主備切換。由于兩個服務器需要共用IP地址展開服務,因此該技術的存在實際上在于對IP地址實現協調和管理的作用。而后臺延時復制技術在該體系中,則主要面向于哪些時效性要求較高的數據,展開對應服務,確保主次數據庫之間的實時同步;而對于實時性要求比較弱的數據,后臺進程使用mysqldump 命令定時從數據庫主機上將數據導入備機。
而對于四機服務器MySQL數據庫,實現其高可用性的核心技術在于MySQL Cluster,該技術是一種基于無共享的數據庫集群技術,即網絡節點之間不提供文件共享。實際工作中,依據不同服務可以進一步分為三個層次,即SQL訪問層、數據存儲層以及節點管理層,分別擔負不同職責,共同實現整個系統的運行。MySQL Cluster技術在應用環境中具有良好的健康水平,一旦數據節點出現故障,服務節點仍然可以依據其他數據節點來展開對應的服務。
對于MySQL數據庫系統的HA技術而言,當前已經成為其有效展開服務的重要技術之一,并且以一種毋庸置疑的發展狀態,占據了該領域中的重要位置。在實際工作中,對于大型實時控制需求,HA技術在故障切換能力、容錯性能和響應時間等多個方面都表現良好,在未來必然呈現出蓬勃生命力。
[1]陳冠華.基于消息中間件的高可用MySOL集群的研究[J].華中科技大學學報(社會科學版),2012,14(08).
[2]王明宇,王波.數據庫集群系統高可用性的研究與應用[J].中國人民解放軍國防科技技術大學學報(社會科學版),2013,14(07).