mysql主從同步機制
1、binlog+pos同步(預設為非同步)
從伺服器透過IO程式讀取主庫的binlog,寫入到relay_log中,
從伺服器透過sql running程式讀取從庫的relay_log,並寫入到從庫的bin_Log實現同步
我們生產一般使用row模式,因為有些函式在使用mix和state模式可能會報錯。
2、半同步(5.5開始)
半同步就是就是使用者向mysql寫入資料,先寫入到主庫,然後生成binlog日誌。主庫等待從庫來取binlog日誌,如果從庫超過10秒沒有來獲取binlog日誌。主庫自動轉換為非同步,以後使用者寫入資料生成binlog日誌,等待使用者自己來取,沒有取到主庫也不在管理。
介於非同步複製和全同步複製之間,主庫在執行完客戶端提交的事務後不是立刻返回給客戶端,而是等待至少一個從庫接收到並寫到relay log中才返回給客戶端。相對於非同步複製,半同步複製提高了資料的安全性,同時它也造成了一定程度的延遲,這個延遲最少是一個TCP/IP往返的時間。所以,半同步複製最好在低延時的網路中使用。
在沒有指明的情況下,預設都是非同步複製。
3、GTID同步(5.6.10開始)
使用UUID+事務ID作為全域性事物標識,UUID為每臺機器的識別符號,事務ID記錄最新的事務,不在使用binlog+pos開啟複製。而是使用master_auto_postion=1的方式自動匹配GTID斷點進行復制。
4、group replication(5.7.17開始)
基於傳統非同步複製和半同步複製的缺陷——資料的一致性問題無法保證,MySQL官方在5.7.17版本正式推出組複製,也就是MGR。
由若干個節點共同組成一個複製組,一個事務的提交,必須經過組內大多數節點(N / 2 + 1)決議並透過,才能得以提交。由3個節點組成一個複製組,Consensus層為一致性協議層,在事務提交過程中,發生組間通訊,由2個節點決議(certify)透過這個事務,事務才能夠最終得以提交併響應。
半同步的開啟方法和前提條件:
要想使用半同步複製,必須滿足以下幾個條件:
1. MySQL 5.5及以上版本
2. 變數have_dynamic_loading為YES
3. 非同步複製已經存在
1、首先載入外掛,主從分別安裝外掛
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
2、檢視外掛是否安裝成功。
1、show plugins;
rpl_semi_sync_master | ACTIVE | REPLICATION | semisync_master.so | GPL
2、mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE '%semi%';
+----------------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+----------------------+---------------+
| rpl_semi_sync_master | ACTIVE |
+----------------------+---------------+
1 row in set (0.00 sec)
| PLUGIN_NAME | PLUGIN_STATUS |
+----------------------+---------------+
| rpl_semi_sync_master | ACTIVE |
+----------------------+---------------+
1 row in set (0.00 sec)
3、啟動半同步複製(也可以寫在配置檔案中)
SET GLOBAL rpl_semi_sync_master_enabled = 1;
SET GLOBAL rpl_semi_sync_slave_enabled = 1;
4、重啟從上的IO執行緒
mysql> STOP SLAVE IO_THREAD;
mysql> START SLAVE IO_THREAD;
5、檢查半同步是否正確執行
mysql> show status like 'Rpl_semi_sync_master_status';
mysql> show status like 'Rpl_semi_sync_slave_status';
均顯示為ON則正常啟動。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28686045/viewspace-2147735/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- redis主從同步機制Redis主從同步
- mysql主從同步MySql主從同步
- MySQL-技術專題-MySQL主從架構以及[半同步機制]模式大全MySql架構模式
- Window 10 單機配置MYSQL主從同步MySql主從同步
- MySQL主從同步配置MySql主從同步
- MySQL 資料主從同步MySql主從同步
- MySql主從同步介紹MySql主從同步
- MySQL主從同步報error 1236MySql主從同步Error
- mysql主從同步問題整理MySql主從同步
- [資料庫]MYSQL主從同步資料庫MySql主從同步
- Mysql 主從同步原理簡析MySql主從同步
- 使用laradock配置mysql主從同步MySql主從同步
- MySQL-主從複製之同步主從資料MySql
- 一文讀懂MySql主從複製機制MySql
- Mysql主從同步實戰(一)【知其然】MySql主從同步
- MySQL 5.7的安裝及主從複製(主從同步)MySql主從同步
- MySQL主從同步(一主一從、一主多從、主從從)等結構的概述與配置MySql主從同步
- 故障分析 | MySQL 從機故障重啟後主從同步報錯案例分析MySql主從同步
- MySQL 主從同步的基本原理MySql主從同步
- 揭秘MySQL的主從同步實現方案MySql主從同步
- mysql GTID主從複製故障後不停機恢復同步流程MySql
- MySQL主從複製之半同步複製MySql
- MySQL主從複製之非同步複製MySql非同步
- mysql檢視主從同步狀態的方法MySql主從同步
- MongoDB主從模式手動強制同步資料方法MongoDB模式
- RocketMQ主從同步MQ主從同步
- Redis主從同步Redis主從同步
- mysql伺服器主從資料庫同步配置MySql伺服器資料庫
- Ubuntu18 mysql8(maridb 10.4.17 )主從同步UbuntuMySql主從同步
- 主從庫與切片叢集機制
- MySQL 5.7 多主一從(多源複製)同步配置MySql
- MySQL5.7主從複製-半同步複製搭建MySql
- Mongo主從同步原理Go主從同步
- linux下mysql主從複製,實現資料庫同步LinuxMySql資料庫
- MySQL主從不同步問題分析與處理思路MySql
- 架構師必備:MySQL主從同步原理和應用架構MySql主從同步
- MySQL 主從複製,雙機熱備MySql
- 【mysql】mysql的資料庫主從(一主一從)MySql資料庫
- 深入分析Redis的主從複製機制Redis