mysql 主從複製原理和經常遇到的問題

2021-09-13 16:52:41 字數 1247 閱讀 9949

主從形式

1.一主一從

2.主主複製

3.一主多從—擴充套件系統讀取的效能,因為讀是在從庫讀取的;

4.多主一從—5.7開始支援

5.聯級複製

用途及條件

mysql主從複製用途

實時災備,用於故障切換

讀寫分離,提供查詢服務

備份,避免影響業務

主從部署必要條件:

主庫開啟binlog日誌(設定log-bin引數)

主從server-id不同

從庫伺服器能連通主庫

主從原理

從庫生成兩個執行緒,乙個i/o執行緒,乙個sql執行緒;

i/o執行緒去請求主庫 的binlog,並將得到的binlog日誌寫到relay log(中繼日誌) 檔案中;

主庫會生成乙個 log dump 執行緒,用來給從庫 i/o執行緒傳binlog;

sql 執行緒,會讀取relay log檔案中的日誌,並解析成具體操作,來實現主從的操作一致,而最終資料一致;

問題及解決方法

mysql主從複製存在的問題:

主庫宕機後,資料可能丟失

從庫只有乙個sql thread,主庫寫壓力大,複製很可能延時

解決方法:

半同步複製—解決資料丟失的問題

並行複製----解決從庫複製延遲的問題

半同步複製的原理

原理:事務在主庫寫完binlog後需要從庫返回乙個已接受,才放回給客戶端;

5.5整合到mysql,以外掛程式的形式存在,需要單獨安裝

確保事務提交後binlog至少傳輸到乙個從庫

不保證從庫應用完成這個事務的binlog

效能有一定的降低

網路異常或從庫宕機,卡主庫,直到超時或從庫恢復

並行複製原理

mysql主從複製原理

mysql主從複製 靈活 用途及條件 mysql主從複製用途 主從部署必要條件 主從原理 mysql主從複製原理 從庫生成兩個執行緒,乙個i o執行緒,乙個sql執行緒 1 當主伺服器發生改變時,會將此改變以二進位制日誌的形式傳送到binlog中 2 而副伺服器會有乙個中繼日誌,實時監控主伺服器的b...

mysql主從複製原理

什麼是分庫分表 分表是啥意思?就是把乙個表的資料放到多個表中,然後查詢的時候你就查乙個表。比如按照使用者id來分表,將乙個使用者的資料就放在乙個表中 分庫是啥意思?就是你乙個庫一般我們經驗而言,最多支撐到併發2000,一定要擴容了,而且乙個健康的單庫併發值你最好保持在每秒1000左右,不要太大。那麼...

mysql主從複製原理

1 主伺服器上發起乙個mysql事務 2 主伺服器上使用一條或者多條sql語句。物理結構的真正實現依賴於儲存引擎,一邊會先記錄到記憶體快取中 innodb的語句被記錄到innodb事務日誌中,myisam 直接寫到表的資料檔案中 3 事務結束,主伺服器的二進位制日誌檔案記錄所使用的dml語句的結果 ...