MySQL高可架構(gòu)之MHA搭建

本文中設(shè)計到的環(huán)境都是真實的騰訊云環(huán)境,下面設(shè)計到的虛擬IP需要使用騰訊云的高可用虛擬 IP

前期準(zhǔn)備

三臺服務(wù)器厂榛,分別為節(jié)點一、二种柑、三,節(jié)點一為主服務(wù)器匹耕,節(jié)點二聚请、三為從服務(wù)器,

節(jié)點一: 172.27.0.13 (主)

節(jié)點二:?172.27.0.11 (從--安裝manager)

節(jié)點三:?172.27.0.17 (從)

在他們之間配置好基于gtid主從復(fù)制稳其,可以參考MySQL主從復(fù)制(日志點和gtid)

MHA是基于SSH服務(wù)的驶赏,所以我們先在集群的所有服務(wù)器中建立ssh免認(rèn)證登錄,這樣使用ssh鏈接的時候就不需要在輸入密碼了既鞠,具體操作如下:

????1. 在節(jié)點一上執(zhí)行 ssh-keygen煤傍,然后三次回車后就生成了ssh秘鑰

2. 使用ssh-copy-id將秘鑰拷貝到各個服務(wù)器上,包括當(dāng)前(自己)服務(wù)器嘱蛋,也就是說這里在每個服務(wù)器都要要拷貝三次

ssh-copy-id -i 上一步秘鑰生成的位置 -p ssh登錄的端口 usernname@ip地址,下面例子:

?ssh-copy-id -i /root/.ssh/id_rsa.pub -p 22 root@172.27.0.17

mkdir -p /home/mysql_mha三次配置完成后蚯姆,可以在服務(wù)器上執(zhí)行ssh鏈接看是否還需要輸入密碼五续,如果不需要則成功

最后登錄其他兩個服務(wù)器重復(fù)上面兩個步驟

安裝軟件包

一、下載node和manager軟件包

wget https://raw.githubusercontent.com/linyue515/mysql-master-ha/master/mha4mysql-node-0.57-0.el7.noarch.rpm

wget https://raw.githubusercontent.com/linyue515/mysql-master-ha/master/mha4mysql-manager-0.57-0.el7.noarch.rpm

二龄恋、查看系統(tǒng)中是否已經(jīng)有存在的軟件包

安裝之前最好查看一下系統(tǒng)中是否已經(jīng)安裝了軟件包,有的話可以先卸載安裝上面的版本,因為老的版本可能有很多坑(親身體會)

三疙驾、安裝node軟件包

node包需要在三臺服務(wù)器都安裝,安裝之前需要先安裝perl的幾個依賴包(perl-DBD-MySQL ncftp perl-DBI.x86),,然后在安裝node.執(zhí)行下面兩個命令

yum install -y perl-DBD-MySQL ncftp perl-DBI.x86

rpm -ivh mha4mysql-node-0.57-0.el7.noarch.rpm

四、安裝manager軟件包

和node不同,manage包只需要安裝到一個服務(wù)器就行,這里我直接安裝到作為從服務(wù)器的節(jié)點二上面,當(dāng)然,服務(wù)器資源充足的情況下,單獨用一臺服務(wù)器安裝manager包更好.?

和安裝node相同的,也需要你先安裝相關(guān)的依賴包,然后在安裝manager包.執(zhí)行如下兩條命令

yum install -y perl-Config-Tiny.noarch perl-Time-HiRes.x86_64 perl-Parallel-ForkManager perl-Log-Dispatch.noarch perl-DBD-MySQL ncftp

rpm -ivh mha4mysql-manager-0.57-0.el7.noarch.rpm

ps: 安裝node或者manager包的時候,必須要相關(guān)的依賴包,確定相關(guān)的依賴包安裝成功了

配置MHA

在安裝有manager包的節(jié)點二,創(chuàng)建一個放MHA的配置目錄,其他節(jié)點上不需要配置

1. 在主服務(wù)器(節(jié)點一)上建立一個mha用戶(就可以直接同步到所有從服務(wù)器郭毕,配置文件中需要)

grant all privileges on *.* to 'mha'@'172.27.0.%' identified by 'Mha123456.';

2. 在集群所有服務(wù)器中都先建立一個mha工作目錄(配置文件需要用)

mkdir -p /home/mysql_mha

3. 在節(jié)點二(manager)上的/opt/soft/mha目錄(自定義)下建立一個配置文件mysql_mha.cnf(名字自定義)

[server default]

user=mha

password=Mha123456.

manager_workdir=/home/mysql_mha?

manager_log=/home/mysql_mha/manager.log?

remote_workdir=/home/mysql_mha?

ssh_user=rootrepl_user=repl?

repl_password=Repl123456.?

ping_interval=1?

master_binlog_dir=/var/log/sql_log

master_ip_failover_script=/usr/bin/master_ip_failover

secondary_check_script=/usr/bin/masterha_secondary_check -s 172.27.0.11 -s 172.27.0.13 -s 172.27.0.17

[server1]

hostname=172.27.0.13

candidate_master=1

[server2]

hostname=172.27.0.17

candidate_master=1

[server1]

hostname= 172.27.0.11

no_master=1

remote_workdir=/home/mysql_mha 三個節(jié)點都要建立

ping_interval=1 manager進(jìn)程去檢查主數(shù)據(jù)庫是否聯(lián)通的時間間隔它碎,用ping命令檢查 1S

master_binlog_dir 配置好的二進(jìn)制日志文件的目錄,集群中參與選舉主服務(wù)器的數(shù)據(jù)庫的二進(jìn)制文件都配置在相同的目錄下显押,方便主從切換后扳肛,不需要修改配置文件

master_ip_failover_script: (可選),指定一個腳本---在完成主從切換后煮落,可以把主的虛擬ip綁定在新選舉的主上敞峭,如果不提供這個參數(shù),要實現(xiàn)這種虛擬ip的轉(zhuǎn)移蝉仇,就需要借助第三方的組件了旋讹,比如keepalived

secondary_check_script: 通過多個網(wǎng)絡(luò)檢測master是否可用,安裝好以后再服務(wù)器上就有

ps:? ?master_ip_failover_script這個本可以在這里下載,也可以網(wǎng)上搜一個,只需要改一個vip(虛擬ip)就行

檢測mha配置是否正確

masterha_check_ssh --conf=/opt/soft/mha/mysql_mha.cnf

檢測主從復(fù)制環(huán)境

masterha_check_repl --conf=/opt/soft/mha/mysql_mha.cnf

后臺啟動mha

nohup masterha_manager --conf=/opt/soft/mha/mysql_mha.cnf &

啟動后轿衔,主服務(wù)器(節(jié)點一)會自動分配相應(yīng)的虛擬ip沉迹,如果不分配就按照下面方式手動分配

ifconfig eth0:1 172.27.0.19/20

簡單測試故障轉(zhuǎn)移

在主服務(wù)器(節(jié)點一)停掉mysql,監(jiān)聽節(jié)點二上/home/mysql_mha/manager.log日志

分別查看節(jié)點一和節(jié)點三的虛擬IP是否已經(jīng)轉(zhuǎn)移

在節(jié)點二上查看當(dāng)前的主從復(fù)制鏈路,確認(rèn)主服務(wù)器已經(jīng)轉(zhuǎn)移到節(jié)點三

ps: 還可以測試一下這種架構(gòu)的壓力和其他故障處理的情況,比如加大主庫的并發(fā)寫入;停止一臺從庫,讓二進(jìn)制文件落后主庫,看最后會不會恢復(fù)等等.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市害驹,隨后出現(xiàn)的幾起案子鞭呕,更是在濱河造成了極大的恐慌,老刑警劉巖宛官,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件葫松,死亡現(xiàn)場離奇詭異,居然都是意外死亡底洗,警方通過查閱死者的電腦和手機(jī)腋么,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亥揖,“玉大人珊擂,你說我怎么就攤上這事》驯洌” “怎么了摧扇?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長挚歧。 經(jīng)常有香客問我扛稽,道長,這世上最難降的妖魔是什么滑负? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任庇绽,我火速辦了婚禮锡搜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瞧掺。我一直安慰自己耕餐,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布辟狈。 她就那樣靜靜地躺著肠缔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪哼转。 梳的紋絲不亂的頭發(fā)上明未,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音壹蔓,去河邊找鬼趟妥。 笑死,一個胖子當(dāng)著我的面吹牛佣蓉,可吹牛的內(nèi)容都是我干的披摄。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼勇凭,長吁一口氣:“原來是場噩夢啊……” “哼疚膊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起虾标,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤寓盗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后璧函,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體傀蚌,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年蘸吓,在試婚紗的時候發(fā)現(xiàn)自己被綠了善炫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡美澳,死狀恐怖销部,靈堂內(nèi)的尸體忽然破棺而出摸航,到底是詐尸還是另有隱情制跟,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布酱虎,位于F島的核電站雨膨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏读串。R本人自食惡果不足惜聊记,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一撒妈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧排监,春花似錦狰右、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至挨队,卻和暖如春谷暮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盛垦。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工湿弦, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腾夯。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓颊埃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親俯在。 傳聞我的和親對象是個殘疾皇子竟秫,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345