Mysql異步復(fù)制、同步復(fù)制、半同步復(fù)制的區(qū)別

這篇文章主要介紹“MySQL異步復(fù)制、同步復(fù)制、半同步復(fù)制的區(qū)別”,在日常操作中,相信很多人在Mysql異步復(fù)制、同步復(fù)制、半同步復(fù)制的區(qū)別問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Mysql異步復(fù)制、同步復(fù)制、半同步復(fù)制的區(qū)別”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)主營(yíng)彰武網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開發(fā)公司,彰武h5微信平臺(tái)小程序開發(fā)搭建,彰武網(wǎng)站營(yíng)銷推廣歡迎彰武等地區(qū)企業(yè)咨詢

一、異步復(fù)制、同步復(fù)制、半同步復(fù)制的區(qū)別

    異步復(fù)制:在主從架構(gòu)中假如當(dāng)客戶端發(fā)送了一條UPDATE語(yǔ)句,主服務(wù)器上I/O thread 線程將二進(jìn)制日志寫入binlog文件之后就返回客戶端結(jié)果,不管從服務(wù)器是否已經(jīng)同步到從服務(wù)器的relaylog中,性能是最好的,缺點(diǎn)主服務(wù)器宕機(jī),容易造成數(shù)據(jù)不一致,Mysql中默認(rèn)使用的就是異步復(fù)制

    同步復(fù)制:當(dāng)主服務(wù)器完成更新,并且同步到所有從服務(wù)器才會(huì)返回成功結(jié)果,效率低,影響性能

    半同步復(fù)制:將兩種方法折中,當(dāng)主服務(wù)器完成更新,至少有一個(gè)從服務(wù)器接收到并完成更新,主服務(wù)器就返回成功

二、具體實(shí)現(xiàn)

半同步至少需要3臺(tái)主機(jī),2臺(tái)和異步就沒有區(qū)別了,需要使用Mysql5.5以上版本,半同復(fù)制是通過插件Mysql包中的插件實(shí)現(xiàn)的

1、搭建主從復(fù)制

主服務(wù)器

vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
server-id=57       #添加唯一 id                                                               
log-bin         #開啟二進(jìn)制日志
創(chuàng)建賬號(hào)
MariaDB [(none)]> grant replication slave on *.* to repluser@'192.168.12.%' identified by '12345';
查看當(dāng)前二進(jìn)制日志位置
show master logs;

從服務(wù)器配置方法類似,不重復(fù)寫了

vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
server-id=27   #添加唯一 id 
log-bin     #開啟二進(jìn)制日志

Mysql異步復(fù)制、同步復(fù)制、半同步復(fù)制的區(qū)別

2、半同步復(fù)制配置

主服務(wù)器

MariaDB [(none)]> show plugins;  #可以查看安裝的插件

安裝主節(jié)點(diǎn)的插件

MariaDB [(none)]>INSTALL PLUGIN rpl_semi_sync_master SONAME  'semisync_master.so';  #安裝主節(jié)點(diǎn)的插件
MariaDB [(none)]>SET GLOBAL rpl_semi_sync_master_enabled=1;   #啟用
MariaDB [(none)]> SET GLOBAL rpl_semi_sync_master_timeout = 10000;  #10000ms不同步,主服務(wù)器直接回應(yīng)客戶端,默認(rèn)10000
MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE '%semi%';      #查看主節(jié)點(diǎn)狀態(tài)

Mysql異步復(fù)制、同步復(fù)制、半同步復(fù)制的區(qū)別

MariaDB [(none)]> SHOW GLOBAL STATUS LIKE '%semi%';   #查看狀態(tài)變量

二臺(tái)從服務(wù)器配置一樣

MariaDB [(none)]> INSTALL PLUGIN rpl_semi_sync_slave SONAME  'semisync_slave.so';   #安裝從節(jié)點(diǎn)插件
MariaDB [(none)]> SET GLOBAL rpl_semi_sync_slave_enabled=1;    #啟用
MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE '%semi%'; 
MariaDB [(none)]> stop slave;  #從節(jié)點(diǎn)配置過需要重啟線程才生效
MariaDB [(none)]> start slave;  #啟動(dòng)后在主服務(wù)器狀態(tài)變量中可以看到一個(gè)從節(jié)點(diǎn)

三、驗(yàn)證

在主服務(wù)器上創(chuàng)建數(shù)據(jù)庫(kù),二個(gè)從節(jié)點(diǎn)都可以同步

Mysql異步復(fù)制、同步復(fù)制、半同步復(fù)制的區(qū)別

Mysql異步復(fù)制、同步復(fù)制、半同步復(fù)制的區(qū)別

停止其中一個(gè)從服務(wù)器的Mariadb服務(wù)。同步不受影響

當(dāng)二個(gè)從服務(wù)器服務(wù)都關(guān)閉,主服務(wù)器會(huì)等到rpl_semi_sync_master_timeout時(shí)間到了之后再執(zhí)行

到此,關(guān)于“Mysql異步復(fù)制、同步復(fù)制、半同步復(fù)制的區(qū)別”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

本文標(biāo)題:Mysql異步復(fù)制、同步復(fù)制、半同步復(fù)制的區(qū)別
標(biāo)題路徑:http://www.muchs.cn/article8/ijcgip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、域名注冊(cè)、企業(yè)建站、建站公司、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司