一、基礎
1.目前MySQL主要有三種復制方式
1)異步復制
2)半同步復制
3)增強半同步復制
推薦使用:對性能要求較高的推薦使用異步復制 ,如果運行的金融類業務推薦使用增強半同步復制,並使用ROW+GTID+5.7以上
1.1)異步復制
MySQL復制的默認方式
2.1)半同步復制的優缺點

rpl_semi_sync_master_wait_point=after_commit
缺點1: 幻讀
當用戶發起一個事務,該事務已經寫入redo日志和binlog日志,但該事務還沒寫入從庫,此時處在waiting slave dump處,此時另一個用戶可以讀取到這條數據,而他自己卻不能;
缺點2:數據丟失
一個事務在waiting slave dump處crash后,主庫將比從庫多一條數據
疑問:此時如果主從復制恢復后,該數據時候可以正常同步到從服務器?(未測試!!)
3.1)增強半同步復制

rpl_semi_rsync_master_wait_point=after_sync
改善1:解決幻讀
當用戶發起一個事務,該事務寫入二進制后,便向從庫進行同步,此時其他用戶無法讀取到該數據,解決了幻讀
改善2:解決數據丟失
一個事務在waiting slave dump處crash掉后,可以通過觀察從庫上是否存在主庫的last gtid值,如果存在,這條數據正常恢復,如果不存在則刪除主庫的那條多余的GTID值,然后恢復,保證了數據的完整性;
二、部署
異步復制環境:一主一從
主IP:192.168.20.206
從IP:192.168.20.212
需要3個步驟:
1.給主庫加載半同步復制插件,並件修改主庫的my.cnf參數,;
2.給從庫加載半同步復制插,並件修改從庫的my.cnf參數,;
3.在從庫中執行使用stop salve io_thread 、start slave io_thread命令搞定
1.1)主庫加載半同步復制插件
