程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

mysql同步

編輯:MySQL綜合教程

Mysql 的Replication 是一個異步的復制過程,從一個Mysql instace(我們稱之為Master)復制到另一個Mysql instance(我們稱之Slave)。在Master 與Slave 之間的實現整個復制過程主要由三個線程來完成,其中兩個線程(Sql 線程和IO 線程)在Slave 端,另外一個線程(IO 線程)在Master 端。要實現MySQL 的Replication ,首先必須打開Master 端的Binary Log(mysqlbin.xxxxxx)功能,否則無法實現。

1. Slave 上面的IO 線程連接上Master,並請求從指定日志文件的指定位置(或者從最開始的日志)之後的日志內容;

2. Master 接收到來自Slave 的IO 線程的請求後,通過負責復制的IO 線程根據請求信息讀取指定日志指定位置之後的日志信息,返回給Slave 端的IO 線程。返回信息中除了日志所包含的信息之外,還包括本次返回的信息在Master 端的Binary Log文件的名稱以及在Binary Log 中的位置;

3. Slave 的IO 線程接收到信息後,將接收到的日志內容依次寫入到Slave 端的Relay Log 文件(mysql-relay-bin.xxxxxx)的最末端,並將讀取到的Master 端的binlog的文件名和位置記錄到master-info 文件中,以便在下一次讀取的時候能夠清楚的高速Master“我需要從某個bin-log 的哪個位置開始往後的日志內容,請發給我”

4. Slave 的SQL 線程檢測到Relay Log 中新增加了內容後,會馬上解析該Log 文件中的內容成為在Master 端真實執行時候的那些可執行的Query 語句,並在自身執行這些Query。這樣,實際上就是在Master 端和Slave 端執行了同樣的Query,所以兩端的數據是完全一樣的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved