首先登錄mysql後用指令 : show slave status\G 查看下報錯信息. 博主貼個例子,半夜服務器主從告警,完事爬起來處理故障.
由報錯信息可以得知是某個表的數據不一致導致的同步停止,所以,因爲主從同步的關係,寫入修改都是用主庫,從庫只作爲讀使用,所以先把這個表鎖住,不讓修改操作 lock table 表名 read 然後把主庫的這張表備份下,然後在從庫中,記得 是從庫 使用 stop slave; 停止同步先,完事再把從庫的這個表的數據truncate掉(嘛,首先考慮業務哈,業務如果不允許暫時的停止的話就另外找方法), 再把備份好的數據導入從庫, 然後使用 set global sql_slave_skip_counter =1; 跳過錯誤,後面的數字是可以更改的,看錯誤的數量,如果數據相差不大 那就先一個個來,然後在 start slave; 再 show slave status\G 看看狀態,如果還是沒成 就繼續重複 停止 跳過 啓動 查看這些步驟,直到 狀態變成: 沒報錯(下圖) 並且sql和io同步都是yes時 即可 ,完事呢 記得把表解鎖哈 unlock tables 教程有點麻煩 但親測可用...........睡覺睡覺
噢,還有個問題 順帶說一下,之前有遇到過 雙向同步 完事不小心binlog日誌刪除了,導致不同步 更誇張的是 你 一 start slave; 特麼服務器就直接重啓 網上找了個解決辦法 : 聽說原因是因爲雙向同步時linux的系統會去用兩個進程去搶奪一個文件,而那個文件只能被一個進程所獲取,類似於加了鎖,然後導致linux系統重啓.....