60.mysql主從的相關知識
阿新 • • 發佈:2018-05-18
.mysql主從的相關知識MYSQL主從作用大致分為數據備份和負載均衡兩類
Master 節點,負責所有的「寫請求」
Slave 節點,負責大部分的「讀請求」;
MySQL 的主從復制:異步單線程。
實現的具體邏輯方法:
Master上 1 個IO線程,負責向Slave傳輸 binary log(binlog)
Slave上 2 個線程:IO 線程和執行SQL的線程,其中:
IO線程:將獲取的日誌信息,追加到relay log上;
執行SQL的線程:檢測到relay log中內容有更新,則在Slave上執行sql;
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主從的相關知識