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

OldBoy MySQL DBA 課程第 14 課筆記

     編輯:MySQL 綜合教學

OldBoy MySQL DBA 課程第 14 課筆記

本文整理自 OldBoy 教育 MySQL DBA 實戰課程第 14 課內容,涵蓋 MySQL 複制架構、主從同步原理、GTID 複制、半同步複制、複制故障排查與高可用架構設計等核心主題。

課程大綱

  1. MySQL 複制基礎架構:Binlog 格式 (STATEMENT/ROW/MIXED)、Relay Log、IO Thread / SQL Thread 運作機制。
  2. GTID (Global Transaction Identifier) 複制:GTID 概念、啟用方式、故障切換優勢、MASTER_AUTO_POSITION=1 運作原理。
  3. 半同步複制:rpl_semi_sync_master / rpl_semi_sync_slave 設置、超時降級機制、資料零損失保障。
  4. 複制延遲監控與優化:Seconds_Behind_Master 指標局限、pt-heartbeat 精準監控、平行複制 (slave_parallel_workers) 加速。
  5. 常見複制錯誤處理:1062 主鍵衝突、1032 找不到記錄、Binlog 損壞修復、SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1 慎用原則。
  6. 高可用架構實戰:MHA (Master High Availability)、Orchestrator 自動故障轉移、ProxySQL 讀寫分離、Keepalived/VIP 漂移。

關鍵配置範例

主庫

[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=ROW
gtid-mode=ON
enforce-gtid-consistency=ON
log-slave-updates=1
rpl_semi_sync_master=ON
rpl_semi_sync_master_timeout=1000

從庫

[mysqld]
server-id=2
relay-log=relay-bin
read-only=1
gtid-mode=ON
enforce-gtid-consistency=ON
rpl_semi_sync_slave=ON
slave_parallel_workers=4
slave_parallel_type=LOGICAL_CLOCK

實戰操作指令

# 建立複制帳號
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl_pass';

# 從庫啟動複制 (GTID 模式)
CHANGE MASTER TO
  MASTER_HOST='10.0.0.1',
  MASTER_USER='repl',
  MASTER_PASSWORD='repl_pass',
  MASTER_AUTO_POSITION=1;
START SLAVE;

# 檢查狀態
SHOW SLAVE STATUS\G
# 關鍵欄位: Slave_IO_Running=Yes, Slave_SQL_Running=Yes, Seconds_Behind_Master=0

複制故障排查流程圖

  1. 確認 IO/SQL Thread 狀態
  2. 查看 Last_Error、Last_IO_Error
  3. 對照 Binlog 位置 / GTID 集合
  4. 判斷是否可 SKIP COUNTER 或需重建從庫
  5. 重建步驟:主庫 FLUSH TABLES WITH READ LOCK → 備份 → 解鎖 → 從庫還原 → 重新 CHANGE MASTER

課後練習建議

  • 在 VM 建立一主兩從環境,驗證 GTID 故障切換。
  • 模擬網路延遲測試半同步降級行為。
  • 使用 sysbench 壓測觀察平行複制加速效果。
  • 部署 MHA 實現自動故障轉移演練。

課程簡報截圖

來源:為知筆記 (Wiz) 整理。建議搭配官方文件 MySQL Replication 深入研讀。

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