【干貨】高性能mysql實(shí)踐分享

2021-03-19    分類: 網(wǎng)站建設(shè)

在WEB應(yīng)用方面,MySQL是最好的關(guān)系性數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)用軟件之一。
MySQL數(shù)據(jù)庫(kù)自身提供的主從復(fù)制功能可以方便的實(shí)現(xiàn)數(shù)據(jù)的多副本復(fù)制和數(shù)據(jù)庫(kù)的拓展。在保證MySQL數(shù)據(jù)庫(kù)主從復(fù)制高可用性的情況下,實(shí)現(xiàn)多個(gè)數(shù)據(jù)副本存儲(chǔ)以及讀寫分離技術(shù),不僅可以加強(qiáng)數(shù)據(jù)的安全性,還能進(jìn)一步提升數(shù)據(jù)庫(kù)的讀寫性能。

對(duì)此,創(chuàng)新互聯(lián)的數(shù)據(jù)庫(kù)產(chǎn)品團(tuán)隊(duì)從MySQL數(shù)據(jù)庫(kù)主從復(fù)制原理及高可用原理兩方面著手,通過(guò)配置實(shí)踐進(jìn)行詳細(xì)的講解。


第一步:master記錄二進(jìn)制日志。在每個(gè)事務(wù)更新數(shù)據(jù)完成之前,master在二進(jìn)制日志記錄這些改變。MySQL將事務(wù)串行的寫入二進(jìn)制日志,在事件寫入二進(jìn)制日志完成后,master通知存儲(chǔ)引擎提交事務(wù)。此后可接收slave的請(qǐng)求。

第三步:SQL slave thread(SQL從線程)處理該過(guò)程的最后一步。SQL線程從中繼日志讀取事件,并重放其中的事件而更新slave的數(shù)據(jù),使其與master中的數(shù)據(jù)一致。只要該線程與I/O線程保持一致,中繼日志通常會(huì)位于OS的緩存中,所以中繼日志的開(kāi)銷很小。

MHA Node運(yùn)行在每臺(tái)MySQL服務(wù)器上,MHA Manager會(huì)定時(shí)探測(cè)集群中的master節(jié)點(diǎn),當(dāng)master出現(xiàn)故障時(shí),它可以自動(dòng)將最新數(shù)據(jù)的slave提升為新的master,然后將所有其他的slave重新指向新的master。整個(gè)故障轉(zhuǎn)移過(guò)程對(duì)應(yīng)用程序完全透明。

高性能mysql

1. 角色分配
node1: MySQL master
node2: MySQL slave
node3: MySQL slave
node4: MHA Manager

二、初始主節(jié)點(diǎn)master配置

三、所有slave節(jié)點(diǎn)依賴的配置

四、確保主從復(fù)制運(yùn)行無(wú)誤

五、安裝配置MHA

1. 在所有MYSQL節(jié)點(diǎn)授權(quán)擁有管理權(quán)限的用戶可在本地網(wǎng)絡(luò)中有其他節(jié)點(diǎn)上遠(yuǎn)程訪問(wèn)。 當(dāng)然, 此時(shí)僅需要且只能在master節(jié)點(diǎn)運(yùn)行類似如下SQL語(yǔ)句即可。

2. 準(zhǔn)備基于SSH互信通信環(huán)境
MHA集群中的各節(jié)點(diǎn)彼此之間均需要基于ssh互信通信, 以實(shí)現(xiàn)遠(yuǎn)程控制及數(shù)據(jù)管理功能??稍贛anager節(jié)點(diǎn)生成密鑰對(duì)兒, 并設(shè)置其可遠(yuǎn)程連接本地主機(jī)后, 將私鑰文件及authorized_keys文件復(fù)制給余下的所有節(jié)點(diǎn)即可。

3. 進(jìn)行MHA安裝包安裝
Manager 節(jié)點(diǎn): #yum install mha4*(即:倆包同時(shí)安裝)
所有節(jié)點(diǎn): #yum installmha4mysql-node-0.56-0.el6.norch.rpm

5. 定義MHA管理配置文件
為MHA專門創(chuàng)建一個(gè)管理用戶,方便以后使用,在mysql的主節(jié)點(diǎn)上,三個(gè)節(jié)點(diǎn)自動(dòng)同步.

6. 檢測(cè)各節(jié)點(diǎn)間ssh互信通信配置是否Ok
Node4操作:
[root@node4 ~]# masterha_check_ssh -conf=/etc/mha_master/app1.cnf
輸出信息最后一行類似如下信息, 表示其通過(guò)檢測(cè)。
[info]All SSH connection tests passed successfully.
檢查管理的MySQL復(fù)制集群的連接配置參數(shù)是否OK:
[root@node4 ~]# masterha_check_repl -conf=/etc/mha_master/app1.cnf

7. 啟動(dòng)MHA
[root@node4.jingan ~]#nohup masterha_manager -conf=/etc/mha_master/app1.cnf &> /etc/mha_master/manager.log &
# 啟動(dòng)成功后,可用過(guò)如下命令來(lái)查看master節(jié)點(diǎn)的狀態(tài):
[root@node4.jingan ~]#masterha_check_status
-conf=/etc/mha_master/app1.cnf
app1 (pid:4978)is running(0:PING_OK),master:10.220.1.2

六、測(cè)試MHA測(cè)試故障轉(zhuǎn)移

2. 在manager節(jié)點(diǎn)查看日志:
/data/masterha/app1/manager.log日志文件中出現(xiàn)如下信息,表示manager檢測(cè)到10.220.1.2節(jié)點(diǎn)故障, 而后自動(dòng)執(zhí)行故障轉(zhuǎn)移, 將10.220.1.3提升為主節(jié)點(diǎn)。 注意, 故障轉(zhuǎn)移完成后, manager將會(huì)自動(dòng)停止, 此時(shí)使用masterha_check_status命令檢測(cè)將會(huì)遇到錯(cuò)誤提示, 如下所示:

3. 提供新的從節(jié)點(diǎn)以修復(fù)復(fù)制集群
原有 master 節(jié)點(diǎn)故障后, 需要重新準(zhǔn)備好一個(gè)新的 MySQL 節(jié)點(diǎn)。 基于來(lái)自于master 節(jié)點(diǎn)的備份恢復(fù)數(shù)據(jù)后, 將其配置為新的 master 的從節(jié)點(diǎn)即可。 注意,新加入的節(jié)點(diǎn)如果為新 增節(jié)點(diǎn), 其 IP 地址要配置為原來(lái) master 節(jié)點(diǎn)的 IP, 否則, 還需要修改 app1.cnf 中相應(yīng)的 ip 地址。 隨后再次啟動(dòng) manager, 并再次檢測(cè)其狀態(tài)。

通過(guò)以上配置操作,可以有效保證MySQL主從復(fù)制及其高可用性,從而實(shí)現(xiàn)主庫(kù)宕機(jī)后自動(dòng)切換到從庫(kù)。

文章標(biāo)題:【干貨】高性能mysql實(shí)踐分享
文章路徑:http://www.bm7419.com/news45/105495.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、App開(kāi)發(fā)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、定制網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司