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

MySQL 資料同步備份:主從複雜與雙主熱備完整設定指南

     編輯:MySQL 資料庫相關知識

環境需求

  • MySQL 3.23.15+ 支援複寫功能
  • 兩台伺服器:A (10.10.10.22)、B (10.10.10.53)
  • 作業系統:Windows 2000 / Linux 均可
  • 設定檔:my.cnf (Linux) 或 my.ini (Windows)

前置作業:雙方建立同步帳號與資料庫

伺服器 A 設定

GRANT FILE ON *.* TO backup@'10.10.10.53' IDENTIFIED BY '1234';
CREATE DATABASE backup;

伺服器 B 設定

GRANT FILE ON *.* TO backup@'10.10.10.22' IDENTIFIED BY '1234';
CREATE DATABASE backup;

模式一:單向主從

A 為 Master 設定

[mysqld]
server-id = 1
log-bin                    # 啟用二進位日誌
# log-bin = c:/mysqlbak/mysqllog  # 可指定日誌路徑與前綴
binlog-do-db = backup      # 僅記錄 backup 資料庫變更

重啟服務,執行 SHOW MASTER STATUS; 確認日誌狀態。

B 為 Slave 設定

[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; 確認同步狀態。

關鍵提醒

Slave 設定生效後會在資料目錄產生 master.info,若需修改 Slave 設定,必須先刪除此檔案再重啟,否則新設定不生效。

模式二:雙主互備

在單向主從基礎上,雙方互為 Master/Slave。

A 追加 Slave 設定

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

B 追加 Master 設定

[mysqld]
log-bin = c:/mysqllog/mysql-log
binlog-do-db = backup

重啟 AB 兩機,即可實現雙向熱備。

錯誤處理與監控

  • 同步錯誤會記錄在 *.err 日誌,同步執行緒停止
  • 修正錯誤後執行 SLAVE START 恢復同步
  • 建議監控 Seconds_Behind_Master 指標

效能測試參考

向 B 批量插入 1,872,000 筆資料,A 端每秒同步約 2,500 筆。

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