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

MySQL Replication 全景圖:SQL、應用場景、文件、流程、模式一網打盡

     編輯:MySQL 綜合教學

一、核心 SQL 速查

主庫管理

命令用途
SHOW MASTER LOGS列出所有 Binlog 文件
SHOW MASTER STATUS當前 Binlog 文件與位置
SHOW SLAVE HOSTS已連接從庫信息
SHOW BINLOG EVENTS IN 'log_name'查看 Binlog 事件
RESET MASTER清空 Binlog 索引,新建第一個文件(慎用)
PURGE MASTER LOGS TO 'log_name'刪除指定文件前的 Binlog
PURGE MASTER LOGS BEFORE 'date'刪除指定日期前的 Binlog

安全清理流程:① 主庫 SHOW MASTER LOGS、從庫 SHOW SLAVE STATUS 取延遲最大者的 Master_Log_File → ② 備份目標 Binlog → ③ PURGE。

從庫管理

命令用途
CHANGE MASTER TO ...指定主庫連接參數、起始位置
RESET SLAVE清空 master.info/relay-log.info 及 Relay Log
SHOW SLAVE STATUS核心監控視圖
START SLAVE [IO_THREAD|SQL_THREAD]啟動複製線程
STOP SLAVE [IO_THREAD|SQL_THREAD]停止複製線程

關鍵監控指標(SHOW SLAVE STATUS)

  • Slave_IO_Running/Slave_SQL_Running:必須均為 Yes。
  • Seconds_Behind_Master:延遲秒數(粗略)。
  • 精確延遲計算:Read_Master_Log_Pos - Exec_Master_Log_Pos(SQL 線程延遲);Master_Log_File_Position - Read_Master_Log_Pos(IO 線程延遲)。

二、典型應用場景

  1. 數據分發:跨 IDC 同步,就近讀取。
  2. 熱備份補充:複製 ≠ 備份,仍需物理/邏輯備份。
  3. 讀擴展:從庫分攤 SELECT,主庫專注寫入。
  4. 報表/審計:長時間掃描查詢移至從庫,不影響主庫業務。
  5. 升級驗證:新版本作從庫跑流量,驗證兼容性。
  6. 故障切換:提升從庫為主,最小化 RTO(配合 MHA/Orchestrator/GTID)。

三、關鍵文件

文件位置作用
master.info從庫數據目錄主庫連接信息、Binlog 讀取位置
relay-log.info從庫數據目錄Relay Log 讀取/執行位置
binlog.index主庫數據目錄Binlog 文件列表
relay-bin.*從庫數據目錄IO 線程從主庫拉取的事件
relay-bin.index從庫數據目錄Relay Log 文件列表

四、複製流程

  1. 主庫:事務提交時按順序寫 Binlog(事件格式)。
  2. 從庫 IO 線程:連主庫 → 啟動 Binlog Dump 線程 → 讀取事件 → 寫入本地 Relay Log & 更新 master.info。
  3. 從庫 SQL 線程:讀取 Relay Log → 重放事件 → 更新 relay-log.info。

五、複製模式:STATEMENT vs ROW vs MIXED

維度STATEMENT (SBR)ROW (RBR)
記錄內容SQL 語句行變更前後映像
優點易審計、Binlog 小、易定位問題幾乎無不可複製場景、鎖競爭少、CPU 低、數據一致性強、錯誤即時停止
缺點存儲過程/觸發器/UDF/非確定性函數可能導致主備不一致Binlog 大、帶寬高、黑盒難調試、無法直接看到 SQL
適用場景簡單 SQL、低併發、需審計高併發、複雜邏輯、嚴格一致性要求

MIXED:默認 STATEMENT,遇不安全語句自動切 ROW(binlog_format=MIXED)。生產建議:ROW 或 MIXED,配合 binlog_row_image=MINIMAL 減小體積。

避坑清單

  • 從庫 read_only=ON + super_read_only=ON,防誤寫。
  • 關鍵從庫 skip_slave_start=ON,人工介入啟動。
  • 定期 pt-table-checksum 校驗一致性。
  • 監控 Relay_Log_Space 防磁盤爆滿。
  • GTID 模式簡化故障切換與拓撲變更(5.6+)。

複製是 MySQL 高可用基石,吃透原理與工具,才能在故障夜裡睡個安穩覺。

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