

一 MySQL 復制的基本過程如下:(各部分學習自Google,謝謝)
1. Slave 上面的IO線程連接上 Master,并請求從指定日志文件的指定位置(或者從最開始的日志)之后的日志內容;
2. Master 接收到來自 Slave 的 IO 線程的請求后,通過負責復制的 IO線程根據請求信息讀取指定日志指定位置之后的日志信息,返回給 Slave 端的 IO線程。返回信息中除了日志所包含的信息之外,還包括本次返回的信息在 Master 端的 Binary Log 文件的名稱以及在 BinaryLog 中的位置;
3. Slave 的 IO 線程接收到信息后,將接收到的日志內容依次寫入到 Slave 端的RelayLog文件(mysql-relay-lin.xxxxxx)的最末端,并將讀取到的Master端的bin-log的文件名和位置記錄到 master-info文件中,以便在下一次讀取的時候能夠清楚的高速Master“我需要從某個bin-log的哪個位置開始往后的日志內容,請發(fā)給 我”
4. Slave 的 SQL 線程檢測到 Relay Log 中新增加了內容后,會馬上解析該 Log 文件中的內容成為在 Master
端真實執(zhí)行時候的那些可執(zhí)行的 Query 語句,并在自身執(zhí)行這些 Query。這樣,實際上就是在 Master 端和 Slave
端執(zhí)行了同樣的 Query,所以兩端的數據是完全一樣的。
新聞熱點
疑難解答
圖片精選