MySQL主從復制****
----為什么要用主從復制?
1–主庫宕機后能及時的替換主庫,做高可用
2–業務的增多,i/o訪問頻繁,此時做多庫的存盤,降低磁盤I/O訪問的頻率,提高單個機器的I/O性能,
3–在復雜的環境中,如果sql陳述句需要鎖表時,導致不能使用讀的服務,那么久很影響業務的運行,主從復制 使用讀寫分離,主庫寫,從庫讀,這樣即使需要鎖表,也不會影響業務的運行,
—主從復制的優點
1–主庫宕機后,可以快速的切換到從庫繼續提供服務
2–從庫可以提供查詢操作,降低主庫的壓力
3–可以在從庫進行備份,以免影響主庫的服務
–MySQL復制解決的問題
1–實作讀寫分離,緩解資料庫的壓力
2–實作高可用
3–資料備份,保證資料安全
4–負載均衡
–主從復制的原理

master服務器將資料的改變記錄二進制binlog日志,當master上的資料發生改變時,則將其改變寫入二進制日志中;
slave服務器會在一定時間間隔內對master二進制日志進行探測其是否發生改變,如果發生改變,則開始一個I/OThread請求master二進制事件
同時主節點為每個I/O執行緒啟動一個dump執行緒,用于向其發送二進制事件,并保存至從節點本地的中繼日志中,從節點將啟動SQL執行緒從中繼日志中讀取二進制日志,在本地重放,使得其資料和主節點的保持一致,最后I/OThread和SQLThread將進入睡眠狀態,等待下一次被喚醒,
也就是說:
從庫會生成兩個執行緒,一個I/OThread,一個SQLThread;
I/O執行緒會去請求主庫的binlog,并將得到的binlog寫到本地的relay-log(中繼日志)檔案中;
主庫會生成一個 dump執行緒,用來給從庫I/O執行緒傳binlog;
SQL執行緒,會讀取relay log檔案中的日志,并決議成sql陳述句逐一執行
–主從復制的模式
MySQL 主從復制默認是異步的模式,MySQL增刪改操作會全部記錄在bin-log(binary log)中,當slave節點連接master時,會主動從master處獲取最新的bin-log檔案,并把bin-log存盤到本地的relay-log中,然后去執行relay-log的更新內容,
異步模式,主節點不會主動推送bin-log到從節點,主庫在執行完客戶端提交的事務后會立即將結果返給給客戶端,并不關心從庫是否已經接收并處理,這樣就會有一個問題,主節點如果崩潰掉了,此時主節點上已經提交的事務可能并沒有傳到從節點上,如果此時,強行將從提升為主,可能導致新主節點上的資料不完整,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/292911.html
標籤:其他
上一篇:計算機網路知識點概述(一)
下一篇:8080埠被占用時,我們該怎么辦
