您好,登錄后才能下訂單哦!
這篇文章主要介紹“Mysql異步復制、同步復制、半同步復制的區(qū)別”,在日常操作中,相信很多人在Mysql異步復制、同步復制、半同步復制的區(qū)別問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Mysql異步復制、同步復制、半同步復制的區(qū)別”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
一、異步復制、同步復制、半同步復制的區(qū)別
異步復制:在主從架構中假如當客戶端發(fā)送了一條UPDATE語句,主服務器上I/O thread 線程將二進制日志寫入binlog文件之后就返回客戶端結果,不管從服務器是否已經(jīng)同步到從服務器的relaylog中,性能是最好的,缺點主服務器宕機,容易造成數(shù)據(jù)不一致,Mysql中默認使用的就是異步復制
同步復制:當主服務器完成更新,并且同步到所有從服務器才會返回成功結果,效率低,影響性能
半同步復制:將兩種方法折中,當主服務器完成更新,至少有一個從服務器接收到并完成更新,主服務器就返回成功
二、具體實現(xiàn)
半同步至少需要3臺主機,2臺和異步就沒有區(qū)別了,需要使用Mysql5.5以上版本,半同復制是通過插件Mysql包中的插件實現(xiàn)的
1、搭建主從復制
主服務器
vi /etc/my.cnf [mysqld] datadir=/var/lib/mysql server-id=57 #添加唯一 id log-bin #開啟二進制日志
創(chuàng)建賬號 MariaDB [(none)]> grant replication slave on *.* to repluser@'192.168.12.%' identified by '12345'; 查看當前二進制日志位置 show master logs;
從服務器配置方法類似,不重復寫了
vi /etc/my.cnf [mysqld] datadir=/var/lib/mysql server-id=27 #添加唯一 id log-bin #開啟二進制日志
2、半同步復制配置
主服務器
MariaDB [(none)]> show plugins; #可以查看安裝的插件
安裝主節(jié)點的插件
MariaDB [(none)]>INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; #安裝主節(jié)點的插件 MariaDB [(none)]>SET GLOBAL rpl_semi_sync_master_enabled=1; #啟用 MariaDB [(none)]> SET GLOBAL rpl_semi_sync_master_timeout = 10000; #10000ms不同步,主服務器直接回應客戶端,默認10000 MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE '%semi%'; #查看主節(jié)點狀態(tài)
MariaDB [(none)]> SHOW GLOBAL STATUS LIKE '%semi%'; #查看狀態(tài)變量
二臺從服務器配置一樣
MariaDB [(none)]> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so'; #安裝從節(jié)點插件 MariaDB [(none)]> SET GLOBAL rpl_semi_sync_slave_enabled=1; #啟用 MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE '%semi%'; MariaDB [(none)]> stop slave; #從節(jié)點配置過需要重啟線程才生效 MariaDB [(none)]> start slave; #啟動后在主服務器狀態(tài)變量中可以看到一個從節(jié)點
三、驗證
在主服務器上創(chuàng)建數(shù)據(jù)庫,二個從節(jié)點都可以同步
停止其中一個從服務器的Mariadb服務。同步不受影響
當二個從服務器服務都關閉,主服務器會等到rpl_semi_sync_master_timeout時間到了之后再執(zhí)行
到此,關于“Mysql異步復制、同步復制、半同步復制的區(qū)別”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。