首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 主從同步原理介紹:異步復制三線程協作流程(純文本版)

     編輯:MySQL 綜合教學

概述

本文為《MySQL 主從同步原理詳解》的純文本版,核心流程與原理完全一致。

三線程協作

  • Master IO 線程:讀 Binlog 發送。
  • Slave IO 線程:請求 Binlog,寫 Relay Log,記 master.info。
  • Slave SQL 線程:讀 Relay Log,重放 SQL。

前置條件

Master 必須開啟 log-bin。

復制流程

  1. Slave IO 連 Master,請求指定位置後的 Binlog。
  2. Master IO 讀取 Binlog 返回(含文件名、位置)。
  3. Slave IO 寫 Relay Log,更新 master.info。
  4. Slave SQL 解析 Relay Log 重放,數據邏輯一致。

雙線程演進動機

  • 早期單線程:拉取、解析、執行串行,延遲大。
  • 單線程風險:Slave 處理慢時,Master 故障導致增量 Binlog 永久丟失。
  • Yahoo! Jeremy Zawodny 提出雙線程:IO/SQL 分離,降低延遲與丟失窗口。

遺留風險

異步本質未變:延遲不可避免,非事務操作可能不一致。強一致需半同步或 MGR。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved