• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      MySQL數(shù)據(jù)庫高可用性的研究與實現(xiàn)

      2016-07-05 10:06:30廖琴文成玉
      科技風 2016年18期

      廖琴 文成玉

      摘 要:文章分析了MYSQL數(shù)據(jù)庫高可用性的需求和實現(xiàn)方案,介紹了同步復制的工作原理、故障自動切換的原理與實現(xiàn),并用keepalived,來實現(xiàn)虛擬IP的漂移,使服務器在故障切換時不用更改IP,來減少管理員的工作。

      關(guān)鍵詞:同步復制;自動切換;keepalived

      數(shù)據(jù)庫是現(xiàn)代企業(yè)的應用核心,它存儲了組織機構(gòu)中的重要信息,例如訂單信息、客戶信息、產(chǎn)品信息等等。另外,組織機構(gòu)的關(guān)鍵業(yè)務應用的運行還依賴于數(shù)據(jù)庫。這時數(shù)據(jù)庫的高可用性是需要考慮的事情。構(gòu)建一個具有高可用性的IT基礎(chǔ)架構(gòu),對一個對于一個希望取得成功的企業(yè)來說是至關(guān)重要的。

      1 同步復制

      MySQL的主從同步復制時基于主服務器中的二進制日志中記錄所有對數(shù)據(jù)庫的操作(包括創(chuàng)建、刪除、更新等等)。而每個從服務器從主服務器中接受其已經(jīng)記錄到的二進制日子的保存的更新,從而使得從服務器可以對主服務器的數(shù)據(jù)拷貝來執(zhí)行相同的更新。然后封鎖并等待主服務器通知新的更新,從服務器在執(zhí)行備份時不會干擾主服務器跟蹤對數(shù)據(jù)庫的操作,在備份過程中主服務器依然可以繼續(xù)處理更新。

      2 故障自動切換

      當主服務器發(fā)生宕機時,為了避免系統(tǒng)出現(xiàn)錯誤,MySQL數(shù)據(jù)庫要實現(xiàn)故障自動切換。本文介紹的故障切換方案為MHA[ 1 ]。MHA是一位日本人用Perl寫的一套關(guān)于MySQL的故障切換方案,來保證數(shù)據(jù)庫的高可用性。在主服務器宕機時,MHA能夠在較短時間內(nèi)實現(xiàn)自動故障檢測和故障切換。通常在10-30秒以內(nèi),能夠很好地解決在復制過程中數(shù)據(jù)一致性的問題。由于不需要在現(xiàn)有的replication中添加額外的服務器,僅需要一個manager節(jié)點,而一個Manager能管理多套復制,所以能大大地節(jié)約服務器的數(shù)量;另外,安裝簡單,無性能損耗,以及不需要修改現(xiàn)有的復制部署也是它的優(yōu)勢之處。MHA除了能實現(xiàn)自動故障檢測和切換外,還可以被定義成交互式(手動)故障切換、非交互式故障切換和在線切換Master到不同主機。

      3 keepalived

      利用虛擬路由冗余協(xié)議(vrrp)技術(shù)[ 2 ],實現(xiàn)LVS(Linux Virtual Server)和HA(High Aviailabitity)。VRRP(Virtual Router Redundancy Protocol,虛擬路由冗余協(xié)議)是一種容錯協(xié)議,這個協(xié)議內(nèi)的所有路由分為主備,平時數(shù)據(jù)都是由主節(jié)點的IP接口接收轉(zhuǎn)發(fā),一旦主節(jié)點故障,就自動啟動備用節(jié)點,奪取主節(jié)點的IP,接管主節(jié)點的所有轉(zhuǎn)發(fā)工作。本文主要介紹HA(高可用性)的應用。Keepalive的設計結(jié)構(gòu)[ 3 ]如圖1所示。

      有圖可知,兩個子進程都被系統(tǒng)WatchDog看管,兩個子進程各自復雜自己的事,healthchecker子進程復雜檢查各自服務器的健康程度,例如HTTP,LVS等等,如果healthchecker子進程檢查到MASTER上服務不可用了,就會通知本機上的兄弟VRRP子進程,讓他刪除通告,并且去掉虛擬IP,轉(zhuǎn)換為BACKUP狀。

      4 應用與實現(xiàn)

      為了實現(xiàn)MySQL數(shù)據(jù)庫的高可用性,采用了在主從同步復制的框架下,用MHA實現(xiàn)故障自動切換并用keepalived實現(xiàn)虛擬IP的漂移。主服務器宕機后,其二進制日志被從服務器接受,此時會選中應用二進制日志最全的一臺從服務器作為新的主服務器。但是主服務器上還有幾條記錄還沒有同步到二進制日志中,所以從服務器也沒有接收到這個事件,如果發(fā)生切換,將會丟失這個事件。但是如果切換發(fā)生在主從同步復制的框架下,極大的減少了此類的風險。

      Keepalived將檢測到服務器的狀態(tài),如果有一臺服務器出現(xiàn)故障時,keepalived將被檢測到并發(fā)出警告給指定的郵箱。設置一個虛擬的IP地址,在切換時,keepalived實現(xiàn)這個虛擬IP的漂移,這樣大大的減少了管理人員的工作。因為keepalived非常輕量級,速度非???,配置簡單,所以受到眾多企業(yè)運維人員青睞。

      針對上文提到的高可用性需求,搭建并測試,結(jié)果如下表所示:

      5 結(jié)論

      經(jīng)過多年的發(fā)展,MySQL作為一款開源軟件,已經(jīng)形成了很多套的高可用性方案。根據(jù)不同拓撲環(huán)境和要求下,做出相應的改變,來解決一些實際的問題。本文在故障切換的需求下,通過同步復制、MHA和keepalived實現(xiàn)了預期的目標。

      參考文獻:

      [1] MHA官方文檔翻譯,2014.

      [2] 錢景輝,廖鋰.基于keepalived的動態(tài)浮動IP集群實現(xiàn)[J].化工自動化及儀表,2012,39(7):926-928.

      [3] Keepalived原理與實戰(zhàn)精講,2011.

      安远县| 齐河县| 精河县| 新干县| 宾川县| 永登县| 根河市| 定日县| 曲靖市| 惠来县| 安丘市| 双鸭山市| 呼伦贝尔市| 阿拉善左旗| 馆陶县| 拉萨市| 新野县| 文安县| 沙田区| 湘阴县| 抚顺市| 通江县| 左权县| 延吉市| 海晏县| 东丰县| 清镇市| 宣化县| 金乡县| 商洛市| 阿拉善右旗| 克拉玛依市| 虎林市| 和田县| 长子县| 龙岩市| 龙山县| 兴安县| 那坡县| 思茅市| 呼图壁县|