偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

MySQL主從如何保證高可用

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

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

主從延遲越小越好。

如何查看備庫(kù)的同步延遲?

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

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

seconds_behind_master的計(jì)算邏輯

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

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

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

主備延遲的原因?

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

主備切換策略由哪幾種?

  • 可靠性?xún)?yōu)先策略
  • 可用性?xún)?yōu)先策略

什么是可靠性?xún)?yōu)先策略?

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

可靠性?xún)?yōu)先策略下的主備切換邏輯

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

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

可用性?xún)?yōu)先策略

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

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

在實(shí)際使用中,我更建議使用可靠性?xún)?yōu)先策略,畢竟對(duì)于數(shù)據(jù)服務(wù)來(lái)說(shuō),數(shù)據(jù)可靠性重要程度要高于可用性。


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

2025-07-31 04:00:00

2024-02-28 10:14:47

Redis數(shù)據(jù)硬盤(pán)

2021-04-06 20:46:50

Kafka高可用Leader

2025-10-09 01:22:00

2023-12-11 07:44:36

MySQL架構(gòu)高可用

2018-04-08 15:20:15

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

2025-03-10 11:48:22

項(xiàng)目服務(wù)設(shè)計(jì)

2021-05-20 06:49:45

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

2025-03-31 10:40:52

2024-08-20 16:13:52

2022-05-17 11:06:44

數(shù)據(jù)庫(kù)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

2015-10-22 10:28:45

MySQL高可用方案

2019-08-27 15:56:44

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

2017-02-06 11:43:57

ZooKeeper集群

2017-02-19 19:57:05

ZooKeeper集群

2020-11-26 09:38:19

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

2021-09-23 12:14:50

Redis分布式優(yōu)化
點(diǎn)贊
收藏

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