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

詳解MySQL高可用方案:MySQL MHA架構(gòu)、原理、應(yīng)用場(chǎng)景等

數(shù)據(jù)庫(kù) MySQL
MySQL高可用,顧名思義就是當(dāng)MySQL主機(jī)或服務(wù)發(fā)生任何故障時(shí)能夠立馬有其他主機(jī)頂替其工作,并且最低要求是要保證數(shù)據(jù)一致性。

[[272341]]

概述

MySQL高可用,顧名思義就是當(dāng)MySQL主機(jī)或服務(wù)發(fā)生任何故障時(shí)能夠立馬有其他主機(jī)頂替其工作,并且最低要求是要保證數(shù)據(jù)一致性。因此,對(duì)于一個(gè)MySQL高可用系統(tǒng)需要達(dá)到的目標(biāo)有以下幾點(diǎn):

  • 數(shù)據(jù)一致性保證--這個(gè)是最基本的同時(shí)也是前提,如果主備的數(shù)據(jù)不一致,那么切換就無(wú)法進(jìn)行,當(dāng)然這里的一致性也是一個(gè)相對(duì)的,但是要做到最終一致性。
  • 故障快速切換--當(dāng)master故障時(shí)這里可以是機(jī)器故障或者是實(shí)例故障,要確保業(yè)務(wù)能在最短時(shí)間切換到備用節(jié)點(diǎn),使得業(yè)務(wù)受影響時(shí)間最短。
  • 簡(jiǎn)化日常維護(hù)--通過(guò)高可用平臺(tái)來(lái)自動(dòng)完成高可用的部署、維護(hù)、監(jiān)控等任務(wù),能夠最大程度的解放DBA手動(dòng)操作,提高日常運(yùn)維效率。
  • 統(tǒng)一管理--當(dāng)復(fù)制集很多的情況下,能夠統(tǒng)一管理高可用實(shí)例信息、監(jiān)控信息、切換信息等。
  • 高可用的部署--要對(duì)現(xiàn)有的數(shù)據(jù)庫(kù)架構(gòu)無(wú)影響,如果因?yàn)椴渴鸶呖捎?,需要更改或者調(diào)整數(shù)據(jù)庫(kù)架構(gòu)則會(huì)導(dǎo)致成本增加。

MySQL MHA

MHA是一位日本MySQL大牛用Perl寫(xiě)一套MySQL故障切換方案,來(lái)保證數(shù)據(jù)庫(kù)系統(tǒng)的高可用,在宕機(jī)的事件內(nèi)(通常10-30秒),完成故障轉(zhuǎn)意,部署MHA,可避免主從一致性問(wèn)題,節(jié)約購(gòu)買(mǎi)新服務(wù)器的費(fèi)用,不影響服務(wù)器性能,易安裝,不改變現(xiàn)有部署架構(gòu)。

MHA(Master HA)為MySQL主從復(fù)制架構(gòu)提供了automating master failover 功能。MHA在監(jiān)控到master節(jié)點(diǎn)故障時(shí),會(huì)提升其中擁有最新數(shù)據(jù)的slave節(jié)點(diǎn)成為新的master節(jié)點(diǎn),在此期間,MHA會(huì)通過(guò)與其它從節(jié)點(diǎn)獲取額外信息來(lái)避免一致性方面的問(wèn)題。MHA還提供了master節(jié)點(diǎn)的在線切換功能,即按需切換master/slave節(jié)點(diǎn)。

相較于其它HA軟件,MHA的目的在于維持MySQL Replication中Master庫(kù)的高可用性,其最大特點(diǎn)是可以修復(fù)多個(gè)Slave之間的差異日志,最終使所有Slave保持?jǐn)?shù)據(jù)一致,然后從中選擇一個(gè)充當(dāng)新的Master,并將其它Slave指向它。

應(yīng)用場(chǎng)景

一主多從的環(huán)境下,MySQL的主從復(fù)制是異步或是半同步。

Master發(fā)生故障的時(shí)候,有可能一部分(或者全部)的Slave未能獲取到最新的binlog,造成Slave之間的binlog轉(zhuǎn)發(fā)發(fā)生偏差。

如下圖所示,Master宕機(jī)之后,id=102的binlog未能被發(fā)送到任何一個(gè)Slave上,id=101的binlog只有save2上有,slave3上未能收到id=100和id=101的binlog

 

 

詳解MySQL高可用方案--MySQL MHA架構(gòu)、原理、應(yīng)用場(chǎng)景等

 

如果想要正確恢復(fù):

  • Master必須發(fā)出的ID=102的binlog
  • 還要消除各個(gè)Slave之間的差異性

而MHA可以全自動(dòng)的處理以上這些問(wèn)題。

MHA架構(gòu)

MHA架構(gòu)如下:

 

詳解MySQL高可用方案--MySQL MHA架構(gòu)、原理、應(yīng)用場(chǎng)景等

 

可實(shí)現(xiàn)master工作狀態(tài)的監(jiān)控以及宕機(jī)時(shí)的故障轉(zhuǎn)移

MHA原理

MHA原理如下圖:

 

詳解MySQL高可用方案--MySQL MHA架構(gòu)、原理、應(yīng)用場(chǎng)景等

 

  • 1、等待SQL線程執(zhí)行完畢
  • 2、解析最新的Slave上的中繼日志(relay log)的日志頭(log Header),為其他各個(gè)服務(wù)器確定出差異位置
  • 3、將i1-->i2-->X 全部組成一個(gè)二進(jìn)制日志

MHA的主要特性

  • 從master的監(jiān)控到故障轉(zhuǎn)移全部都能自動(dòng)完成,故障轉(zhuǎn)移也可手動(dòng)執(zhí)行
  • 可在秒級(jí)單位內(nèi)實(shí)現(xiàn)故障轉(zhuǎn)移
  • 可將任意Slave提升至master
  • 具備在多個(gè)點(diǎn)上調(diào)用外部腳本(擴(kuò)展)的技能,可以用在電源OFF或者IP地址的故障轉(zhuǎn)移上。
  • 安裝和卸載不用停止當(dāng)前的mysql進(jìn)程
  • MHA 自身不會(huì)增加服務(wù)器負(fù)擔(dān),不會(huì)降低性能,不用追加服務(wù)器
  • 不依賴(lài)Storage Engine
  • 不依賴(lài)二進(jìn)制文件的格式(不論是statement模式還是Row模式)

MHA組件

1、 Manager工具:

– masterha_check_ssh : 檢查MHA的SSH配置。

– masterha_check_repl : 檢查MySQL復(fù)制。

– masterha_manager : 啟動(dòng)MHA。

– masterha_check_status : 檢測(cè)當(dāng)前MHA運(yùn)行狀態(tài)。

– masterha_master_monitor : 監(jiān)測(cè)master是否宕機(jī)。

– masterha_master_switch : 控制故障轉(zhuǎn)移(自動(dòng)或手動(dòng))。

– masterha_conf_host : 添加或刪除配置的server信息。

2、 Node工具(這些工具通常由MHAManager的腳本觸發(fā),無(wú)需人手操作)。

– save_binary_logs : 保存和復(fù)制master的二進(jìn)制日志。

– apply_diff_relay_logs : 識(shí)別差異的中繼日志事件并應(yīng)用于其它slave。

– filter_mysqlbinlog : 去除不必要的ROLLBACK事件(MHA已不再使用這個(gè)工具)。

– purge_relay_logs : 清除中繼日志(不會(huì)阻塞SQL線程)。

3、自定義擴(kuò)展:

-secondary_check_script:通過(guò)多條網(wǎng)絡(luò)路由檢測(cè)master的可用性;

-master_ip_failover_script:更新application使用的masterip; (需要修改)

-shutdown_script:強(qiáng)制關(guān)閉master節(jié)點(diǎn);

-report_script:發(fā)送報(bào)告;

-init_conf_load_script:加載初始配置參數(shù);

-master_ip_online_change:更新master節(jié)點(diǎn)ip地址;(需要修改)

總結(jié)

目前MySQL高可用方案可以一定程度上實(shí)現(xiàn)數(shù)據(jù)庫(kù)的高可用,比如MMM,heartbeat+drbd,NDB Cluster等。還有MariaDB的Galera Cluster,以及MySQL 5.7.17 Group Replication等。這些高可用軟件各有優(yōu)劣。在進(jìn)行高可用方案選擇時(shí),主要是看業(yè)務(wù)對(duì)數(shù)據(jù)一致性方面的要求。不過(guò)出于對(duì)數(shù)據(jù)庫(kù)的高可用和高可靠的要求,個(gè)人比較推薦使用MHA架構(gòu)。

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

2021-04-21 09:21:07

zookeeper集群源碼

2017-11-03 09:40:27

數(shù)據(jù)庫(kù)MySQLMHA

2015-07-03 11:26:07

MySQL高可用架MHA

2015-05-12 10:22:05

MySQL

2022-05-17 11:06:44

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

2013-07-02 15:23:08

MySQL MHA故障轉(zhuǎn)移

2021-12-06 17:44:56

MHAMySQL高可用

2015-10-22 10:28:45

MySQL高可用方案

2018-01-12 14:20:37

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

2019-08-27 15:56:44

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

2022-09-29 15:24:15

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

2024-05-17 10:00:52

系統(tǒng)監(jiān)控日志記錄性能指標(biāo)

2024-06-14 15:21:15

2019-10-17 09:05:21

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

2024-09-06 11:52:47

2018-05-16 15:26:43

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

2021-02-18 14:25:52

MySQL數(shù)據(jù)庫(kù)架構(gòu)

2023-06-06 08:18:24

Kafka架構(gòu)應(yīng)用場(chǎng)景

2017-11-03 10:08:42

OracleMySQL高可用方案

2019-10-22 15:15:09

數(shù)據(jù)庫(kù)MySQL RouteMySQL
點(diǎn)贊
收藏

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