国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

李洪生 李一萌

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

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

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

1? 原理說明

1.1? 同步復制

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

1.2? Keepalived原理

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

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

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

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

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

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

將156和155都宕機,navicate全部不可用,無法正常操作。

4? 結(jié)論

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

參考文獻

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

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

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

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

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

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

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

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

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

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

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

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

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

台南县| 永和县| 宣威市| 论坛| 正宁县| 武威市| 莫力| 银川市| 雅江县| 红安县| 元阳县| 武威市| 中宁县| 交口县| 霍林郭勒市| 滨州市| 泾川县| 昌黎县| 定州市| 金塔县| 泸溪县| 玉山县| 霍山县| 岳阳县| 阳新县| 花垣县| 松阳县| 民乐县| 浏阳市| 抚顺市| 澎湖县| 乐昌市| 肇源县| 尉氏县| 永善县| 依兰县| 新野县| 神农架林区| 梓潼县| 福泉市| 潮安县|