標籤:.mysql主從的相關知識
MYSQL主從作用大致分為資料備份和負載平衡兩類
Master 節點,負責所有的「寫請求」
Slave 節點,負責大部分的「讀請求」;
MySQL 的主從複製:非同步單線程。
實現的具體邏輯方法:
Master上 1 個IO線程,負責向Slave傳輸 binary log(binlog)
Slave上 2 個線程:IO 線程和執行SQL的線程,其中:
IO線程:將擷取的日誌資訊,追加到relay log上;
執行SQL的線程:檢測到relay log中內容有更新,則在Slave上執行sql;
- 複製類型分為兩類,一種是記錄主要資料庫的操作sql,然後在從資料庫執行;另一種是將主要資料庫中資料的變動記錄為set語句,用set命令對從資料庫進行行的更新;
- 主從同步出錯時,有兩種方法解決
解決方案一:跳過一步錯誤,繼續進行同步
msyql> stop slave;
msyql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
msyql> start slave;
方法二:重做主從
msyql> stop slave;
#查看主伺服器上當前的 bin-log 日誌名和位移量
msyql> show master status;
#然後到從伺服器上執行手動同步
4.對主要資料庫的操作要注意
- 不要用系統命令複製或刪除表資料檔案,要用sql命令進行資料修改與表修改、建立或者刪除,不然會影響從資料庫,造成主從失敗;
5.Mysql主從複製常見故障及解決方案
http://www.10tiao.com/html/706/201603/403220961/1.html
6.查看主從延遲的方法
- 主從延時時間:Master 執行成功,到 Slave 執行成功,時間差
- show slave status,通過比較SQL THREAD接受events時間的時間戳記與IO THREAD執行事件events時間戳記的差值--秒數,來確定slave落後於master多少
- 使用pt-heartbeat工具
http://f.dataguru.cn/thread-461916-1-1.html
7.同步複製
- 主要資料庫資料寫入完畢之後,在從資料庫也將資料寫入之後,主要資料庫才會向用戶端返回資料寫入成功
非同步複製
- 主要資料庫寫入之後,從資料庫隨後更新,只要求資料最終一致,允許延遲存在
8.主從延遲的影響
- 主從資料不一致,災備系統失效,負載平衡失效,降低系統效能
9.常見的主從延遲原因:
Master 上,大事務,耗時間長度:最佳化業務,拆分為小事務
Master 上,SQL 執行速度慢:最佳化索引,提升索引區分度(事務內部有查詢操作)
Master 上,批量 DML 操作:建議延遲至業務低峰期操作
Master 上,多線程寫入頻繁, Slave 單線程速度跟不上:提升 Slave 硬體效能、藉助中介軟體,改善主從複製的單線程模式
60.mysql主從的相關知識