最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL主從復(fù)制故障排查及解決方案

 更新時間:2026年03月04日 08:51:58   作者:·云揚·  
在 MySQL 生產(chǎn)運維里,主從復(fù)制是數(shù)據(jù)備份、讀寫分離、高可用架構(gòu)的核心,但配置、網(wǎng)絡(luò)、磁盤、數(shù)據(jù)一致性、日志清理等問題,總能讓復(fù)制突然中斷,因此本文給大家介紹了MySQL主從復(fù)制故障排查及解決方案,需要的朋友可以參考下

引言

在 MySQL 生產(chǎn)運維里,主從復(fù)制是數(shù)據(jù)備份、讀寫分離、高可用架構(gòu)的核心,但配置、網(wǎng)絡(luò)、磁盤、數(shù)據(jù)一致性、日志清理等問題,總能讓復(fù)制突然中斷。

今天我把實戰(zhàn)中 9 類高頻主從復(fù)制故障整理成文,包含問題模擬、報錯分析、分步解決方案,遇到問題直接對照處理,高效救場!

1. server_id 重復(fù)導(dǎo)致復(fù)制中斷

問題現(xiàn)象

從庫啟動復(fù)制報錯:server_id of slave is equal to server_id of master,IO 線程無法啟動。

解決方案

  1. 主從節(jié)點 server_id 必須唯一,修改從庫:
set global server_id=唯一ID;
  1. 重啟復(fù)制并驗證:
stop slave;
start slave;
show slave status\G

看到 Slave_IO_Running/Slave_SQL_Running 均為 Yes 即恢復(fù)。

2. 主從 3306 端口不通

問題現(xiàn)象

從庫狀態(tài)顯示 Slave_IO_Running: Connecting,報錯連接超時 / 拒絕。

解決方案

  1. 主庫放行從庫 IP 的 3306 端口,清空攔截規(guī)則:
iptables -D INPUT 規(guī)則行號
  1. 從庫驗證端口連通性:
telnet 主庫IP 3306
  1. 重啟復(fù)制即可恢復(fù)。

3. 從庫磁盤空間滿

問題現(xiàn)象

磁盤使用率 100%,復(fù)制延遲飆升,甚至 MySQL 進程崩潰。

解決方案

  1. 清理無用大文件、過期日志:
rm -f 無用文件
  1. 磁盤釋放后重啟 MySQL 與復(fù)制:
/etc/init.d/mysql.server start
stop slave; start slave;

4. 主從數(shù)據(jù)沖突(對象已存在)

問題現(xiàn)象

從庫已有主庫要同步的庫 / 表,SQL 線程中斷。

解決方案

  • GTID 模式:跳過沖突事務(wù)
stop slave;
set @@session.gtid_next=沖突GTID;
begin; commit;
set session gtid_next='AUTOMATIC';
start slave;
  • 位點模式:跳過 1 個事務(wù)
stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;

5. 主庫更新記錄在從庫缺失

問題現(xiàn)象

更新主庫存在、從庫已刪的記錄,報錯:Can’t find record。

解決方案

  1. 解析 Relay Log 定位缺失數(shù)據(jù):
mysqlbinlog 中繼日志 --start-position=位點 --base64-output=decode-rows -v > 解析文件
  1. 從庫補全記錄后重啟復(fù)制。

6. 主庫 Binlog 被清理,位點找不到

問題現(xiàn)象

從庫提示:Could not find first log file name。

解決方案

  1. 有正常從庫:直接從正常從庫重建復(fù)制。
  2. 無正常從庫:用 XtraBackup 備份主庫,重建從庫復(fù)制關(guān)系。

7. GTID 空洞問題

產(chǎn)生原因

手動跳過事務(wù)、主從切換、盲目配置 slave-skip-errors=all。

規(guī)避建議

  • GTID 模式禁止用 SQL_SLAVE_SKIP_COUNTER
  • 主從切換前保證全量同步
  • 不全局跳過所有錯誤

8. 主從 UUID 重復(fù)

問題原因

服務(wù)器克隆導(dǎo)致 auto.cnf 文件一致,UUID 相同。

解決方案

  1. 停止從庫 MySQL
  2. 刪除 data/auto.cnf
  3. 重啟 MySQL,自動生成新 UUID
  4. 重新建立主從關(guān)系

9. 從庫會讀到比主庫更新的數(shù)據(jù)?

在 “一主兩從” 架構(gòu)(1 個異步從庫 + 1 個半同步從庫)中,需結(jié)合 MySQL 復(fù)制類型和兩階段提交原理分析:

前置知識

  1. 兩階段提交:InnoDB 事務(wù)提交分兩步:
    • Prepare 階段:寫入 Redo Log,標記事務(wù)為 “準備提交”;
    • Commit 階段:寫入 Binlog,再將 Redo Log 標記為 “已提交”。
  2. 復(fù)制類型
    • 異步復(fù)制:主庫提交事務(wù)后立即返回客戶端,不等待從庫同步;
    • 半同步復(fù)制(after_commit):主庫執(zhí)行 Commit 階段后,等待從庫確認接收 Binlog 再返回;
    • 增強半同步復(fù)制(after_sync):主庫執(zhí)行 Prepare 階段后,先發(fā)送 Binlog 給從庫,待從庫確認后再執(zhí)行 Commit 階段。

結(jié)論

特定場景會出現(xiàn):增強半同步 after_sync 模式下,從庫已落盤、主庫未提交,從庫可讀到更新數(shù)據(jù)。

規(guī)避

改為 after_commit 模式,保證一致性。

排查總思路

  1. 先看線程:IO 線程問題→網(wǎng)絡(luò) / 配置 / 權(quán)限;SQL 線程問題→數(shù)據(jù)沖突 / 結(jié)構(gòu)不一致
  2. 查日志:show slave status\G + 系統(tǒng)錯誤日志
  3. 按復(fù)制模式(GTID / 位點)選修復(fù)方案

日常運維建議

  • 定期檢查磁盤、復(fù)制延遲、GTID 完整性
  • 主庫 Binlog 保留足夠時長
  • 禁止手動修改從庫數(shù)據(jù)
  • 半同步優(yōu)先用 after_commit

以上就是MySQL主從復(fù)制故障排查及解決方案的詳細內(nèi)容,更多關(guān)于MySQL主從復(fù)制故障排查解決的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 美團網(wǎng)技術(shù)團隊分享的MySQL索引及慢查詢優(yōu)化教程

    美團網(wǎng)技術(shù)團隊分享的MySQL索引及慢查詢優(yōu)化教程

    這篇文章主要介紹了美團網(wǎng)技術(shù)團隊分享的MySQL索引及慢查詢優(yōu)化教程,結(jié)合了實際的磁盤IO情況對一些優(yōu)化方案作出了分析,十分推薦!需要的朋友可以參考下
    2015-11-11
  • mysql刪除關(guān)聯(lián)表的實操方法

    mysql刪除關(guān)聯(lián)表的實操方法

    在本篇內(nèi)容里我們給大家整理了關(guān)于mysql刪除關(guān)聯(lián)表的實操方法以及相關(guān)SQL語句,需要的朋友們學(xué)習(xí)下吧。
    2019-05-05
  • MySQL建表和增添改查操作代碼

    MySQL建表和增添改查操作代碼

    這篇文章主要介紹了MySQL建表和增添改查操作代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • mysql-5.5.28源碼安裝過程中錯誤總結(jié)

    mysql-5.5.28源碼安裝過程中錯誤總結(jié)

    介紹一下關(guān)于mysql-5.5.28源碼安裝過程中幾大錯誤總結(jié),希望此文章對各位同學(xué)有所幫助。
    2013-10-10
  • 詳解JDBC數(shù)據(jù)庫鏈接及相關(guān)方法的封裝

    詳解JDBC數(shù)據(jù)庫鏈接及相關(guān)方法的封裝

    這篇文章主要介紹了詳解JDBC數(shù)據(jù)庫鏈接及相關(guān)方法的封裝的相關(guān)資料,下面是封裝的具體類,用到了泛型和反射,希望能幫助到大家,需要的朋友可以參考下
    2017-08-08
  • MySQL主從同步、讀寫分離配置步驟

    MySQL主從同步、讀寫分離配置步驟

    根據(jù)要求配置MySQL主從備份、讀寫分離,結(jié)合網(wǎng)上的文檔,對搭建的步驟和出現(xiàn)的問題以及解決的過程做了如下筆記
    2012-03-03
  • MAC下修改mysql默認字符集為utf8的方法

    MAC下修改mysql默認字符集為utf8的方法

    本文主要介紹了如何修改MAC版mysql默認字符集為utf8,如果你的MAC版mysql字符亂碼,可以參考一下這篇文章
    2018-03-03
  • mysql條件下推的實現(xiàn)

    mysql條件下推的實現(xiàn)

    本文主要介紹了Java開發(fā)中SQL優(yōu)化的條件下推技術(shù),通過提前將過濾條件下推至子查詢/視圖執(zhí)行,減少中間結(jié)果量,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-09-09
  • MYSQL神秘的HANDLER命令與實現(xiàn)方法

    MYSQL神秘的HANDLER命令與實現(xiàn)方法

    這篇文章主要介紹了MYSQL神秘的HANDLER命令與實現(xiàn)方法,需要的朋友可以參考下
    2016-07-07
  • MySQL 線上日志庫遷移實例

    MySQL 線上日志庫遷移實例

    這篇文章主要介紹了MySQL 線上日志庫遷移實例,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-03-03

最新評論

五常市| 诸暨市| 吉水县| 文水县| 海阳市| 淮北市| 滨海县| 奉节县| 大兴区| 肃北| 宁波市| 宜黄县| 慈利县| 西林县| 日土县| 浪卡子县| 浮山县| 太白县| 曲麻莱县| 长岭县| 浑源县| 象山县| 盘山县| 高碑店市| 康保县| 安顺市| 九寨沟县| 筠连县| 汝南县| 杂多县| 定日县| 思茅市| 永善县| 洛宁县| 化德县| 麻栗坡县| 百色市| SHOW| 沙坪坝区| 新安县| 都兰县|