首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 主從鏡像(Replication)架構設計與版本相容性指南

     編輯:MySQL 資料庫相關知識

核心架構概念

  • Master:寫入節點,啟用 Binary Log 記錄所有變更。
  • Slave:讀取節點,透過 I/O Thread 拉取 Binlog 寫入 Relay Log,SQL Thread 重放。
  • 同步鏈路:Master Binlog → Slave I/O Thread → Relay Log → Slave SQL Thread。
  • 一 Master 可掛多 Slave;Slave 可級聯為下一層 Master(鏈式復制)。

版本相容性矩陣(關鍵)

Slave 版本相容 Master 版本備註
3.23.x3.23.x不可連 4.x Master
4.0.04.0.0僅限同版本
4.0.1+3.23.x / 4.xMaster 版本 ≥ Slave 版本
5.0+5.0+ / 5.1+ / 5.5+建議同主版本,跨大版本需測試

黃金法則:同主版本、同次版本、盡量用最新穩定版。

建立步驟標準化

  1. 規劃 server-id(Master 1、Slave 2、級聯遞增)。
  2. Master 建立同步帳號:GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'slave_host' IDENTIFIED BY 'pass';
  3. 初始同步:mysqldump --master-data=2 --single-transaction 導出含 Binlog 座標的備份 → Slave 匯入。
  4. Master 配置:server-id=1; log-bin=mysql-bin;重啟;RESET MASTER 清理舊 Binlog。
  5. Slave 配置:server-id=2; master-host=...; master-user=...; master-password=...; master-connect-retry=30; master-retry-count=100000;重啟。
  6. 驗證:SHOW SLAVE STATUS\G 確認雙線程 Running、延遲 0。

進階管理指令

  • STOP/START SLAVE [IO_THREAD|SQL_THREAD]:分線程暫停/恢復(備份時暫停 SQL Thread 獲取一致性快照)。
  • SHOW SLAVE STATUS:監控 Seconds_Behind_Master、Last_Error。
  • PURGE MASTER LOGS TO 'binlog.000123':清理所有 Slave 已處理的 Binlog。
  • CHANGE MASTER TO ...:動態調整同步座標、Master 地址、壓縮協定等。

過濾復制

Master binlog-ignore-db=mysql 排除系統庫;Slave replicate-do-db=business_db 僅同步業務庫。

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