首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

基於 mysqldump 快速搭建 MySQL 主從複制(全量/部分庫)

     編輯:MySQL 綜合教學

基於 mysqldump 快速搭建 MySQL 主從複制(全量/部分庫)

mysqldump 適用於 20GB 以內資料庫的主從搭建,操作簡單、無需額外工具。本文記錄全量實例級與部分庫兩種場景的標準化流程。

核心三步驟

  1. 主庫配置參數、建立複制帳號
  2. 主庫建立快照(鎖表 → 導出 → 記錄 binlog 位置 → 解鎖)
  3. 從庫匯入快照、設定主庫資訊、啟動複制

場景一:實例級全量主從(多實例演示)

# 主庫 3406
# 1. 建立複制帳號
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.177' IDENTIFIED BY 'xxx';

# 2. 全域唯讀鎖
FLUSH TABLES WITH READ LOCK;

# 3. 記錄 binlog 位置
SHOW MASTER STATUS;
# File: inst3406bin.000001, Position: 2169

# 4. 導出全庫
mysqldump -uroot -pxxx -S /tmp/mysql3406.sock --routines --all-databases --opt > alldb.sql

# 5. 解鎖
UNLOCK TABLES;

# 從庫 3506
# 6. 匯入
mysql -uroot -pxxx -S /tmp/mysql3506.sock < alldb.sql

# 7. 設定主庫資訊並啟動
CHANGE MASTER TO
  MASTER_HOST='192.168.1.177',
  MASTER_USER='repl',
  MASTER_PASSWORD='xxx',
  MASTER_PORT=3406,
  MASTER_LOG_FILE='inst3406bin.000001',
  MASTER_LOG_POS=2169;
START SLAVE;

場景二:部分庫同步(僅 sakila、tempdb)

# 從庫先停止並重置
STOP SLAVE; RESET SLAVE ALL;

# 從庫配置 replicate-do-db
[mysqld]
replicate-do-db=sakila
replicate-do-db=tempdb
skip-slave-start
# 重啟從庫生效

# 主庫僅導出指定庫(單事務一致性快照 + 記錄 binlog 位置)
mysqldump -uroot -pxxx -S /tmp/mysql3406.sock \
  --single-transaction --master-data=2 -R \
  --databases sakila tempdb > multidb.sql

# 從庫匯入
mysql -uroot -pxxx -S /tmp/mysql3506.sock < multidb.sql

# 從導出檔提取 binlog 位置
grep -i "CHANGE MASTER" multidb.sql
# CHANGE MASTER TO MASTER_LOG_FILE='inst3406bin.000001', MASTER_LOG_POS=3293117;

# 設定並啟動
CHANGE MASTER TO ... MASTER_LOG_POS=3293117;
START SLAVE;

關鍵參數說明

  • --single-transaction:InnoDB 專用,獲得一致性視圖不鎖表。
  • --master-data=2:輸出檔包含 CHANGE MASTER TO 註解(含 binlog 位置)。
  • -R / --routines:包含預存程序/函數/觸發器。
  • --lock-all-tables:MyISAM/混合引擎時需配合使用,會阻塞寫入。

驗證複制狀態

SHOW SLAVE STATUS\G
# 關鍵指標:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0

總結

mysqldump 搭建主從流程標準化、風險可控。生產環境建議配合 GTID、半同步複制、MHA/Orchestrator 高可用架構,實現故障自動切換。

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