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

MySQL 3.23.15+ 內建複製功能設定指南:主從、雙主熱備

     編輯:MySQL 資料庫相關知識

環境準備

  • OS:Windows 2000 Professional
  • MySQL:4.0.4-beta-max-nt-log
  • Server A:10.10.10.22 (Master)
  • Server B:10.10.10.53 (Slave)

共同前置作業

  1. 建立複製專用帳號(雙向各建一次):
    GRANT FILE ON *.* TO 'backup'@'10.10.10.53' IDENTIFIED BY '1234'; (在 A 上)
    GRANT FILE ON *.* TO 'backup'@'10.10.10.22' IDENTIFIED BY '1234'; (在 B 上)
  2. 建立同步用資料庫:
    CREATE DATABASE backup;

模式一:單向主從

Master (A) 設定 my.ini [mysqld]

server-id=1
log-bin
# log-bin=c:/mysqlbak/mysqllog  # 可指定路徑與前綴
binlog-do-db=backup

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

Slave (B) 設定 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; 確認 Slave_IO_Running=Yes、Slave_SQL_Running=Yes。

關鍵提醒

  • Slave 首次啟動會在資料目錄產生 master.info,**後續修改主從參數必須先刪除此檔** 再重啟,否則新設定不生效。
  • 防火牆需開放 3306 埠雙向通訊。

模式二:雙主互備

在單向主從基礎上,雙方各自增加對方的 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/mysqlbinlog
binlog-do-db=backup

重啟雙方,執行 SLAVE START; 啟動雙向同步。若發生錯誤(*.err 日誌記錄),修正後執行 SLAVE START; 恢復。

效能實測

向 B 批量插入 187 萬筆測試資料,A 端每秒約同步 2,500 筆,網路與磁碟 I/O 為主要瓶頸。

現代化建議

  • MySQL 5.6+ 推薦使用 GTID 複製,自動定位位點,故障切換更簡單。
  • 生產環境請啟用 sync_binlog=1、innodb_flush_log_at_trx_commit=1 確保零資料遺失。
  • 監控 Seconds_Behind_Master、Slave_IO_Running、Slave_SQL_Running 關鍵指標。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved