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

MySQL 雙機熱備份:主從與雙主架構完整配置

     編輯:MySQL 資料庫相關知識

核心原理

MySQL 3.23.15+ 提供 Replication 功能,透過二進制日誌實現資料同步。支援主從(單向)與雙主(雙向)兩種模式。

環境準備

角色IPServer ID
A (Master/雙主)10.10.10.221
B (Slave/雙主)10.10.10.532

共同前置步驟

-- 兩台均建立同步帳號
GRANT FILE ON *.* TO 'backup'@'對方IP' IDENTIFIED BY '1234';
CREATE DATABASE backup;

模式一:主從同步

A 端(Master)配置 my.ini

[mysqld]
server-id = 1
log-bin
binlog-do-db = backup

重啟後驗證:SHOW MASTER STATUS;

B 端(Slave)配置 my.ini

[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 SLAVE STATUS\G 確認 Slave_IO_Running=Yes、Slave_SQL_Running=Yes。

重要:修改 Slave 設定前需刪除資料目錄下的 master.info,否則舊設定優先生效。

模式二:雙主互備

在主從基礎上,雙向加入對方為 Master 設定:

A 端追加 Slave 設定

master-host = 10.10.10.53
master-user = backup
master-password = 1234
replicate-do-db = backup
master-connect-retry = 10

B 端追加 Master 設定

log-bin = c:/mysqllog/mysqllog
binlog-do-db = backup

雙方重啟後實現雙向同步。

錯誤處理與監控

  • 同步報錯時 *.err 記錄,SQL 執行緒停止
  • 修正錯誤後執行 SLAVE START 恢復同步
  • 監控關鍵指標:Seconds_Behind_Master、Slave_IO_Running、Slave_SQL_Running

效能測試參考

向 B 批量插入 187 萬行,A 端每秒同步約 2500 行,網路與磁碟 I/O 為主要瓶頸。

生產環境建議

  • 使用 GTID 複制(MySQL 5.6+)簡化故障切換
  • 配置半同步複制 rpl_semi_sync_master=ON 降低資料遺失風險
  • 部署 MHA/Orchestrator 實現自動故障轉移
  • 定期校驗主從資料一致性(pt-table-checksum)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved