這篇文章將為大家詳細(xì)講解有關(guān)MySQL中MGR單主多主模式切換的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)長(zhǎng)期為數(shù)千家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為遼陽(yáng)企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,遼陽(yáng)網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
主庫(kù)執(zhí)行
CREATE DATABASE test CHARACTER SET utf8 COLLATE utf8_general_ci; use test; create table if not exists h2 (id int(10) PRIMARY KEY AUTO_INCREMENT,name varchar(50) NOT NULL); insert into test.h2 values(1,"wang"),(2,"guo"),(3,"yang"),(4,"he"); select * from test.h2;
從庫(kù)測(cè)試
delete from test.h2 where id>3; ERROR 1290 (HY000): The MySQL server is running with the --super-read-only option so it cannot execute this statement
1、單主切換到多主模式
1.1、停止組復(fù)制(在所有MGR節(jié)點(diǎn)上執(zhí)行):
stop group_replication; set global group_replication_single_primary_mode=OFF; set global group_replication_enforce_update_everywhere_checks=ON;
1.2、隨便某個(gè)mgr節(jié)點(diǎn)執(zhí)行:186
SET GLOBAL group_replication_bootstrap_group=ON; START GROUP_REPLICATION; SET GLOBAL group_replication_bootstrap_group=OFF;
1.3、然后在其它mgr節(jié)點(diǎn)執(zhí)行:194 195
START GROUP_REPLICATION;
1.4、查看mgr組信息(任意MGR節(jié)點(diǎn)查看)
SELECT * FROM performance_schema.replication_group_members;
可以看到所有MGR節(jié)點(diǎn)狀態(tài)都是online,角色都是PRIMARY,MGR多主模式搭建成功。
驗(yàn)證下MGR多主模式的節(jié)點(diǎn)數(shù)據(jù)同步:
在MGR-node1節(jié)點(diǎn)更新數(shù)據(jù):
在MGR-node2節(jié)點(diǎn)更新數(shù)據(jù)
在MGR-node3節(jié)點(diǎn)更新數(shù)據(jù)
MGR多主模式下, 所有節(jié)點(diǎn)都可以進(jìn)行讀寫(xiě)操作.
2、切回單主模式
2.1、停止組復(fù)制(在所有MGR節(jié)點(diǎn)上執(zhí)行):
stop group_replication; set global group_replication_enforce_update_everywhere_checks=OFF; set global group_replication_single_primary_mode=ON;
2.2、選擇一個(gè)節(jié)點(diǎn)作為主節(jié)點(diǎn),在主節(jié)點(diǎn)上執(zhí)行(186):
SET GLOBAL group_replication_bootstrap_group=ON; START GROUP_REPLICATION; SET GLOBAL group_replication_bootstrap_group=OFF;
2.3、在剩余節(jié)點(diǎn),也就是從庫(kù)節(jié)點(diǎn)上執(zhí)行(194 195):
START GROUP_REPLICATION;
2.4、查看MGR組信息(任意MGR節(jié)點(diǎn)上都可查看):
SELECT * FROM performance_schema.replication_group_members;
切回單主模式,主具有讀寫(xiě)權(quán)限,另外兩個(gè)從節(jié)點(diǎn)只讀不可寫(xiě).
設(shè)置MGR組集群的白名單網(wǎng)段: 添加節(jié)點(diǎn)所在網(wǎng)段
stop group_replication; set global group_replication_ip_whitelist="127.0.0.1/32,172.16.60.0/24,172.16.50.0/24,172.16.51.0/24"; start group_replication; show variables like "group_replication_ip_whitelist";
知識(shí)點(diǎn)擴(kuò)充
MySQL Group Replication(MGR)是MySQL官方在5.7.17版本引進(jìn)的一個(gè)數(shù)據(jù)庫(kù)高可用與高擴(kuò)展的解決方案,以插件形式提供,實(shí)現(xiàn)了分布式下數(shù)據(jù)的最終一致性,總結(jié)MGR特點(diǎn)如下:
高一致性:基于分布式paxos協(xié)議實(shí)現(xiàn)組復(fù)制,保證數(shù)據(jù)一致性;
高容錯(cuò)性:自動(dòng)檢測(cè)機(jī)制,只要不是大多數(shù)節(jié)點(diǎn)都宕機(jī)就可以繼續(xù)工作,內(nèi)置防腦裂保護(hù)機(jī)制;
高擴(kuò)展性:節(jié)點(diǎn)的增加與移除會(huì)自動(dòng)更新組成員信息,新節(jié)點(diǎn)加入后,自動(dòng)從其他節(jié)點(diǎn)同步增量數(shù)據(jù),直到與其他節(jié)點(diǎn)數(shù)據(jù)一致;
高靈活性:提供單主模式和多主模式,單主模式在主庫(kù)宕機(jī)后能夠自動(dòng)選主,所有寫(xiě)入都在主節(jié)點(diǎn)進(jìn)行,多主模式支持多節(jié)點(diǎn)寫(xiě)入。
關(guān)于“mysql中MGR單主多主模式切換的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。