• 
    

    
    

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

      基于MySQL Cluster和Keepalived實(shí)現(xiàn)數(shù)據(jù)同步和故障轉(zhuǎn)移的實(shí)驗(yàn)研究

      2019-10-08 07:45:24李洪生李一萌
      軟件 2019年1期

      李洪生 李一萌

      摘? 要: 隨著互聯(lián)網(wǎng)技術(shù)的高速發(fā)展以及高速度寫的特性,數(shù)據(jù)庫(kù)集群方案逐漸成為了處理數(shù)據(jù)的必備方案。但是由于技術(shù)上的壁壘和成本較大等原因,商用數(shù)據(jù)庫(kù)集群方案往往對(duì)于中小型企業(yè)并不友好。而開源的MySQL集群方案,以其性能優(yōu)良,經(jīng)濟(jì)成本小,操作簡(jiǎn)便等特點(diǎn),逐步成為中小企業(yè),甚至一些大型互聯(lián)網(wǎng)公司搭建自己數(shù)據(jù)庫(kù)系統(tǒng)的首選。但是MySQL集群方案本身就紛繁多樣,處理數(shù)據(jù)的能力,數(shù)據(jù)同步及故障轉(zhuǎn)移的高可用性也參差不齊。Keepalived是一個(gè)由C語(yǔ)言編寫的項(xiàng)目,主要目標(biāo)是提供負(fù)載均衡和高可用的Linux服務(wù)。Keepalived依賴于Linux Virtual Server內(nèi)核提供的四層負(fù)載均衡,實(shí)現(xiàn)了動(dòng)態(tài)自適應(yīng)和維護(hù),能夠檢測(cè)負(fù)載均衡池中的主機(jī)的健康狀態(tài)。本實(shí)例研究通過搭建MySQL Cluster 和 Keepalived數(shù)據(jù)庫(kù)集群系統(tǒng),證明其可以實(shí)現(xiàn)數(shù)據(jù)同步和故障轉(zhuǎn)移。

      關(guān)鍵詞: Mysql Cluster;Keepalived;數(shù)據(jù)同步;故障轉(zhuǎn)移

      中圖分類號(hào): TP311.131? ? 文獻(xiàn)標(biāo)識(shí)碼: A? ? DOI:10.3969/j.issn.1003-6970.2019.01.015

      【Abstract】: With the rapid development of Internet technology and the characteristics of high-speed writing, database cluster scheme has gradually become a necessary solution for data processing. However, due to technical barriers and high costs, commercial database cluster schemes are often not friendly to small and medium-sized enterprises.With its excellent performance, low cost and easy operation, MySQL cluster has gradually become the first choice for small and medium-sized enterprises, even some large Internet companies to build their own database system.However, MySQL cluster scheme itself is complex and diverse, and the ability to process data, data synchronization and high availability of failover are also uneven.Keepalived is a project written in C language. Its main goal is to provide load balancing and highly available Linux services. Keepalived relies on the four-tier load balancing provided by the Linux Virtual Server kernel, realizes dynamic adaptation and maintenance, and can detect the health status of the host in the load balancing pool. Case studies show that MySQL Cluster and Keepalived can achieve data synchronization and fault transfer.

      【Key words】: Mysql cluster; Keepalived; Data synchronization; Fault transfer

      0? 引言

      在互聯(lián)網(wǎng)時(shí)代,軟件的運(yùn)行環(huán)境和開發(fā)方法發(fā)生了重要變化,但數(shù)據(jù)庫(kù)的作用一直都是重中之重,數(shù)據(jù)庫(kù)的性能直接影響著開發(fā)的效率,甚至決定著一個(gè)系統(tǒng)的優(yōu)劣。應(yīng)用系統(tǒng)復(fù)雜度日益增加,對(duì)數(shù)據(jù)庫(kù)的要求也是越來越高,如何搭建自己的數(shù)據(jù)庫(kù)系統(tǒng),已經(jīng)是所有企業(yè)最為關(guān)注的焦點(diǎn)。但是對(duì)于一些中小企業(yè)來講,商用的數(shù)據(jù)庫(kù)軟件成本太高,并不適合自己的整體運(yùn)營(yíng),而一些開源的數(shù)據(jù)庫(kù)軟件,不但成本低,更是由于不斷的更新迭代日趨完善,完全可以滿足大多數(shù)企業(yè)的需求[1-3]。MySQL本身版本就非常多樣化,和不同的軟件配合搭建數(shù)據(jù)庫(kù)系統(tǒng)也可以發(fā)揮出不同的效果,滿足不同的需求。本研究通過在真實(shí)服務(wù)器上搭建MySQL Cluster和Keepalived的數(shù)據(jù)庫(kù)集群系統(tǒng),實(shí)現(xiàn)了不同數(shù)據(jù)庫(kù)節(jié)點(diǎn)之間的數(shù)據(jù)同步,同時(shí)也實(shí)現(xiàn)了數(shù)據(jù)庫(kù)系統(tǒng)的故障轉(zhuǎn)移,當(dāng)有節(jié)點(diǎn)發(fā)生故障時(shí),還能夠保證數(shù)據(jù)庫(kù)集群系統(tǒng)的正常運(yùn)行,實(shí)現(xiàn)了數(shù)據(jù)庫(kù)系統(tǒng)的高可用性。

      1? 原理說明

      1.1? 同步復(fù)制

      MySQLCluster的主從同步復(fù)制的原理,首先主服務(wù)器會(huì)把對(duì)數(shù)據(jù)庫(kù)的創(chuàng)建、刪除、更新操作以二進(jìn)制的形式記錄到日志中,從服務(wù)器以心跳的方式從主服務(wù)器中接受其已經(jīng)記錄的更新,從服務(wù)器按照收到日志里面記錄的更新進(jìn)行數(shù)據(jù)同步操作,進(jìn)而保證與主服務(wù)器數(shù)據(jù)一致。從服務(wù)器在讀取日志和操作節(jié)點(diǎn)數(shù)據(jù)時(shí),并不會(huì)干擾主服務(wù)器對(duì)數(shù)據(jù)庫(kù)的操作并記錄日志,主服務(wù)器依然可以繼續(xù)處理更新[4-5]。

      1.2? Keepalived原理

      首先在155上創(chuàng)建數(shù)據(jù)庫(kù)AA,在156上不創(chuàng)建,可以直接進(jìn)入AA庫(kù),數(shù)據(jù)同步成功,沒有感到時(shí)間延遲;

      通過windows上的navicat軟件連接數(shù)據(jù)庫(kù),我們連接的是192.168.119.89,而不是192.168.119.156,這樣當(dāng)156宕機(jī)之后,89就會(huì)自動(dòng)轉(zhuǎn)移到155上,繼續(xù)保證連接正常使用,達(dá)到故障轉(zhuǎn)移的目的。通過navicat軟件,在數(shù)據(jù)庫(kù)AA中新建表user,插入一些數(shù)據(jù),然后到155和156上查詢一下看數(shù)據(jù)是否同步,經(jīng)驗(yàn)證數(shù)據(jù)同步成功;

      將156宕機(jī),在navicat(連接89)上繼續(xù)進(jìn)行數(shù)據(jù)庫(kù)操作,剛開始的十幾秒是不行的,ip正在轉(zhuǎn)移中,大約十幾秒之后,恢復(fù)正常,通過navicat插入一條新數(shù)據(jù)成功,啟動(dòng)156服務(wù)器及數(shù)據(jù)節(jié)點(diǎn)和sql節(jié)點(diǎn)后,數(shù)據(jù)同步成功;

      將156宕機(jī),在navicat(連接88)上繼續(xù)進(jìn)行數(shù)據(jù)庫(kù)操作,操作不受影響,啟動(dòng)156服務(wù)器及數(shù)據(jù)節(jié)點(diǎn)和sql節(jié)點(diǎn)后,數(shù)據(jù)同步成功;

      將管理節(jié)點(diǎn)宕機(jī),在navicat(88或89)上繼續(xù)進(jìn)行數(shù)據(jù)庫(kù)操作,操作數(shù)據(jù)正常,數(shù)據(jù)同步成功,說明集群?jiǎn)?dòng)成功后,管理節(jié)點(diǎn)出現(xiàn)故障仍然可以保證數(shù)據(jù)節(jié)點(diǎn)和sql節(jié)點(diǎn)的正常運(yùn)行;

      將管理節(jié)點(diǎn)和把156關(guān)機(jī),集群中只留下155節(jié)點(diǎn),連接89的navicate出現(xiàn)延遲,之后操作正常,連接88的navicate沒有出現(xiàn)延遲,操作正常,將管理節(jié)點(diǎn)和156啟動(dòng)后,查看數(shù)據(jù)同步成功;

      將156和155都宕機(jī),navicate全部不可用,無(wú)法正常操作。

      4? 結(jié)論

      通過上述實(shí)驗(yàn)表明,MySQL Cluster和Keepalived搭建的數(shù)據(jù)庫(kù)集群系統(tǒng),只要集群中有任何一個(gè)sql節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)存活,就可以保證集群的正常運(yùn)行。當(dāng)某些節(jié)點(diǎn)出現(xiàn)故障時(shí),整個(gè)數(shù)據(jù)庫(kù)集群系統(tǒng)仍然能夠運(yùn)行正常,當(dāng)出現(xiàn)故障的服務(wù)器重新啟動(dòng)后,數(shù)據(jù)也可以同步成功。因此,本研究通過在真實(shí)服務(wù)器上搭建MySQL Cluster和Keepalived的數(shù)據(jù)庫(kù)集群系統(tǒng),實(shí)現(xiàn)了不同數(shù)據(jù)庫(kù)節(jié)點(diǎn)之間的數(shù)據(jù)同步,同時(shí)也實(shí)現(xiàn)了數(shù)據(jù)庫(kù)系統(tǒng)的故障轉(zhuǎn)移,實(shí)現(xiàn)了數(shù)據(jù)庫(kù)系統(tǒng)的高可用性。

      參考文獻(xiàn)

      錢景輝, 廖鋰. 基于Keepalived的動(dòng)態(tài)浮動(dòng)IP集群實(shí)現(xiàn)[J].? 化工自動(dòng)化及儀表. 2012(7).

      劉維志. 數(shù)據(jù)庫(kù)應(yīng)用的高可用性及實(shí)現(xiàn)技術(shù)研究[J]. 信息系統(tǒng)工程. 2013(4).

      牛亞偉, 林昭文, 馬嚴(yán)等. 數(shù)據(jù)流信息從MySQL 到HBase 的遷移策略的研究[J]. 軟件, 2015, 36(11): 01-05.

      于雪平, 孟丹. 數(shù)據(jù)庫(kù)應(yīng)用的高可用性及實(shí)現(xiàn)技術(shù)[J]. 計(jì)算機(jī)應(yīng)用研究, 2004(5).

      廖琴, 文成玉. MySQL數(shù)據(jù)庫(kù)高可用性的研究與實(shí)現(xiàn)[J]. 科技風(fēng), 2016(18): 100.

      高梅. 淺談Oracle數(shù)據(jù)庫(kù)高可用性解決方案[J]. 福建電腦, 2006(2).

      季菁葦. 計(jì)算機(jī)數(shù)據(jù)庫(kù)技術(shù)在信息管理中的應(yīng)用研究探討[J]. 軟件, 2018, 39(6): 160-163.

      張?zhí)煺? 基于數(shù)據(jù)庫(kù)條件下購(gòu)物網(wǎng)站建設(shè)評(píng)估與研究[J]. 軟件, 2015, 36(3): 75-82.

      史尤昭. 數(shù)據(jù)挖掘技術(shù)研究與應(yīng)用[J].軟件, 2015, 36(11): 38-42.

      王偉. 基于復(fù)雜網(wǎng)絡(luò)的大型軟件復(fù)雜性度量[J]. 軟件, 2015, 36(11): 92-95.

      陳曉燕, 張?chǎng)H. 數(shù)據(jù)庫(kù)系統(tǒng)原理課程教學(xué)改革探索[J]. 軟件, 2018, 39(3): 102-105.

      謝華成, 馬學(xué)文. MongoDB數(shù)據(jù)庫(kù)下文件型數(shù)據(jù)存儲(chǔ)研究[J]. 軟件, 2015, 36(11): 12-14.

      張琪. 大數(shù)據(jù)背景下軟件測(cè)試的挑戰(zhàn)與展望[J]. 軟件, 2018, 39(6): 181-183.

      榕江县| 阜城县| 衡阳市| 托克逊县| 芒康县| 屯门区| 上栗县| 北海市| 遂宁市| 晋江市| 大邑县| 马鞍山市| 龙里县| 潢川县| 安乡县| 富宁县| 新宁县| 鹤岗市| 都昌县| 庆元县| 永州市| 万州区| 海林市| 汕头市| 山西省| 广安市| 郎溪县| 东安县| 仪征市| 张家川| 巫溪县| 乐平市| 兰坪| 龙里县| 勐海县| 开封市| 马关县| 雷州市| 锦屏县| 新竹县| 嘉善县|