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