Mysql主從配置,實(shí)現(xiàn)讀寫分離

主從服務(wù)器利用MySQL的二進(jìn)制日志文件,實(shí)現(xiàn)數(shù)據(jù)同步。二進(jìn)制日志由主服務(wù)器產(chǎn)生,從服務(wù)器響應(yīng)獲取同步數(shù)據(jù)庫。

1.1 mysql支持的復(fù)制類型:
(1):基于語句的復(fù)制: 在主服務(wù)器上執(zhí)行的SQL語句,在從服務(wù)器上執(zhí)行同樣的語句。MySQL默認(rèn)采用基于語句的復(fù)制,效率比較高。 一旦發(fā)現(xiàn)沒法精確復(fù)制時(shí), 會(huì)自動(dòng)選著基于行的復(fù)制。   
(2):基于行的復(fù)制:把改變的內(nèi)容復(fù)制過去,而不是把命令在從服務(wù)器上執(zhí)行一遍. 從mysql5.0開始支持 ‘’
(3):混合類型的復(fù)制: 默認(rèn)采用基于語句的復(fù)制,一旦發(fā)現(xiàn)基于語句的無法精確的復(fù)制時(shí),就會(huì)采用基于行的復(fù)制。
1.2 . 復(fù)制解決的問題
MySQL復(fù)制技術(shù)有以下一些特點(diǎn):
(1) 數(shù)據(jù)分布 (Data distribution )
(2) 負(fù)載平衡(load balancing)
(3) 備份(Backups)
(4) 高可用性和容錯(cuò)行 High availability and failover

復(fù)制如何工作

(1) master將改變記錄到二進(jìn)制日志(binary log)中(這些記錄叫做二進(jìn)制日志事件,binary log events);
(2) slave將master的binary log events拷貝到它的中繼日志(relay log);
(3) slave重做中繼日志中的事件,將改變反映它自己的數(shù)據(jù)。

復(fù)制過程.png

‘’

基于記錄的復(fù)制(Row-Based Replication)

MySQL增加基于記錄的復(fù)制,在二進(jìn)制日志中記錄下實(shí)際數(shù)據(jù)的改變,這與其它一些DBMS的實(shí)現(xiàn)方式類似。這種方式有優(yōu)點(diǎn),也有缺點(diǎn)。優(yōu)點(diǎn)就是可以對任何語句都能正確工作,一些語句的效率更高。主要的缺點(diǎn)就是二進(jìn)制日志可能會(huì)很大,而且不直觀,所以,你不能使用mysqlbinlog來查看二進(jìn)制日志。
對于一些語句,基于記錄的復(fù)制能夠更有效的工作,如:
mysql> INSERT INTO summary_table(col1, col2, sum_col3)
-> SELECT col1, col2, sum(col3)
-> FROM enormous_table
-> GROUP BY col1, col2;
假設(shè),只有三種唯一的col1和col2的組合,但是,該查詢會(huì)掃描原表的許多行,卻僅返回三條記錄。此時(shí),基于記錄的復(fù)制效率更高。

4、復(fù)制的常用拓?fù)浣Y(jié)構(gòu)

復(fù)制的體系結(jié)構(gòu)有以下一些基本原則:
(1) 每個(gè)slave只能有一個(gè)master;
(2) 每個(gè)slave只能有一個(gè)唯一的服務(wù)器ID;
(3) 每個(gè)master可以有很多slave;
(4) 如果你設(shè)置log_slave_updates,slave可以是其它slave的master,從而擴(kuò)散master的更新。

4.1、單一master和多slave
一主多從

如果寫操作較少,而讀操作很時(shí),可以采取這種結(jié)構(gòu)。你可以將讀操作分布到其它的slave,從而減小master的壓力。但是,當(dāng)slave增加到一定數(shù)量時(shí),slave對master的負(fù)載以及網(wǎng)絡(luò)帶寬都會(huì)成為一個(gè)嚴(yán)重的問題。
這種結(jié)構(gòu)雖然簡單,但是,它卻非常靈活,足夠滿足大多數(shù)應(yīng)用需求。一些建議:
(1) 不同的slave扮演不同的作用(例如使用不同的索引,或者不同的存儲引擎);
(2) 用一個(gè)slave作為備用master,只進(jìn)行復(fù)制;
(3) 用一個(gè)遠(yuǎn)程的slave,用于災(zāi)難恢復(fù);

4.2、主動(dòng)模式的Master-Master(Master-Master in Active-Active Mode)
主主.png

Master-Master復(fù)制的兩臺服務(wù)器,既是master,又是另一臺服務(wù)器的slave。這樣,任何一方所做的變更,都會(huì)通過復(fù)制應(yīng)用到另外一方的數(shù)據(jù)庫中。

主動(dòng)的Master-Master復(fù)制有一些特殊的用處。例如,地理上分布的兩個(gè)部分都需要自己的可寫的數(shù)據(jù)副本。這種結(jié)構(gòu)最大的問題就是更新沖突。假設(shè)一個(gè)表只有一行(一列)的數(shù)據(jù),其值為1,如果兩個(gè)服務(wù)器分別同時(shí)執(zhí)行如下語句:
在第一個(gè)服務(wù)器上執(zhí)行:
mysql> UPDATE tbl SET col=col + 1;
在第二個(gè)服務(wù)器上執(zhí)行:
mysql> UPDATE tbl SET col=col * 2;
那么結(jié)果是多少呢?一臺服務(wù)器是4,另一個(gè)服務(wù)器是3,但是,這并不會(huì)產(chǎn)生錯(cuò)誤。
實(shí)際上,MySQL并不支持其它一些DBMS支持的多主服務(wù)器復(fù)制(Multimaster Replication),這是MySQL的復(fù)制功能很大的一個(gè)限制(多主服務(wù)器的難點(diǎn)在于解決更新沖突),但是,如果你實(shí)在有這種需求,你可以采用MySQL Cluster,以及將Cluster和Replication結(jié)合起來,可以建立強(qiáng)大的高性能的數(shù)據(jù)庫平臺。但是,可以通過其它一些方式來模擬這種多主服務(wù)器的復(fù)制。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,750評論 1 375
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,703評論 2 380

推薦閱讀更多精彩內(nèi)容

  • 1、復(fù)制概述: MySQL內(nèi)建的復(fù)制功能是構(gòu)建大型,高性能應(yīng)用程序的基礎(chǔ)。將mysql的數(shù)據(jù)分布到多個(gè)系統(tǒng)上去,這...
    魔法師_閱讀 5,628評論 0 5
  • 一、什么是Mysql主從復(fù)制 MySQL主從復(fù)制是其最重要的功能之一。主從復(fù)制是指一臺服務(wù)器充當(dāng)主數(shù)據(jù)庫服務(wù)器,另...
    人在碼途閱讀 2,791評論 0 23
  • 更多MySQL 技術(shù)交流請加群:428322170 1、復(fù)制概述1.1、復(fù)制解決的問題數(shù)據(jù)復(fù)制技術(shù)有以下一些特點(diǎn):...
    極客學(xué)院Wiki閱讀 1,142評論 0 7
  • 一直以為寫作是件很玄奧的事,完全是靠天賦與文學(xué)素養(yǎng),每次想寫點(diǎn)什么的我,寫了兩三句,就難以為繼了。自媒體時(shí)代,人人...
    yz寫字的地方閱讀 322評論 0 0
  • 后來有一次聊天的時(shí)候,時(shí)冉輕輕松松地問,你知不知道我生日啊。 隋奕說,啊?什么時(shí)候? 時(shí)冉笑了一笑,說,明天啊。 ...
    蘇墨Violet閱讀 692評論 0 2