1. 程式人生 > >Mysql主從複製原理

Mysql主從複製原理

Mysql主從叢集可以保證從節點和主節點資料一致,這個是通過基於Binary Log的主從複製非同步實現的。

複製原理

複製過程

  1. 主節點將自己所有的寫操作記錄在自己的Binary Log中,主節點維護一個IO執行緒
  2. 從節點維護一個IO執行緒,定期向主節點查詢是否有新的寫操作,如果有,那麼主節點通過IO執行緒把新的寫操作傳送給從節點。
  3. 從節點將得到的寫操作記錄寫入到自己的Relay Log中。
  4. 從節點維護一個SQL執行緒,將Relay Log中的SQL操作都寫入到資料庫。

從複製過程可以看出,從節點上的IO執行緒和SQL執行緒只是共享Relay Log,其餘部分互不影響,所以就是非同步的;IO執行緒把Binary Log拿過來,SQL執行緒可能過一會兒再去執行它。
因此,從節點需要知道兩個檔名和兩個位置:一個是主節點上Binary Log的檔名和IO執行緒讀取的Binary Log的最新位置,每次查詢的時候通過位置判斷是否有新的寫操作,用show slave status\G;

查詢,Master_Log_FileRead_Master_Log_Pos分別表示Binary Log的檔名和位置;另一個是自己Relay Log的檔名和SQL執行緒執行到的位置,用show slave status\G;查詢是Relay_Log_FileExec_Master_Log_Pos.
當從節點出現資料庫不一致的情況時,一般會出現Exec_Master_Log_Pos小於Read_Master_Log_Pos的情況,因為SQL執行緒執行語句出錯了,那麼就會停止執行之後的語句。這個時候Exec_Master_Log_Pos就能排上用場了,因為它表示的是最後一個正確操作的位置,那麼我們只要能手動解決出錯的東西(比如說可能是主節點上的某個操作在從節點上存在逐漸衝突,那麼刪了那條衝突的記錄就好了),然後重新啟動slave,從Exec_Master_Log_Pos
開始重新同步就可以了。詳細操作步驟可以參考另一篇部落格Mysql 主從節點不同步的解決方法

相關推薦

MySQL主從複製原理、半同步操作步驟及原理

1.1 企業Linux運維場景資料同步方案 1.1.1 檔案級別的異機同步方案 1、scp/sftp/nc 命令可以實現遠端資料同步。  2、搭建ftp/http/svn/nfs 伺服器,然後在客戶端上也可以把資料同步到伺服器。  3、搭建sa

MySQL主從複製原理及搭建全過程】

目錄 準備工作 主從複製原理 開始搭建主從複製 本文將使用mariaDB資料庫實現主從複製,其步驟與MySQL資料庫無差異。 MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社群在維護,採用GPL授權許可。 開發這個分支的原因之一是:甲骨文公司收購了MySQL後,有將M

MySQL 主從複製原理及建立過程

前言 mysql 是我工作中常用的資料庫,不過僅限於 SQL 操作,通過阿里雲的 RDS 可以快速生成一個例項,對於其原理並不甚瞭解,所以閒暇之餘瞭解了一下,並記錄下來,與大家共享、交流。 目錄 一、MySQL複製技術 1. 複製的

Mysql主從複製原理

Mysql主從叢集可以保證從節點和主節點資料一致,這個是通過基於Binary Log的主從複製非同步實現的。 複製原理 複製過程 主節點將自己所有的寫操作記錄在自己的Binary Log中,主節點維護一個IO執行緒 從節點維護一個IO執行緒,定期向主節點

mysql 主從複製原理

原文連結:https://www.cnblogs.com/Aiapple/p/5792939.html 主從形式 mysql主從複製 靈活 一主一從主主複製一主多從---擴充套件系統讀取的效能,因為讀是在從庫讀取的;多主一從---5.7開始支援聯級複製---  

MySQL主從複製原理與實操

一、引言 在工作中,對資料庫的資料進行備份是毫無疑問的事情,而資料庫的備份方式又分好多種(此處就不做介紹),最基本的就是一主一從,從機需要不斷的讀取主機的資料二進位制日誌記錄來備份主機的資料,這是資料庫主從複製的第一個應用場景。主從複製的第二個應用場景就是在分散式的系統中,一個數據庫

運維必須要懂的MySQL主從複製原理

為什麼要做主從複製? 1、在業務複雜的系統中,有這麼一個情景,有一句sql語句需要鎖表,導致暫時不能使用讀的服務,那麼就很影響執行中的業務,使用主從複製,讓主庫負責寫,從庫負責讀,這樣,即使主庫出現了鎖表的情景,通過讀從庫也可以保證業務的正常運作。 2、做資料的熱備

mysql主從複製原理詳解

master將改變記錄到二進位制日誌中binlog,slave將master的binlog拷貝到自己的中繼日誌中,然後執行一遍sql語句就達到同步了 一個伺服器當主庫,另一個或多個伺服器當從庫,主

mysql主從複製原理和注意事項

mysql主從複製大體分3個步驟: 在主庫上把更新的資料寫入到二進位制日誌binglog檔案裡面;備庫把主庫的二進位制日誌複製到自己的relay_log中;備庫讀取relay_log並將裡面的資料重放到資料庫。 上述步驟在主從之間涉及到3個執行緒,a:主庫上面的資料寫入

mysql主從複製原理及實踐

Mysql主從複製原理及實踐 mysql主從框架       MySQL主從架構是MySQL叢集中最基本也是最常用的一種架構部署,能夠滿足很多業務需求,常見的有一主一從或者一主多從。可以防止單一主機的資料丟失,提高資料的安全性,務上可以實現讀寫分離,可以把一些讀操作在從伺服器上執行,減小主伺服器的負擔。 主從

MySQL 主從複製原理不再難

上篇我們分析過 Binlog 日誌的作用以及儲存原理,感興趣的可以翻閱: [一文帶你瞭解 Binlog 日誌](https://www.cnblogs.com/rickiyang/p/13841811.html) Binlog 日誌主要作用是資料恢復和主從複製。本身就是二進位制格式的日誌檔案,網路傳輸無需

MySQL(13)---MYSQL主從複製原理

# MYSQL主從複製原理 最近在做專案的時候,因為部署了 **MYSQL主從複製** 所以在這裡記錄下整個過程。這裡一共會分兩篇部落格來寫: ``` 1、Mysql主從複製原理 2、docker部署Mysql主從複製實戰 ``` 這篇只寫MYSQL主從複製原理。 ## 一、概述 #### 1

MySQL(4):主從複製原理

1、主從複製概述   MySQL主從複製也可以稱為MySQL主從同步,它是構建資料庫高可用叢集架構的基礎。它通過將一臺主機的資料複製到其他一臺或多臺主機上,並重新應用relay log中的SQL語句來實現複製功能。MySQL支援單向、雙向、鏈式級聯、非同步複製,5.5版本之後加入的半同步複製,5.6版本之後

MySQL主從複製-GTID原理

一、MySQL 主從複製原理闡述 Mysql主從複製:簡單來說就是Mysql 同步,Ab 複製等,主從複製是單向的,只能從 Master 複製到 Slave 上,延時基本上是毫秒級別的(排除網路延遲等問題)。一組複製結構中可以有多個Slave,對於 Master一般場景推薦只有一個,【根據您的業務進行調配,

mysql主從複製配置 & 工作原理

目錄 MySQL主從複製的基本工作原理 複製模式 複製如何工作 主從複製配置 建立賬號 配置主庫和從庫 啟動複製 擴充套件-配置GTID主從複製 參考 MySQL主從複製的基本工作原理 MySQL支援兩種複製方法:

MySQL系列連載之主從複製原理

導讀 如果您在本文遇到任何問題或疑問請到QQ群中與我們交流。也可在下方進行評論。我將在第一時間和您進行交流,共同學習。 QQ群:201777608、526871767、1689067(加群時註明:運維派) Mysql 複製(Replication) 1、Mysql 複製作用 負載平衡(load b

MySQL主從複製非同步原理以及搭建

MySQL主從複製的原理:   1、首先,MySQL主庫在事務提交時會把資料變更作為時間events記錄在二進位制日誌檔案binlog中;MySQL主庫上的sync_binlog引數控制Binlog日誌以什麼樣的方式重新整理到磁碟上。   2、主庫推送二進位制日誌檔案Binlog中的事件到從庫的中繼日誌R

MySQL主從複製半同步複製原理及搭建

在MySQL5.5之前的版本中,MySQL的複製是非同步複製,主庫和從庫的資料之間存在一定的延遲,比如網路故障等各種原因,這樣子容易存在隱患就是:當在主庫寫入一個事務成功後並提交了,但是由於從庫延遲沒有及時得到主庫推送的Binlog日誌時,主庫突然宕機了,那麼此時從庫就可能損失這個事務,從而造成主從不一致的狀

MySQL 主從複製原理

1.主從複製配置a. 環境:CentOS7.4,IP地址分別是主庫:192.168.11.146,從庫:192.168.11.238,主庫版本應低於或等於從庫版本,這裡用的都是MySQL 8.0.13b.主庫配置/etc/my.cnf檔案 [mysqld] #一般配置選項user=mysqlport=33

MySQL 主從複製原理和配置

工作原理圖: 主從複製的原理: 分為同步複製和非同步複製,實際複製架構中大部分為非同步複製。 複製的基本過程如下: 1).Slave上面的IO程序連線上Master,並請求從指定日誌檔案的指定位置(或者從最開始的日誌)之後的日誌內容; 2).Master接收