本篇內(nèi)容主要講解“MySQL主從同步機制原理”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“mysql主從同步機制原理”吧!
“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是創(chuàng)新互聯(lián)的服務宗旨!把網(wǎng)站當作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設中就是為了建設一個不僅審美在線,而且實用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對成都網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁設計、網(wǎng)站優(yōu)化、網(wǎng)絡推廣、探索永無止境。
1、binlog+pos同步(默認為異步)
從服務器通過IO進程讀取主庫的binlog,寫入到relay_log中,
從服務器通過sql running進程讀取從庫的relay_log,并寫入到從庫的bin_Log實現(xiàn)同步
我們生產(chǎn)一般使用row模式,因為有些函數(shù)在使用mix和state模式可能會報錯。
2、半同步(5.5開始)
半同步就是就是用戶向mysql寫入數(shù)據(jù),先寫入到主庫,然后生成binlog日志。主庫等待從庫來取binlog日志,如果從庫超過10秒沒有來獲取binlog日志。主庫自動轉換為異步,以后用戶寫入數(shù)據(jù)生成binlog日志,等待用戶自己來取,沒有取到主庫也不在管理。
介于異步復制和全同步復制之間,主庫在執(zhí)行完客戶端提交的事務后不是立刻返回給客戶端,而是等待至少一個從庫接收到并寫到relay log中才返回給客戶端。相對于異步復制,半同步復制提高了數(shù)據(jù)的安全性,同時它也造成了一定程度的延遲,這個延遲最少是一個TCP/IP往返的時間。所以,半同步復制最好在低延時的網(wǎng)絡中使用。
在沒有指明的情況下,默認都是異步復制。
3、GTID同步(5.6.10開始)
使用UUID+事務ID作為全局事物標識,UUID為每臺機器的標識符,事務ID記錄最新的事務,不在使用binlog+pos開啟復制。而是使用master_auto_postion=1的方式自動匹配GTID斷點進行復制。
4、group replication(5.7.17開始)
基于傳統(tǒng)異步復制和半同步復制的缺陷——數(shù)據(jù)的一致性問題無法保證,MySQL官方在5.7.17版本正式推出組復制,也就是MGR。
由若干個節(jié)點共同組成一個復制組,一個事務的提交,必須經(jīng)過組內(nèi)大多數(shù)節(jié)點(N / 2 + 1)決議并通過,才能得以提交。由3個節(jié)點組成一個復制組,Consensus層為一致性協(xié)議層,在事務提交過程中,發(fā)生組間通訊,由2個節(jié)點決議(certify)通過這個事務,事務才能夠最終得以提交并響應。
半同步的開啟方法和前提條件:
要想使用半同步復制,必須滿足以下幾個條件:
1. MySQL 5.5及以上版本
2. 變量have_dynamic_loading為YES
3. 異步復制已經(jīng)存在
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)
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則正常啟動。
到此,相信大家對“mysql主從同步機制原理”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
網(wǎng)站標題:mysql主從同步機制原理
本文鏈接:http://aaarwkj.com/article4/gdeeoe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供、網(wǎng)站收錄、品牌網(wǎng)站設計、全網(wǎng)營銷推廣、搜索引擎優(yōu)化、網(wǎng)頁設計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)