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

MySQL 數據同步配置大全:主從、雙主、多級復制與故障處理

     編輯:MySQL 資料庫相關知識

MySQL 復制功能支持多種拓撲,本文系統梳理主從、雙主互備、多級鏈式復制的配置參數、啟動驗證、常見故障處理與現代 GTID 模式遷移指引。

環境基線

  • OS: Windows 2000 / Linux 通用
  • MySQL: 4.0.4+ (支援 server-id/log-bin)
  • 節點 A: 10.10.10.22 (server-id=1)
  • 節點 B: 10.10.10.53 (server-id=2)
  • 同步用戶: backup@'10.10.10.%' IDENTIFIED BY '1234' (需 FILE/REPLICATION SLAVE 權限)
  • 同步庫: backup

模式一:標準主從 (A→B)


# Master (A) my.cnf
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-do-db=backup

# Slave (B) my.cnf
[mysqld]
server-id=2
master-host=10.10.10.22
master-user=backup
master-password=1234
master-port=3306
master-connect-retry=60
replicate-do-db=backup

啟動驗證:SHOW MASTER STATUS (A) / SHOW SLAVE STATUS \G (B) 確認 Slave_IO/SQL_Running=Yes、Seconds_Behind_Master=0。

模式二:雙主互備 (A⇄B)

在主從基礎上雙向添加對端為 Master:


# A 追加 Slave 配置 (指向 B)
master-host=10.10.10.53
master-user=backup
master-password=1234
master-connect-retry=10
replicate-do-db=backup

# B 追加 Master 配置 (自身)
log-bin=mysql-bin
binlog-do-db=backup

關鍵風險:雙寫衝突 (自增 ID 碰撞、唯一鍵衝突)。緩解方案:

  • auto_increment_offset / auto_increment_increment 錯開自增序列 (A: 1/2, B: 2/2)
  • 應用層路由:寫操作定向單一 Master,另一僅作熱備
  • 遷移至 Group Replication (多主 Paxos 協議原生解決衝突)

模式三:多級鏈式復制 (A→B→C)


# B 同時是 Slave (指向 A) 和 Master (開啟 log-bin)
# C 配置指向 B
master-host=B_IP
# 需在 B 開啟 log-slave-updates=1 將重放的 SQL 寫入自身 Binlog 供 C 拉取

故障處理標準流程

  1. SHOW SLAVE STATUS \G 定位 Last_Error/Last_IO_Error
  2. 修復根因:數據衝突 → 手動修正數據 / 跳過錯誤 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE; (謹慎使用)
  3. 網絡中斷 → 自動重試 (master-connect-retry),檢查防火牆/VPN
  4. Binlog 丟失/損壞 → 重新從 Master 獲取快照 (--master-data=2) 重建 Slave
  5. 錯誤修復後 必須執行 START SLAVE 重啟線程

現代化遷移:GTID 模式 (MySQL 5.6+)


# 開啟 GTID
[mysqld]
gtid_mode=ON
enforce-gtid-consistency=ON
log-bin=mysql-bin
log-slave-updates=1

# Slave 簡化配置 (無需 master-host/log-file/position)
CHANGE MASTER TO MASTER_HOST='10.10.10.22', MASTER_USER='backup', MASTER_PASSWORD='1234', MASTER_AUTO_POSITION=1;
START SLAVE;

GTID 優勢:自動定位同步位點、故障切換無需手動對齊 Binlog、支援多源復制、簡化拓撲變更。

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