當前位置:
首頁 > 知識 > MySQL主從複製架構及原理

MySQL主從複製架構及原理


一、簡介


在實際生產中,數據的重要性不言而喻,因此考慮到數據的重要性比如單點故障導致後端資料庫奔潰,或者後端資料庫訪問壓力過大等,mysql資料庫做主從非常有必要,減輕後端資料庫壓力,主伺服器負責讀寫,從伺服器只負責讀,這樣一來即保證了數據的可靠性,同時提高伺服器的高可用。


MySQL主從複製架構如圖:



MySQL主從複製架構及原理


MySQL主從複製原理:


master伺服器將數據的改變記錄二進位日誌,當master上的數據發生改變時,則將其改變寫入二進位日誌中,salve伺服器會在一定時間間隔內對master二進位日誌進行探測其是否發生改變,如果發生改變,則開始一個I/OThread請求master二進位事件,同時主節點為每個I/O線程啟動一個dump線程,用於向其發送二進位事件,並保存至從節點本地的中繼日誌中,從節點將啟動SQL線程從中繼日誌中讀取二進位日誌,在本地重放,使得其數據和主節點的保持一致,最後I/OThread和SQLThread將進入睡眠狀態,等待下一次被喚醒。


二、主從複製配置實現


要求:


1、雙方mysql版本需一致,如不一致,只要主節點低於從節點


2、兩節點間時間需同步


配置:


主伺服器配置如下:


1、修改/etc/my.cnf配置文件


log-bin=/mydata/data/binlogs/master-bin

2、創建此目錄並修改屬組屬主為mysql


mkdir /mydata/binlogs/


chown -R mysql.mysql /mydata/binlogs/


3、授權用戶


grant replication slave,replication client on *.* to 'repluser'@'10.1.10.%' identified by 'pass';


flush privileges;


從伺服器配置如下:


1、修改/etc/my.cnf配置文件,注釋二進位日誌,開啟中繼日誌,修改server-id和主節點不一致


server-id=11


relay-log=/mydata/relaylogs/relay-bin

2、創建其目錄並授予此目錄的屬主、屬組為mysql


mkdir /mydata/relaylogs/


chown -R mysql.mysql /mydata/relaylogs/


3、連接主伺服器


change master to master_host='10.1.10.1',master_user='repluser',master_password='pass';


完成上訴配置過程即可各自啟動mysql伺服器,且在從伺服器上啟動I/O,SQL線程,例如:start slave


測試兩數據可數據是否能同步,則可在主庫上插入數據在從庫上查看是否存在,注意:從庫只能讀,而不能寫



MySQL主從複製架構及原理




MySQL主從複製架構及原理



MySQL主從複製架構及原理



三、實戰:主從不同步時,如何進行數據同步至一致


描述:當主伺服器已經運行一段時間,並且存在不小的數據時,則需把主伺服器備份,然後在從伺服器恢復,從備份時所在的位置開始複製。


1、將主伺服器上的數據做完全備份


2、在從伺服器上導入主服務上的完全備份,在導入時關閉I/O和SQL線程



MySQL主從複製架構及原理




MySQL主從複製架構及原理


總結:此實戰中最為關鍵主要有兩步主伺服器上鎖表做完全備份,並滾動日誌,從伺服器上進行半道恢復.


文章來源:馬哥教育


官方微信:馬哥linux運維

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 馬哥Linux 的精彩文章:

Linux的常用命令

TAG:馬哥Linux |

您可能感興趣

理解MySQL架構
MySQL主從複製實踐
MYSQL M-S主從架構
MySQL資料庫主從複製
MySQL主從複製模式與複製過濾
MySQL主從(MS)、主主(MM)複製
MySQL主從複製使用方法
基於 Docker 搭建 MySQL 主從複製
MySQL 程序管理
MySQL集群架構:MHA+MySQL-PROXY+LVS實現MySQL集群架構高可用等
MySQL-體系結構簡介
MySQL內部開發人員如何看待MySQL組複製?
MySQL簡介與啟動MySql
MySQL操作之DCL
MySQL 的編程
MySQL 安裝
MySQL查詢執行
Oracle MySQL雲服務入門系列1:創建MySQL實例
Oracle MySQL雲服務入門系列3:MySQL實例生命周期管理
《MySQL雲資料庫架構設計與實踐》主題分享