架構特性
- 單 Master → 多 Slave 非同步複製。
- Master 寫入 Binlog → Slave IO 執行緒拉取 → Relay Log → SQL 執行緒重放。
- 無法保證強一致,存在複製延遲。
部署六步驟
- 安裝配置:Master/Slave 正常安裝,開啟
log-bin,設定不同 server_id。
- 建立複製帳號:
GRANT REPLICATION SLAVE ON *.* TO 'rep'@'slave_host' IDENTIFIED BY 'repl_pass';
- Master 加讀鎖、記錄座標:
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
-- 記錄 File (如 mysql-bin.000013) 與 Position (如 27050310)
- Slave 設定 Master 連線資訊:
CHANGE MASTER TO
MASTER_HOST='master_host',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='repl_pass',
MASTER_LOG_FILE='mysql-bin.000013',
MASTER_LOG_POS=27050310;
- 啟動 Slave:
START SLAVE;
-- SHOW PROCESSLIST 觀察 "Waiting for master to send event"
- Master 釋放鎖:
UNLOCK TABLES;
驗證
SHOW SLAVE STATUS\G;
-- 確認 Slave_IO_Running=Yes, Slave_SQL_Running=Yes