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

MySQL 主從復制原理與配置圖解:從單向到雙主多拓撲

     編輯:MySQL 資料庫相關知識

1. 復制原理三步走

  1. Master 寫 Binlog(串行化事務)
  2. Slave I/O 線程拉取 Binlog 寫 Relay Log
  3. Slave SQL 線程回放 Relay Log(單線程串行,瓶頸所在)

2. 三種復制類型

  • Statement-Based(SBR,預設,效率高,部分函數不安全)
  • Row-Based(RBR,5.0+,記錄行變更,安全但 Binlog 大)
  • Mixed(MBR,預設 SBR,遇不安全自動切 RBR)

3. 配置步驟

Master

server-id=1
log-bin=mysql-bin

Slave

server-id=2
relay_log=mysql-relay-bin
log_slave_updates=1
read_only=1

建立復制賬號

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'slave_ip' IDENTIFIED BY 'pass';

啟動復制

CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl', MASTER_PASSWORD='pass', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=0;
START SLAVE;

驗證

SHOW SLAVE STATUS\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0

4. 常見拓撲

  • 一主多從:讀寫分離、備份、異地災備
  • 雙主雙向(Active-Active):雙寫,需解決衝突(自增步長/偏移)
  • 雙主單向(Active-Passive):高可用,主掛切備
  • 級聯:A→B→C,需 log_slave_updates

5. 過濾與新 Slave 掛載

  • Master 端 binlog_do_db、Slave 端 replicate_do_table
  • 新 Slave:冷備份/熱備份/mysqldump --master-data=2 獲取快照 + Binlog 坐標
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved