日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

《MySQL——主备切换流程与主备延迟》

發布時間:2023/12/1 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《MySQL——主备切换流程与主备延迟》 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

    • 主備切換
    • 主備延遲的原因
    • 可靠性優先策略的主備切換流程
    • 可用性優先策略的主備切換流程

主備切換

主備切換分為主動運維與被動操作。

軟件升級、主庫所在機器按計劃下線為主動運維。

主庫所在機器掉電為被動操作。

同步延遲

1、主庫A執行完一個事務,寫入binlog,時刻T1

2、傳給備庫B,備庫B接受完這個binlog,時刻T2;

3、備庫B執行完這個事務,時刻T3;

同一個事務,在備庫執行完成的時間和主庫執行完成的時間之差為T3-T1,又稱主備延遲。

在備庫執行show slave status命令會顯示seconds_behind_master,表示備庫延遲了多少秒。

主備庫機器系統時間設置不一樣并不會導致主備延遲的值不準。

在網絡正常的時候,日志從主庫傳給備庫的時間T2-T1是很短的。也就是說網絡正常時,主備延遲的主要來源是備庫接受完binlog和執行這個事務之間的時間差。

主備延遲最直接的表現就是:備庫消費中轉日志(relay log)的速度,比主庫生產binlog的速度慢。

主備延遲的原因

1、備庫所在機器的性能可能比主庫所在的機器性能差

2、備庫壓力大。(主庫提供寫能力,備庫提供讀能力)

由于主庫直接影響業務,使用起來比較克制,反而忽視了備庫的壓力控制。結果就是,備庫上的查詢耗費了大量的CPU資源,影響了同步速度,造成主備延遲。

這種情況可以這么解決:

1、一主多從。除了備庫外,可以多接幾個從庫,讓這些從庫來分擔讀的壓力2、通過binlog輸出到外部系統,讓外部系統提供統計查詢的能力

3、大事務情況

由于主庫必須等事務執行完才會寫入binlog,再傳給備庫。

如果一個主庫上的語句執行10分鐘,那么這個事務很可能會導致從庫延遲10分鐘。

典型大事務場景

a、一次性刪掉大量歷史數據。需要控制每個事務刪除的數據量,分成多次刪除

b、大表DDL

4、備庫并行復制能力差

可靠性優先策略的主備切換流程

在M-M結構下,狀態1切換到狀態2流程如下:

1、判斷備庫B現在的seconds_behind_master,如果小于某個值(比如5s)繼續下一步,否則繼續重試這一步

2、把主庫A改成只讀狀態,(readonly設置為true)

3、判斷備庫B的seconds_behind_master,直到這個值變為0

4、把備庫改成可讀寫狀態,(readonly設置為false)

5、把業務請求切換到備庫B

step2之后,主庫A和備庫B都處于readonly狀態,此時系統處于不可寫狀態,直到step5才能恢復。step3比較耗時。

可用性優先策略的主備切換流程

如果強行把上面的step4、5調整到最開始執行,也就是說不等主備數據同步,直接把連接切到備庫B,并且讓備庫B可以讀寫,那么系統幾乎沒有不可用時間。

這個切換流程,稱為可用性優先流程,不過這個切換的代價,就是可能出現數據不一致的情況。

結論如下:

1、使用row格式的binlog時,數據不一致的問題更容易被發現。使用mixed或者statement格式的binlog時,數據很可能就不一致了。

2、主備切換的可用性優先策略會導致數據不一致,所以一般情況下使用可靠性優先策略。

下面介紹一個使用可用性優先策略的情形:

  • 有一個庫的作用是記錄操作日志。如果數據不一致可以通過binlog來修補,而這個短暫的不一致也不會引發業務問題。

  • 同時,業務系統依賴于這個日志寫入邏輯,如果這個庫不可寫,會導致線上的業務操作無法執行。

如果使用可靠性優先的思路,只能等待備庫慢慢應用中轉日志,在備庫應用完中轉日志且切換成讀寫狀態之前,數據庫是處于不可用的狀態。 這時也不能直接切換到備庫B,然后保持B庫只讀。

所以此時就需要用到可用性優先策略。

Mysql的高可用性,依賴于主備延遲。主備延遲的時間越小,出現故障的時候,服務需要恢復的時間就越短,可用性就越高

總結

以上是生活随笔為你收集整理的《MySQL——主备切换流程与主备延迟》的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。