mysql 半同步 配置_Mysql 半同步复制配置
以下是配置和監(jiān)控半同步復(fù)制:
1. 半同步復(fù)制功能以plugin的方式接入MySQL,需要在主庫與從庫兩端同時(shí)開啟半同步的支持,具體配置如下:
On the master
mysql>?INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_master.so’;
mysql>?SET GLOBAL rpl_semi_sync_master_enabled = 1;
mysql>?SET GLOBAL rpl_semi_sync_master_timeout = 1000;? # 1 second
On the slave
mysql>?INSTALL PLUGIN rpl_semi_sync_slave SONAME ‘semisync_slave.so’;
mysql>?SET GLOBAL rpl_semi_sync_slave_enabled = 1;
mysql>?START SLAVE;
NOTE: SLAVE端需要先開啟半同步參數(shù),然后啟動從庫復(fù)制,否則,Rpl_semi_sync_slave_status的狀態(tài)始終為:OFF。
2. 通過以下參數(shù)可以判斷半同步是否正常:
Rpl_semi_sync_master_status?--?判斷主庫當(dāng)前模式為半同步還是異步復(fù)制
Rpl_semi_sync_master_clients?--?當(dāng)前處于半同步狀態(tài)的從庫個(gè)數(shù)
Rpl_semi_sync_master_yes_tx,Rpl_semi_sync_master_no_tx?--?主庫收到正常確認(rèn)以及超時(shí)未成功確認(rèn)的事務(wù)個(gè)數(shù)
Rpl_semi_sync_slave_status?--?從庫半同步復(fù)制是否正常,當(dāng)io_thread為NO時(shí),狀態(tài)為OFF
查看半同步相關(guān)參數(shù)及狀態(tài)參數(shù)命令:
mysql>?SHOW VARIABLES LIKE ‘rpl_semi_sync%’;
mysql>?SHOW STATUS LIKE ‘Rpl_semi_sync%’;
-TAKE AWAY-
半同步復(fù)制使MHA更加完美
在之前的文章中曾和大家分享過
半同步可以最大程度的保障主庫執(zhí)行過的語句被成功復(fù)制到從庫relay log中;而當(dāng)主庫發(fā)生故障時(shí),使從庫的狀態(tài)更接近主庫,保持最小的數(shù)據(jù)差異。基于半同步這個(gè)特點(diǎn),可以將其與MHA一起使用,當(dāng)主庫故障,故障自動切換被觸發(fā),在這個(gè)過程中MHA需要比較主庫與從庫日志差異,由于半同步的特點(diǎn),差異日志會盡可能的少,那么MHA在進(jìn)行判斷比較、差異生成、拷貝直至最后的差異應(yīng)用,這一系列的時(shí)間消耗都會得到縮減,這樣MHA的切換時(shí)間就相應(yīng)減少,數(shù)據(jù)庫故障可以快速恢復(fù)。
正常情況下,主庫寫入binlog日志的pos位置與從庫讀到的Read_Master_Log_Pos位置應(yīng)該保持一致;測試中發(fā)現(xiàn),當(dāng)主庫被意外關(guān)掉,仍存在少量的跟新語句沒有被同步過去,這一點(diǎn)在手冊里面有提及(If the master commits but a crash occurs while the master is waiting for acknowledgment from a slave, it is possible that the transaction may not have reached any slave.)
總結(jié)
以上是生活随笔為你收集整理的mysql 半同步 配置_Mysql 半同步复制配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动手学CV-目标检测入门教程5:损失函数
- 下一篇: linux cmake编译源码,linu