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

MySQL 雙機熱備份實施指南:主從複製架構配置與驗證

     編輯:MySQL 資料庫相關知識

架構說明

MySQL 透過主從複製實現熱備份:主庫啟用二進制日誌,從庫透過 I/O 執行緒拉取日誌、SQL 執行緒重放,實現資料即時同步。版本要求:主從 ≥ 3.23,從庫版本 ≥ 主庫版本。

一、主庫配置詳解

1. 核心參數(my.cnf [mysqld])

server-id=1
log-bin=mysql-bin
binlog-do-db=db1,db2
binlog-ignore-db=test,mysql

2. 建立同步帳號

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.domain.com' IDENTIFIED BY 'slavepass';

3. 重啟並鎖表備份基線

service mysqld restart
mysql> FLUSH TABLES WITH READ LOCK;
# 物理複製 data 目錄或 mysqldump --master-data=1
mysql> UNLOCK TABLES;

4. 記錄同步起點

mysql> SHOW MASTER STATUS\G;
# 記錄 File、Position

二、從庫配置詳解

1. 核心參數

server-id=2
master-host=master_ip
master-port=3306
master-user=repl
master-password=slavepass
master-connect-retry=60
report-host=slave_ip

2. 導入基線資料

將主庫備份資料放入從庫 data 目錄。

3. 設定同步起點並啟動

mysql> STOP SLAVE;
mysql> CHANGE MASTER TO
    MASTER_HOST='master_ip',
    MASTER_USER='repl',
    MASTER_PASSWORD='slavepass',
    MASTER_LOG_FILE='mysql-bin.003',
    MASTER_LOG_POS=73;
mysql> START SLAVE;

三、驗證與監控

mysql> SHOW SLAVE STATUS\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
Last_IO_Error:
Last_SQL_Error:

四、常見故障與對策

現象可能原因處理
IO_Running=No網路/帳號/防火牆/主機名解析檢查連通性、授權、防火牆、/etc/hosts
SQL_Running=No主鍵衝突/字元集/外鍵/觸發器查 Last_SQL_Error,跳過錯誤或修復資料
Seconds_Behind_Master 大從庫寫入慢/長事務/單執行緒優化從庫參數、升級 5.6+ 開啟平行複製

五、生產環境建議

  • 部署 pt-heartbeat 或 pt-table-checksum 定期驗證主從一致性
  • 啟用 GTID(5.6+)簡化故障切換與重新同步
  • 從庫設定 read_only=1、super_read_only=1 防止誤寫入
  • 配置 slave_skip_errors=1062,1032 忽略常見主鍵/找不到記錄錯誤(謹慎使用)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved