MySQL數(shù)據(jù)庫雙活同步復(fù)制方案詳解_第1頁
MySQL數(shù)據(jù)庫雙活同步復(fù)制方案詳解_第2頁
MySQL數(shù)據(jù)庫雙活同步復(fù)制方案詳解_第3頁
MySQL數(shù)據(jù)庫雙活同步復(fù)制方案詳解_第4頁
MySQL數(shù)據(jù)庫雙活同步復(fù)制方案詳解_第5頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 MySQL 雙活同步復(fù)制方案詳解 對于數(shù)據(jù)實時同步,其核心是需要基于日志來實現(xiàn),是可以實現(xiàn)準實時的數(shù)據(jù)同步,基于日志實現(xiàn)不會要求數(shù)據(jù)庫本身在設(shè)計和實現(xiàn)中帶來任何額外的約束?;贛ySQL原生復(fù)制主主同步方案這是常見的方案,一般來說,中小型規(guī)模的時候,采用這種架構(gòu)是最省事的。兩個節(jié)點可以采用簡單的雙主模式,并且使用專線連接,在master_A節(jié)點發(fā)生故障后,應(yīng)用連接快速切換到master_B節(jié)點,反之也亦然。有幾個需要注意的地方,腦裂的情況,兩個節(jié)點寫入相同數(shù)據(jù)而引發(fā)沖突,同時把兩個節(jié)點的auto_increment_increment(自增步長)和auto_increment_offset(

2、自增起始值)設(shè)成不同值。其目的是為了避免master節(jié)點意外宕機時,可能會有部分binlog未能及時復(fù)制到slave上被應(yīng)用,從而會導(dǎo)致slave新寫入數(shù)據(jù)的自增值和原先master上沖突了,因此一開始就使其錯開;當然了,如果有合適的容錯機制能解決主從自增ID沖突的話,也可以不這么做,使用更新的數(shù)據(jù)版本5.7+,可以利用多線程復(fù)制的方式可以很大程度降低復(fù)制延遲,同時,對復(fù)制延遲特別敏感的另一個備選方案,是semi-sync半同步復(fù)制,基本上無延遲,不過事務(wù)并發(fā)性能會有不小程度的損失,特別是在雙向?qū)懙臅r候,需要綜合評估再決定?;贕alera replication方案Galera是Coders

3、hip提供的多主數(shù)據(jù)同步復(fù)制機制,可以實現(xiàn)多個節(jié)點間的數(shù)據(jù)同步復(fù)制以及讀寫,并且可保障數(shù)據(jù)庫的服務(wù)高可用及數(shù)據(jù)一致性,基于Galera的高可用方案主要有MariaDB Galera Cluster和Percona XtraDB Cluster(簡稱PXC)。目前PXC用的會比較多一些,數(shù)據(jù)嚴格一致性,尤其適合電商類應(yīng)用,不過PXC也是有其局限性的,如果并發(fā)事務(wù)量很大的話,建議采用InfiniBand網(wǎng)絡(luò),降低網(wǎng)絡(luò)延遲,因為PXC存在寫擴大以及短板效應(yīng),并發(fā)效率會有較大損失,類似semi-sync半同步復(fù)制,Gelera實際只能用三個節(jié)點,網(wǎng)絡(luò)抖動造成的性能和穩(wěn)定性習(xí)慣性問題基于Group Re

4、plication方案通過Paxos協(xié)議提供數(shù)據(jù)庫集群節(jié)點數(shù)據(jù)強一致保證,MGR準確來說是MySQL官方推出的高可用解決方案,基于原生復(fù)制技術(shù),并以插件的方式提供,并且集群間所有節(jié)點可寫入,解決了單個集群的寫入性能,所有節(jié)點都能讀寫,解決網(wǎng)絡(luò)分區(qū)導(dǎo)致的腦裂問題,提升復(fù)制數(shù)據(jù)的可靠性,不過現(xiàn)實還是有些殘酷,目前嘗鮮的并不是很多,同時僅支持InnoDB表,并且每張表一定要有一個主鍵,用于做write set的沖突檢測,必須打開GTID特性,二進制日志格式必須設(shè)置為ROW,用于選主與write setCOMMIT可能會導(dǎo)致失敗,類似于快照事務(wù)隔離級別的失敗場景,目前一個MGR集群最多支持9個節(jié)點,不

5、支持外鍵于save point特性,無法做全局間的約束檢測與部分部分回滾,二進制日志不支持binlog event checksum基于canal方案對于數(shù)據(jù)庫的實時同步,阿里巴巴專門有一個開源項目,即otter來實現(xiàn)分布式數(shù)據(jù)庫的同步復(fù)制,其核心思想仍然是通過獲取數(shù)據(jù)庫的增量數(shù)據(jù)日志,來進行準實時的同步復(fù)制。因此otter本身又依賴于另外一個開源項目即canal,該項目重點則是獲取增量數(shù)據(jù)庫同步日志信息。當前otter的重點是實現(xiàn)mysql間的數(shù)據(jù)庫同步復(fù)制,基本即利用的類似技術(shù)來實現(xiàn)兩個mysql數(shù)據(jù)庫間的雙向同步數(shù)據(jù)庫復(fù)制。要注意這個雙向本身指既可以A-B,也可以從B-A,在某個時間節(jié)點本身是單向的。主從復(fù)制分成三步:master將改變記錄到二進制日志(binary log)中(這些記錄叫做二進制日志事件,binary log events,可以通過show binlog events進行查看);slave將master的binary log events拷貝到它的中繼日志(relay log);slave重做中繼日志中的事件,將改變反映它自己的數(shù)據(jù)。canal原理相對比較簡單:canal模擬mysql slave的交互協(xié)議,偽裝自己為mysql slave,向mysql ma

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論