王學志 馬林 孫寶真
(邯鋼自動化部信息技術中心)
摘 要:信息化技術高速發展,信息化安全保障越來越重要,尤其是數據安全問題成了重中之重,因為數據對于很多的企業是非常重要的,在系統實踐過程中,數據庫為了更好保證數據的安全性、穩定性、數據完整性的運行,我們提供了一種高可用的數據庫設計方案,數據庫會采取雙主機熱備方式保證在一個數據庫出問題的時候,自動連接上另外一個數據庫。實現無縫切換數據庫。同時對數據庫進行的每天兩次定時的備份。最大限度的保證的企業數據的安全。
關鍵詞:數據庫高可用性;linux雙主熱備;數據庫主備同步;數據庫自動切換
1 背景
以前系統在設計時候,數據庫一般就一臺,這種設計本身是沒有問題,一臺服務能夠更好的保證數據的一致性,但是隨著數據量和業務的不斷的增加,數據庫的壓力越來越大,很難保證數據庫不出問題,只要這個數據庫出了故障(數據庫宕機、數據庫服務器脫機等),整個系統就無法運行,為了更好的解決這個問題,我們將數據庫設計成兩臺,采用雙主熱備的方式,當其中的一臺數據庫故障,另外一臺機器自動接管,保證系統前臺正常的使用。
近期邯鋼自動化部信息技術中心承接了邯鋼集團恒生資源倉儲系統的項目建設,由于業務是24小時不間斷運行,因此必須保證系統和數據的穩定性,為了保證系統數據的安全、穩定,我們特意準備了兩太臺數據庫服務器,進行主備數據實時的備份,并且對數據庫每天進行兩個的定時備份,數據庫文件保留10天的備份記錄
2 技術選型
目前數據庫的高可用設計市面上存在多種方案有雙機高可用方案、主從結構方案、一主多從+讀寫分離等。
高可用方案
特點:
一臺機器A作為讀寫庫,另一臺B作為備份庫;A庫故障后B庫作為讀寫庫;A庫恢復后A作為備庫。
使用場景:
讀和寫都不高的場景(單表數據低于500萬),雙機高可用。
主從結構方案
特點:
一臺機器A作為寫庫,另一臺B作為讀庫;A庫故障后B庫充當讀寫,A修復后,B庫為寫庫,A庫為讀庫。
使用場景:
讀和寫都不是非常高的場景(單表數據低于1000萬),高可用。比方案一并發要高很多。
一主多從+讀寫分離
特點:
一個主寫庫A多個從庫,當主庫A故障時,提升從庫B為主寫庫,同時修改C、D庫為B的從庫。A故障修復后,作為B的從庫。
使用場景:
該架構適合寫并發不大、但是讀并發大的很的場景
同時每個方案有的不同的使用場景,不同的數據庫有著不同設計方案,我們使用的是mysql數據庫,我們根據實際的業務場景,最終選用雙機高可用方案作為最終的技術選型。
3 基于keepalived的VRRP協議方式,實現數據庫高可用
Keepalived 是一種高性能的服務器高可用或熱備解決方案, Keepalived 可以用來防止服務器單點故障的發生,通過兩臺或者多臺實現高可用性
Keepalived 以 VRRP 協議為實現基礎,用 VRRP 協議來實現高可用性(HA)。 VRRP(Virtual RouterRedundancy Protocol)協議是用于實現路由器冗余的協議, VRRP 協議將兩臺或多臺路由器設備虛擬成一個設備,對外提供虛擬路由器 IP(一個或多個),而在路由器組內部,如果實際擁有這個對外 IP 的路由器如果工作正常的話就是 MASTER,或者是通過算法選舉產生, MASTER 實現針對虛擬路由器 IP 的各種網絡功能,如 ARP 請求, ICMP,以及數據的轉發等;其他設備不擁有該虛擬 IP,狀態是 BACKUP,除了接收 MASTER 的VRRP 狀態通告信息外,不執行對外的網絡功能。當主機失效時, BACKUP 將接管原先 MASTER 的網絡功能。VRRP 協議使用多播數據來傳輸 VRRP 數據, VRRP 數據使用特殊的虛擬源 MAC 地址發送數據而不是自身網卡的 MAC 地址, VRRP 運行時只有 MASTER 路由器定時發送 VRRP 通告信息,表示 MASTER 工作正常以及虛擬路由器 IP(組), BACKUP 只接收 VRRP 數據,不發送數據,如果一定時間內沒有接收到 MASTER 的通告信息,各 BACKUP 將宣告自己成為 MASTER,發送通告信息,重新進行 MASTER 選舉狀態。
4 設計網絡拓撲圖
數據庫是放在兩個物理機上并且都安裝了高可用的集群keepalived軟件,兩個數據庫之間數據是實時同步,然后虛擬出來一個IP,系統連接數據庫是虛擬IP,虛擬IP默認連接其中的一個數據庫的物理機作為主機,當主機出現問題時候,自動切換備數據庫。
5 工具使用介紹
6 結語
隨著信息化的逐步深入,各個企業都在建立自己的信息化系統,其中的數據安全對于企業來講是非常重要的,數據的丟失會對企業造成很大的損失,然而數據庫是存儲數據的載體,建設高可用性數據庫,是為了更好的解決企業數據安全,保證企業的信息系統能夠平穩運行的一個非常重要技術手段。