• 
    

    
    

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

      基于MySQL組復(fù)制技術(shù)數(shù)據(jù)備份策略實(shí)現(xiàn)

      2018-04-11 01:57:10重慶電子工程職業(yè)學(xué)院計(jì)算機(jī)學(xué)院朱崇來
      電子世界 2018年6期
      關(guān)鍵詞:沖突檢測組內(nèi)插件

      重慶電子工程職業(yè)學(xué)院 計(jì)算機(jī)學(xué)院 朱崇來

      0.引言

      MySQL作為一款開源的關(guān)系型數(shù)據(jù)庫,一直以來是中小企業(yè)的數(shù)據(jù)存儲(chǔ)中心,MySQL采用數(shù)據(jù)復(fù)制技術(shù)實(shí)現(xiàn)數(shù)據(jù)備份與容災(zāi)。

      MySQL5.5之前一直采用的是異步復(fù)制技術(shù),主庫在事務(wù)執(zhí)行時(shí),不會(huì)考慮從庫的數(shù)據(jù)備份同步問題,一旦主庫崩潰或是從庫落后備份,就會(huì)造成數(shù)據(jù)不一致。

      MySQL5.5引入了半同步復(fù)制技術(shù),主庫在提交客戶端事務(wù)時(shí),必須要保證至少有一個(gè)從庫接收并寫到relaylog中。由于MySQL半同步復(fù)制的實(shí)現(xiàn)是建立在MySQL異步復(fù)制的基礎(chǔ)上的,在網(wǎng)絡(luò)出現(xiàn)異常或者不穩(wěn)定下,如果從庫沒有收到事務(wù),也就是還沒有寫入到relay log 之前,此時(shí)剛好主庫崩潰了,系統(tǒng)切換到從機(jī),兩邊的數(shù)據(jù)就會(huì)出現(xiàn)不一致。 在此情況下,半同步復(fù)制退化成異步復(fù)制。這也是MySQL半同步復(fù)制存在的問題。

      在2016年,MySQL在5.7引入了MySQL Group Replication是MySQL官方推出的一種基于Paxos協(xié)議的狀態(tài)機(jī)復(fù)制。簡而言之,就是“一個(gè)組提交的事務(wù)都是可以并行回滾”,這些事務(wù)都已進(jìn)入到事務(wù)的prepare階段,則說明事務(wù)之間沒有任何沖突(否則就不可能提交),進(jìn)一步提高數(shù)據(jù)復(fù)制的強(qiáng)一致性。

      1.MySQLGroup Replication框架

      MySQLGroup Replication是基于狀態(tài)機(jī)復(fù)制機(jī)制實(shí)現(xiàn)的,是一個(gè)MySQL插件,它建立在現(xiàn)有的MySQL復(fù)制基礎(chǔ)結(jié)構(gòu)上,集成了當(dāng)前的MySQL框架,它用到了binlog的緩存,slave應(yīng)用器,GTID,relay log,replication線程等服務(wù)基礎(chǔ)設(shè)施。MySQL Group Replication 的插件架構(gòu)如下圖1所示:

      圖1 MySQL Group Replication 插件架構(gòu)

      插件框架的最上層是隔離核心服務(wù)層的API接口層,上層用戶通過訪問API接口與核心層的服務(wù)功能插件通信,包括server的啟動(dòng)、恢復(fù)、接受連接、提交事務(wù)等,組復(fù)制插件根據(jù)相應(yīng)接口的調(diào)用做出相應(yīng)的響應(yīng)動(dòng)作。

      核心服務(wù)插件層由capture、applier、recovery三個(gè)組件組成,capture組件是負(fù)責(zé)追蹤正在執(zhí)行的事務(wù)的信息;applier組件負(fù)責(zé)將遠(yuǎn)程事務(wù)加載到本地執(zhí)行;recovery組件主要管理組內(nèi)節(jié)點(diǎn)的最新狀態(tài),執(zhí)行事務(wù)回滾,直到和組內(nèi)的其他節(jié)點(diǎn)保持一致。

      Replication協(xié)議層模塊實(shí)現(xiàn)了replication協(xié)議的邏輯,邏輯功能包括:處理沖突檢測、接收并傳播事務(wù)到組內(nèi)去執(zhí)行。

      Group communication API是通信工具集的一種高級抽象,主要提供Paxos協(xié)議變種的核心實(shí)現(xiàn),綁定了corosync的接口,該接口實(shí)際上是corosync到client API的一個(gè)隱式映射。

      2.MySQLGroup Replication原理

      MySQL組復(fù)制是一種可用于容錯(cuò)系統(tǒng)的技術(shù),它構(gòu)建在狀態(tài)機(jī)復(fù)制機(jī)制的基礎(chǔ)之上,并利用Paxos的原子廣播原理,實(shí)現(xiàn)多主機(jī)全更新的復(fù)制協(xié)議。復(fù)制組由多個(gè)節(jié)點(diǎn)構(gòu)造一個(gè)數(shù)據(jù)庫集群,組中的每個(gè)節(jié)點(diǎn)都可以獨(dú)立地執(zhí)行事務(wù)。所有讀寫(RW)事務(wù)只有在被組批準(zhǔn)后才會(huì)提交。只讀(RO)事務(wù)不需要在組內(nèi)協(xié)調(diào),可立即提交。當(dāng)一個(gè)事務(wù)在一個(gè)節(jié)點(diǎn)上提交之前,會(huì)在組內(nèi)自動(dòng)進(jìn)行原子性的廣播,告知其他節(jié)點(diǎn)變更了什么內(nèi)容、執(zhí)行了什么事務(wù),然后為該事務(wù)建立一個(gè)全局的序號。最終,通過Paxos來保證組內(nèi)事務(wù)數(shù)據(jù)一致。

      Group Replication原子廣播的不是原始事務(wù)語句而是事務(wù)的Binlog Events。廣播模塊是嵌在事務(wù)執(zhí)行流程中的,不需要和客戶端交互。當(dāng)事務(wù)語句執(zhí)行完準(zhǔn)備提交時(shí),Group Replication會(huì)捕捉到事務(wù)的Binlog Events然后進(jìn)行原子廣播。

      然而,不同的節(jié)點(diǎn)上執(zhí)行的事務(wù)之間有可能存在資源爭用,導(dǎo)致兩個(gè)不同的節(jié)點(diǎn)上并發(fā)執(zhí)行的事務(wù)發(fā)生沖突,因此在每個(gè)節(jié)點(diǎn)上都需要在Certify模塊進(jìn)行沖突檢測,沖突檢測的過程是在每個(gè)模塊上單獨(dú)進(jìn)行的,不需要在各個(gè)節(jié)點(diǎn)之間交互,所有節(jié)點(diǎn)上的事務(wù)都是按照同樣的順序做的沖突檢測。所以任何一個(gè)事務(wù)在所有節(jié)點(diǎn)上的沖突檢測結(jié)果都是相同的。

      從其工作的原理可以看出,Group Replication基于Paxos協(xié)議的一致性算法校驗(yàn)事務(wù)執(zhí)行是否有沖突,然后順序執(zhí)行事務(wù),達(dá)到最終的數(shù)據(jù)一致性。

      3.基于Group Replication組復(fù)制實(shí)現(xiàn)

      (1)MySQL 數(shù)據(jù)庫組復(fù)制環(huán)境準(zhǔn)備

      本實(shí)驗(yàn)環(huán)境的操作系統(tǒng)為CentOS6.8操作系統(tǒng),MySQL 數(shù)據(jù)庫版本為 MySQL-5.7.17。三臺(tái)名為master01、master02、master03機(jī)器上安裝了 MySQL 數(shù)據(jù)庫的服務(wù)器,每一臺(tái)機(jī)器的配置如下表1所示。

      表1 MySQL 數(shù)據(jù)庫組復(fù)制環(huán)境配置列表

      (2)數(shù)據(jù)庫主配文件定義/etc/my.cnf, 下面只對主要參數(shù)作出說明。

      圖2 數(shù)據(jù)庫主配文件參數(shù)命令

      (3)通道授權(quán),建立復(fù)制通道并授權(quán)。

      圖3 數(shù)據(jù)庫授權(quán)命令

      (4)安裝組復(fù)制插件,并啟動(dòng)。

      (5)其余節(jié)點(diǎn)加入集群,其他節(jié)點(diǎn)按照2-4的步驟配置即可。

      (6)集群驗(yàn)證∶創(chuàng)建測試數(shù)據(jù),進(jìn)行集群測試。在各個(gè)節(jié)點(diǎn)都能看到同步的測試數(shù)據(jù),說明集群搭建成功。

      4.總結(jié)

      通過MySQL5.7的組復(fù)制實(shí)驗(yàn)測試結(jié)果表明:組復(fù)制模式配置比異步復(fù)制、半同步復(fù)制、簡單高效。在組復(fù)制環(huán)境下,3臺(tái)MySQL實(shí)例組成的組復(fù)制結(jié)構(gòu)下,只要有1臺(tái)主機(jī)存活,整個(gè)MySQL服務(wù)就可用,在故障主機(jī)恢復(fù)之后,組復(fù)制會(huì)自動(dòng)同步數(shù)據(jù),恢復(fù)組復(fù)制狀態(tài),有效地提高了數(shù)據(jù)復(fù)制的一致性和可靠性。

      [1]何小川. MySQL數(shù)據(jù)庫主從復(fù)制的實(shí)現(xiàn)[J].廣東通信技術(shù),2017(10).

      [2]管文琦.金融行業(yè)MySQL數(shù)據(jù)庫可用方案的思考[J].中國金融電腦,2017(06).

      [3]MySQL 5.5:Improving on the World’s Most Popular Open Source Database.Cabral,Sheeri K.Database Trends and Applications.2011:30.

      猜你喜歡
      沖突檢測組內(nèi)插件
      BIM技術(shù)在建筑裝飾工程項(xiàng)目管理中的應(yīng)用研究
      北方建筑(2024年2期)2024-05-25 00:00:00
      用心說題 提高效率 培養(yǎng)能力
      自編插件完善App Inventor與樂高機(jī)器人通信
      電子制作(2019年22期)2020-01-14 03:16:34
      獨(dú)立學(xué)院補(bǔ)考安排沖突檢測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      計(jì)算機(jī)應(yīng)用安全策略本體研究
      計(jì)劃協(xié)同工作中的沖突檢測與消除算法研究
      MapWindowGIS插件機(jī)制及應(yīng)用
      合作學(xué)習(xí)組內(nèi)交流討論時(shí)間的遵循原則
      合作學(xué)習(xí)“組內(nèi)交流討論時(shí)間”注意問題
      基于Revit MEP的插件制作探討
      巴林右旗| 平度市| 营口市| 麻城市| 肥东县| 遵义市| 嘉鱼县| 内江市| 兴海县| 山阳县| 定边县| 高尔夫| 巴南区| 抚顺县| 泗洪县| 囊谦县| 罗山县| 工布江达县| 玛沁县| 蕉岭县| 永登县| 通山县| 佛教| 辽宁省| 岚皋县| 来安县| 三门峡市| 新宁县| 蕉岭县| 达日县| 天台县| 沂源县| 上高县| 宁波市| 法库县| 衡东县| 浦江县| 阳泉市| 论坛| 靖州| 西峡县|