MySQL 複制是實現高可用、讀寫分離及災備的基石。本文將深入淺出地解析 MySQL 複制的核心機制,幫助你建立清晰的認知框架。
最經典的拓撲是「一主多從」。主庫負責寫入操作,從庫負責讀取操作,並通過二進制日志同步數據。主庫將數據變更記錄到 Binary Log,從庫通過 I/O 線程拉取日志並存入 Relay Log,再由 SQL 線程重放執行,實現數據同步。
MySQL 支持三種複制格式,各有優劣:
# 主庫配置 server-id=1 log-bin=mysql-bin binlog-format=MIXED expire_logs_days=7 # 從庫配置 server-id=2 relay-log=mysql-relay read_only=1
複制延遲是最常見的痛點。可通過 SHOW SLAVE STATUS\G 觀察 Seconds_Behind_Master 指標。優化方向包括:提升從庫硬件配置、優化長事務、啟用並行複制(MySQL 5.6+ 支持庫級並行,5.7+ 支持邏輯時鐘並行)。
下一篇將詳細講解 GTID 複制、半同步複制以及故障切換實戰。