一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - MySQL主從如何保證高可用

MySQL主從如何保證高可用

2022-02-28 23:09DifferentJava Mysql

通過主備同步我們能夠保證數據的可靠性(最終一致性),MySQL的主備可用性主要依賴于主備切換的時間,越短越好,但前提是切換完成以后數據要一致。

MySQL主從如何保證高可用

什么時候是主備切換的最佳時機?

主從延遲越小越好。

如何查看備庫的同步延遲?

-- 在slave上執行以下命令 show slave status\G

MySQL主從如何保證高可用

上圖返回結果中包含一個seconds_behind_master字段,用于表示當前備庫延遲了多少秒。

seconds_behind_master的計算邏輯

  • 每個事務的binlog里面都有一個時間字段,用于記錄主庫上的寫入時間
  • 備庫取出當前正在執行的事務的時間字段的值,計算它與當前系統時間的差值,得到seconds_behind_master
  • 備庫在連接到主庫時,會通過執行select unix_timestamp()函數獲取主庫的系統時間,如果發現主庫和自己的時間不一致,備庫在計算seconds_behind_master會自動扣掉這個差值

什么情況下會發生主備切換?

  • 主動運維操作
  • 主庫意外宕機

主備延遲的原因?

  • 備庫機器配置較低
  • 備庫壓力大(比如在備庫上執行一些占用資源的運營報表分析)
  • 大事務
  • 備庫的并行復制能力

主備切換策略由哪幾種?

  • 可靠性優先策略
  • 可用性優先策略

什么是可靠性優先策略?

可靠性優先策略優先保證數據的可靠性,通常由專門HA系統實現。

可靠性優先策略下的主備切換邏輯

  1. 判斷Slave B現在的seconds_behind_master,如果小于某個值(比如5s)繼續下一步,否則重試這一步
  2. 把Master A修改為只讀狀態
  3. 判斷Slave B的seconds_behind_master的值,直到這個值變為0為之
  4. 把Slave B改為可讀寫狀態
  5. 把業務請求切到備庫B,此時Slave B就正式晉升為主庫

可靠性優先策略假設主從延遲很大,無法快速切換,主節點又不可用,這將會導致服務長時間的不可用。

可用性優先策略

可用性優先策略是不再等待主從同步完成,如果主節點一旦宕機,立馬進行切換,但是此時可能會導致數據一致性問題。

尤其是當binlog模式是statement或者mixed模式下的時候,很容易造成數據不一致。如果binlog模式是ROW模式,由于記錄的是某個行記錄的全字段,在插入數據的時候可能會因為主鍵沖突,使得同步線程報錯并停止。

在實際使用中,我更建議使用可靠性優先策略,畢竟對于數據服務來說,數據可靠性重要程度要高于可用性。

原文地址:https://www.toutiao.com/a7068928938910761483/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩理论片 | 日本黄大片影院一区二区 | 欧美成人午夜片一一在线观看 | 亚洲另类第一页 | 国产在线视频第一页 | 午夜久久免影院欧洲 | 色婷婷综合久久久中文字幕 | 日本色播 | 高清在线观看mv的网址免费 | 国内自拍网红在线综合 | 污小说h| 国产高清亚洲 | 国内免费高清视频在线观看 | 亚洲国产精品久久网午夜小说 | caoporn超碰最新地址进入 | 日本视频在线播放 | 日本性生活免费看 | 欧美日一级片 | 经典三级四虎在线观看 | 暖暖日本在线观看免费 | www.日日日 | 动漫美女强行被吸乳做羞羞事 | 免费观看大片毛片 | 视频免费在线 | 99草精品视频 | 国产一区二区三区免费在线视频 | 92福利网 | 免费超级乱淫播放手机版 | 亚洲是图你懂的 | 图片专区小说专区卡通动漫 | 国产欧美日韩成人 | 精品夜夜澡人妻无码AV蜜桃 | 被教官揉了一晚上的奶小说 | 日本xxxxx69hd日本 | 国产精品免费观在线 | 四虎最新紧急更新地址 | 日韩精品高清自在线 | 韩日一区二区三区 | 久久精品男人影院 | 国产一级一级一级成人毛片 | 2019国内精品久久久久久 |