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

Windows 環境 MySQL 雙向同步備份完整配置指南

     編輯:MySQL 資料庫相關知識

雙向同步(Master-Master)適用於雙節點熱備與讀寫分離。本文以 Windows 為例,詳細說明 my.ini 雙向配置、權限授予、啟動驗證與常見錯誤排查。

架構假設

  • Node A:192.168.0.101,server-id=1
  • Node B:192.168.0.102,server-id=2
  • 同步資料庫:test1、test2、test3
  • 同步帳號:use101 / use102,密碼分別 pwd101 / pwd102

Node A my.ini 關鍵配置

[mysqld]
server-id=1
log-bin=C:\MySQLback\binlog
binlog-do-db=test1
binlog-do-db=test2
binlog-do-db=test3

master-host=192.168.0.102
master-user=use102
master-password=usepwd102
master-port=3306
master-connect-retry=60

replicate-do-db=test1
replicate-do-db=test2
replicate-do-db=test3

Node B my.ini 關鍵配置

[mysqld]
server-id=2
log-bin=C:\MySQLback\binlog
binlog-do-db=test1
binlog-do-db=test2
binlog-do-db=test3

master-host=192.168.0.101
master-user=use101
master-password=usepwd101
master-port=3306
master-connect-retry=60

replicate-do-db=test1
replicate-do-db=test2
replicate-do-db=test3

權限授予(雙向)

-- On Node A (給 B 用)
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* 
  TO 'use101'@'192.168.0.102' IDENTIFIED BY 'pwd101';

-- On Node B (給 A 用)
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* 
  TO 'use102'@'192.168.0.101' IDENTIFIED BY 'pwd102';

關鍵:REPLICATION CLIENT 權限用於 SHOW SLAVE HOSTS,缺少會報 Access denied... need REPLICATION CLIENT privilege。

啟動與驗證

  1. 重啟雙側 MySQL 服務
  2. Node B 執行:SLAVE START;
  3. Node A 檢查:SHOW MASTER STATUS;
  4. Node B 檢查:SHOW SLAVE STATUS\G 關注 Slave_IO_Running=Yes、Slave_SQL_Running=Yes、Seconds_Behind_Master=0

常見錯誤排查

錯誤現象原因解決
.err 日誌報 Access denied... REPLICATION SLAVE缺少 REPLICATION SLAVE 權限GRANT REPLICATION SLAVE ON *.* TO user@host
SHOW SLAVE HOSTS 報 REPLICATION CLIENT 缺失從庫需查詢主庫列表補授 REPLICATION CLIENT 權限
Seconds_Behind_Master 持續增長SQL 執行緒延遲檢查長查詢、鎖爭用、硬體 I/O
雙向寫入衝突自增主鍵衝突設定 auto_increment_offset/auto_increment_increment 錯開

生產環境建議

  • 啟用 sync_binlog=1、innodb_flush_log_at_trx_commit=1 保證持久化
  • 監控 Slave_IO_Running/Slave_SQL_Running 告警
  • 定期 CHECKSUM TABLE 驗證資料一致性
  • 考慮 GTID(MySQL 5.6+)簡化故障切換

雙向同步配置細節多,建議先在測試環境完整驗證再上線。

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