mysql 半同步 配置_Mysql 半同步复制配置
以下是配置和監控半同步復制:
1. 半同步復制功能以plugin的方式接入MySQL,需要在主庫與從庫兩端同時開啟半同步的支持,具體配置如下:
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端需要先開啟半同步參數,然后啟動從庫復制,否則,Rpl_semi_sync_slave_status的狀態始終為:OFF。
2. 通過以下參數可以判斷半同步是否正常:
Rpl_semi_sync_master_status?--?判斷主庫當前模式為半同步還是異步復制
Rpl_semi_sync_master_clients?--?當前處于半同步狀態的從庫個數
Rpl_semi_sync_master_yes_tx,Rpl_semi_sync_master_no_tx?--?主庫收到正常確認以及超時未成功確認的事務個數
Rpl_semi_sync_slave_status?--?從庫半同步復制是否正常,當io_thread為NO時,狀態為OFF
查看半同步相關參數及狀態參數命令:
mysql>?SHOW VARIABLES LIKE ‘rpl_semi_sync%’;
mysql>?SHOW STATUS LIKE ‘Rpl_semi_sync%’;
-TAKE AWAY-
半同步復制使MHA更加完美
在之前的文章中曾和大家分享過
半同步可以最大程度的保障主庫執行過的語句被成功復制到從庫relay log中;而當主庫發生故障時,使從庫的狀態更接近主庫,保持最小的數據差異。基于半同步這個特點,可以將其與MHA一起使用,當主庫故障,故障自動切換被觸發,在這個過程中MHA需要比較主庫與從庫日志差異,由于半同步的特點,差異日志會盡可能的少,那么MHA在進行判斷比較、差異生成、拷貝直至最后的差異應用,這一系列的時間消耗都會得到縮減,這樣MHA的切換時間就相應減少,數據庫故障可以快速恢復。
正常情況下,主庫寫入binlog日志的pos位置與從庫讀到的Read_Master_Log_Pos位置應該保持一致;測試中發現,當主庫被意外關掉,仍存在少量的跟新語句沒有被同步過去,這一點在手冊里面有提及(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.)
總結
以上是生活随笔為你收集整理的mysql 半同步 配置_Mysql 半同步复制配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动手学CV-目标检测入门教程5:损失函数
- 下一篇: C语言学习及应用笔记之五:C语言type