最近絕地求生這個(gè)游戲太火了,當(dāng)我問(wèn)我的朋友們你們閑時(shí)在干嘛,基本上告訴我的答案都是在"吃雞"??!想必很多老鐵們也玩,那一定應(yīng)該知道絕地求生中有把槍叫AWM。此槍傷害裸132點(diǎn),爆頭330,即使三級(jí)頭爆頭必死,無(wú)防彈衣或者防彈衣有破損,一槍死。是這個(gè)游戲中威力最大的狙擊×××,足足是98K的兩倍。 那么在MySQL領(lǐng)域有沒(méi)有這么一把威力超大的“槍”呢~答案是必須有啊!但老張先問(wèn)你們一個(gè)問(wèn)題。 請(qǐng)問(wèn)你搭建MySQL復(fù)制的時(shí)候,還在執(zhí)行備份恢復(fù),在從庫(kù)進(jìn)行change master to的操作嘛?如果是那你可就真的落后了。 本章介紹MySQL官方推薦的一款高可用集群方案MySQL Group Replication。簡(jiǎn)稱(chēng):MGR(組復(fù)制)。它是官方推出的一種基于Paxos協(xié)議的狀態(tài)機(jī)復(fù)制,徹底解決了基于傳統(tǒng)的異步復(fù)制和半同步復(fù)制中數(shù)據(jù)一致性問(wèn)題無(wú)法保證的情況。也讓MySQL數(shù)據(jù)庫(kù)涉及的領(lǐng)域更廣,徹底擁有了打開(kāi)互聯(lián)網(wǎng)金融行業(yè)的大門(mén)。 2016年12月 MySQL Group Replication推出了第一個(gè)GA版本發(fā)布在MySQL5.7.17中。但目前直接投入到生產(chǎn)環(huán)境中使用,風(fēng)險(xiǎn)還是比較大。建議等其越來(lái)越成熟之后,我們?cè)僬嬲度胧褂谩?/span> 隨著MySQL8.0版本即將與我們見(jiàn)面,再配合官方逐漸成熟的高可用集群 Group Replication方案,到那時(shí)再看看誰(shuí)還是我們MySQL的對(duì)手,全都不在了!MySQL數(shù)據(jù)庫(kù)就是作者的信仰,愛(ài)你無(wú)怨無(wú)悔。 MGR組復(fù)制原理 先來(lái)談?wù)勈裁唇凶鼋M復(fù)制。組復(fù)制是一種可用于實(shí)現(xiàn)容錯(cuò)系統(tǒng)的技術(shù)。復(fù)制組是一個(gè)通過(guò)消息傳遞相互交互的server集群。復(fù)制組由多個(gè)server成員組成,如下圖的master1,master2,master3,所有成員獨(dú)立完成各自的事務(wù)。當(dāng)客戶(hù)端先發(fā)起一個(gè)更新事務(wù),該事務(wù)先在本地執(zhí)行,執(zhí)行完成之后就要發(fā)起對(duì)事務(wù)的提交操作了。在還沒(méi)有真正提交之前需要將產(chǎn)生的復(fù)制寫(xiě)集廣播出去,復(fù)制到其他成員。如果沖突檢測(cè)成功,組內(nèi)決定該事務(wù)可以提交,其他成員可以應(yīng)用,否則就回滾。最終,這意味著所有組內(nèi)成員以相同的順序接收同一組事務(wù)。因此組內(nèi)成員以相同的順序應(yīng)用相同的修改,保證組內(nèi)數(shù)據(jù)強(qiáng)一致性。MGR組復(fù)制模式 組復(fù)制可以在兩種模式下運(yùn)行。 在單主模式下,組復(fù)制具有自動(dòng)選主功能,每次只有一個(gè) server 成員接受更新,其他成員只提供讀服務(wù)。在多主模式下運(yùn)行時(shí),所有的 server 成員都可以同時(shí)接受更新,沒(méi)有主從之分,成員角色是完全對(duì)等的。 組復(fù)制默認(rèn)情況下是單主模式,我們可以通過(guò)設(shè)置參數(shù)group_replication_single_primary_mode=off,讓其變成多主模式。本章的實(shí)戰(zhàn)部分就是以多主模式進(jìn)行MGR復(fù)制的搭建。 MGR特性介紹
MGR搭建實(shí)戰(zhàn)演練 環(huán)境介紹:這里我們準(zhǔn)備三個(gè)節(jié)點(diǎn),數(shù)據(jù)庫(kù)半版本使用 MySQL5.7.17 數(shù)據(jù)庫(kù)IP地址 數(shù)據(jù)庫(kù)版本信息 主機(jī)名 Server-id 192.168.56.101 MySQL-5.7.17 node2 1013306
192.168.56.102 MySQL-5.7.17 node3 1023306
192.168.56.103 MySQL-5.7.17 proxysql 1033306 實(shí)戰(zhàn)第1步: GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.56.%' IDENTIFIED BY '123456'; 實(shí)戰(zhàn)第4步: INSTALL PLUGIN group_replication SONAME 'group_replication.so'; 組件安裝完成之后,展示結(jié)果: root@db 13:23: [(none)]> show plugins;
Group Replicationserver_id = 1013306gtid_mode = ONenforce_gtid_consistency = ONmaster_info_repository = TABLErelay_log_info_repository = TABLEbinlog_checksum = NONElog_slave_updates = ONlog_bin = binlogbinlog_format= ROWtransaction_write_set_extraction = XXHASH64loose-group_replication_group_name = '1f2cee29-f9a2-11e7-8cbb-08002783b39d'loose-group_replication_start_on_boot = offloose-group_replication_local_address = 'node2:33061'loose-group_replication_group_seeds ='node2:33061,node3:33062,proxysql:33063'loose-group_replication_bootstrap_group = offloose-group_replication_single_primary_mode=off loose-group_replication_enforce_update_everywhere_checks=true 重點(diǎn)參數(shù)詳解 MGR一定要開(kāi)啟GTID功能 實(shí)戰(zhàn)第6步: CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='123456' FOR CHANNEL 'group_replication_recovery' (MGR需要該異步復(fù)制通道,實(shí)現(xiàn)新節(jié)點(diǎn)加入集群自動(dòng)從其他節(jié)點(diǎn)復(fù)制數(shù)據(jù)的目的,不需要手工指定從哪個(gè)節(jié)點(diǎn)復(fù)制,master_host和master_port信息。都是自動(dòng)完成) SELECT * FROM performance_schema.replication_group_members; 關(guān)閉初始化操作 命令如下: SET GLOBAL group_replication_bootstrap_group = off; 注:replication_group_members表中MEMBER_STATE字段狀態(tài)為ONLINE,再執(zhí)行關(guān)閉初始化命令。 CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='123456' FOR CHANNEL 'group_replication_recovery';set global group_replication_allow_local_disjoint_gtids_join=ON; START GROUP_REPLICATION; 啟動(dòng)成功之后,查看節(jié)點(diǎn)狀態(tài)信息。命令如下 SELECT * FROM performance_schema.replication_group_members;
CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='123456' FOR CHANNEL 'group_replication_recovery';set global group_replication_allow_local_disjoint_gtids_join=ON; START GROUP_REPLICATION; 啟動(dòng)成功之后,查看節(jié)點(diǎn)狀態(tài)信息。命令如下: SELECT * FROM performance_schema.replication_group_members; 可見(jiàn)啟動(dòng)成功之后,三個(gè)成員的狀態(tài)都是ONLINE,證明已經(jīng)開(kāi)始正常工作了。真正可以實(shí)現(xiàn)多節(jié)點(diǎn)的讀寫(xiě)操作了。 以上就是對(duì)于MGR多主模式的原理介紹及其搭建過(guò)程。我們要有一種學(xué)習(xí)新知識(shí)的能力,多實(shí)操,多演練,從中得到其真諦,感受MySQL給我們帶來(lái)的簡(jiǎn)單快樂(lè)!今后還會(huì)多發(fā)布更多技術(shù)的文章,大家多溝通交流! 作者:張甦 投稿:有投稿、尋求報(bào)道意向技術(shù)人請(qǐng)聯(lián)絡(luò) wenmin.yin@enmotech.com |
|
來(lái)自: 數(shù)據(jù)和云 > 《待分類(lèi)》