自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL主從如何保證高可用

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

什么時候是主備切換的最佳時機(jī)?

主從延遲越小越好。

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

-- 在slave上執(zhí)行以下命令
show slave status\G

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

seconds_behind_master的計算邏輯

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

什么情況下會發(fā)生主備切換?

  • 主動運(yùn)維操作
  • 主庫意外宕機(jī)

主備延遲的原因?

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

主備切換策略由哪幾種?

  • 可靠性優(yōu)先策略
  • 可用性優(yōu)先策略

什么是可靠性優(yōu)先策略?

可靠性優(yōu)先策略優(yōu)先保證數(shù)據(jù)的可靠性,通常由專門HA系統(tǒng)實(shí)現(xiàn)。

可靠性優(yōu)先策略下的主備切換邏輯

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

可靠性優(yōu)先策略假設(shè)主從延遲很大,無法快速切換,主節(jié)點(diǎn)又不可用,這將會導(dǎo)致服務(wù)長時間的不可用。

可用性優(yōu)先策略

可用性優(yōu)先策略是不再等待主從同步完成,如果主節(jié)點(diǎn)一旦宕機(jī),立馬進(jìn)行切換,但是此時可能會導(dǎo)致數(shù)據(jù)一致性問題。

尤其是當(dāng)binlog模式是statement或者mixed模式下的時候,很容易造成數(shù)據(jù)不一致。如果binlog模式是ROW模式,由于記錄的是某個行記錄的全字段,在插入數(shù)據(jù)的時候可能會因?yàn)橹麈I沖突,使得同步線程報錯并停止。

在實(shí)際使用中,我更建議使用可靠性優(yōu)先策略,畢竟對于數(shù)據(jù)服務(wù)來說,數(shù)據(jù)可靠性重要程度要高于可用性。


責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2024-02-28 10:14:47

Redis數(shù)據(jù)硬盤

2021-04-06 20:46:50

Kafka高可用Leader

2023-12-11 07:44:36

MySQL架構(gòu)高可用

2018-04-08 15:20:15

數(shù)據(jù)庫MySQL主從復(fù)制

2025-03-10 11:48:22

項目服務(wù)設(shè)計

2021-05-20 06:49:45

MongoDB高可用數(shù)據(jù)庫

2025-03-31 10:40:52

2024-08-20 16:13:52

2022-05-17 11:06:44

數(shù)據(jù)庫MySQL系統(tǒng)

2020-09-01 13:13:59

云原生MySQL高可用

2021-09-09 08:20:14

Kafka網(wǎng)絡(luò)故障集群

2015-05-12 10:22:05

MySQL

2018-01-12 14:20:37

數(shù)據(jù)庫MySQL高可用架構(gòu)

2015-10-22 10:28:45

MySQL高可用方案

2019-08-27 15:56:44

MySQL 互聯(lián)網(wǎng)數(shù)據(jù)庫

2020-11-26 09:38:19

分布式架構(gòu)系統(tǒng)

2021-09-23 12:14:50

Redis分布式優(yōu)化

2018-07-06 09:58:38

Redis高可用主從復(fù)制

2025-03-03 04:20:00

高可用架構(gòu)冗余法則

2019-05-10 15:30:18

數(shù)據(jù)庫主從復(fù)制MySQL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號