MySQL主從復制(3)應用場景,切換不丟數據


二、MySQL主從復制的應用場景

    MySQL主從復制有利於數據庫架構的健壯性、提升訪問速度和易於維護管理。

    1、主從服務器互為備份

    主從服務器架構的設置,可以大大的加強數據庫架構的健壯性。例如:當主服務器出現問題時,我們可以人工或自動切換到從服務器繼續提供服務。

    這類似nfs存儲數據通過inotify+rsync同步到備份的nfs非常類似,只不過MySQL的同步方案,是其自帶的工具。

    *異步可能不一致:

        1)找一台從庫專門做備份,主出問題,備接管服務,把主的binlog拉過來補全數據

        2)雙寫()

        3)通過應用程序,寫一個一分鍾的短時日志,補全從庫

        4)把異步同步換成實時同步(谷歌開發半同步插件:如果主成功,備也成功,才算成功,還有效率問題,設置等待時間)

    非人為的硬件,服務故障,對人為的執行drop,delete無能為力。

    2、主從服務器讀寫分離分擔網站壓力

    主從服務器架構可通過程序(php,java)或代理軟件(mysql-proxy,amoeba)對用戶(客戶端)的請求實現讀寫分離,即通過在從服務器上僅僅處理用戶的select查詢請求,降低用戶查詢響應時間及讀寫同時在主服務器帶來的壓力,對於更新的數據(updata,insert,delete)仍然交給主服務器處理,確保主服務器和從服務器保持實時同步,如果網站是以非更新(以瀏覽器為主)為主的業務,如blog,www首頁展示等業務,查詢請求不較多,這是從服務器的讀寫分離負載均衡策略就很有效了,這就是傳說中的讀寫分離數據庫結構。

    中大型公司:通過程序(php,java)

    測試環境:代理軟件(mysql-proxy,amoeba)

    門戶網站:分布式dbproxy(讀寫分離,hash負載均衡,健康檢查)

    

    3、根據服務器拆分業務獨立並分擔壓力

    可以把幾個不同的從服務器,根據公司的業務進行拆分。例如:有為外部用戶提供查詢服務的從服務器,有DBA用來備份的從服務器,還有提供公司內部人員為訪問的后台、腳本,日志分析及開發人員服務的從服務器。這樣的拆分除了減輕主服務器的壓力外。使得對外用戶瀏覽、對內處理公司內部用戶業務,及DBA備份業務互不影響。具體可以用下面的簡單架構來說明:

 

     邏輯圖:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM