mysql複製的三個線程:主庫線程,從庫I/O線程,從庫SQL線程;
複製流程:(1) I/O 線程向主庫發出請求
(2)主庫線程響應請求,並推BINLOG 日誌到從庫
(3)I/O 線程收到線程並記入中繼日誌
(4)SQL 線程從中繼日誌讀取SQL,並記入從庫binlog 日誌,FLUSH進硬盤
一致性延時性,數據恢復;
1,主從複製一致性由BINLOG執行順序保證(TIMESPAN+POS);
日誌越詳細,主從一致性越容易保證
延時性:延時表現爲 延遲時間=從庫執行SQL完成的時刻-主庫開始執行SQL時間;
數據恢復 備份時記錄的BINLOG位置點;
(3) 工作遇到的複製BUG的解決方法
答:這個問題感覺描述並不準確,不清楚是主從複製故障還是bug;
故障一般由於主鍵衝突,鏈接不上主庫,找不到對應的binlog位置等引起;
解決方法是跳過沖突,檢查主從鏈接,找正確的pos;
bug不常見,筆者碰到過一次,分享如下:
環境:主庫從庫都是虛機,每十分鐘與宿主機同步一次時間,大約每次與主機相差2秒;
表現:從庫複製時重複執行兩秒之內的日誌;
從庫showslave status\G,behind_master_pos在60000和0之間循環,每兩秒一次;