在WEB應(yīng)用方面,MySQL是最好的關(guān)系性數(shù)據(jù)庫管理系統(tǒng)應(yīng)用軟件之一。
MySQL數(shù)據(jù)庫自身提供的主從復(fù)制功能可以方便的實(shí)現(xiàn)數(shù)據(jù)的多副本復(fù)制和數(shù)據(jù)庫的拓展。在保證MySQL數(shù)據(jù)庫主從復(fù)制高可用性的情況下,實(shí)現(xiàn)多個(gè)數(shù)據(jù)副本存儲以及讀寫分離技術(shù),不僅可以加強(qiáng)數(shù)據(jù)的安全性,還能進(jìn)一步提升數(shù)據(jù)庫的讀寫性能。
對此,創(chuàng)新互聯(lián)的數(shù)據(jù)庫產(chǎn)品團(tuán)隊(duì)從MySQL數(shù)據(jù)庫主從復(fù)制原理及高可用原理兩方面著手,通過配置實(shí)踐進(jìn)行詳細(xì)的講解。
第一步:master記錄二進(jìn)制日志。在每個(gè)事務(wù)更新數(shù)據(jù)完成之前,master在二進(jìn)制日志記錄這些改變。MySQL將事務(wù)串行的寫入二進(jìn)制日志,在事件寫入二進(jìn)制日志完成后,master通知存儲引擎提交事務(wù)。此后可接收slave的請求。
第三步:SQL slave thread(SQL從線程)處理該過程的最后一步。SQL線程從中繼日志讀取事件,并重放其中的事件而更新slave的數(shù)據(jù),使其與master中的數(shù)據(jù)一致。只要該線程與I/O線程保持一致,中繼日志通常會位于OS的緩存中,所以中繼日志的開銷很小。
MHA Node運(yùn)行在每臺MySQL服務(wù)器上,MHA Manager會定時(shí)探測集群中的master節(jié)點(diǎn),當(dāng)master出現(xiàn)故障時(shí),它可以自動將最新數(shù)據(jù)的slave提升為新的master,然后將所有其他的slave重新指向新的master。整個(gè)故障轉(zhuǎn)移過程對應(yīng)用程序完全透明。
1. 角色分配
node1: MySQL master
node2: MySQL slave
node3: MySQL slave
node4: MHA Manager
二、初始主節(jié)點(diǎn)master配置
三、所有slave節(jié)點(diǎn)依賴的配置
四、確保主從復(fù)制運(yùn)行無誤
五、安裝配置MHA
1. 在所有MYSQL節(jié)點(diǎn)授權(quán)擁有管理權(quán)限的用戶可在本地網(wǎng)絡(luò)中有其他節(jié)點(diǎn)上遠(yuǎn)程訪問。 當(dāng)然, 此時(shí)僅需要且只能在master節(jié)點(diǎn)運(yùn)行類似如下SQL語句即可。
2. 準(zhǔn)備基于SSH互信通信環(huán)境
MHA集群中的各節(jié)點(diǎn)彼此之間均需要基于ssh互信通信, 以實(shí)現(xiàn)遠(yuǎn)程控制及數(shù)據(jù)管理功能??稍贛anager節(jié)點(diǎn)生成密鑰對兒, 并設(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)自動同步.
6. 檢測各節(jié)點(diǎn)間ssh互信通信配置是否Ok
Node4操作:
[root@node4 ~]# masterha_check_ssh -conf=/etc/mha_master/app1.cnf
輸出信息最后一行類似如下信息, 表示其通過檢測。
[info]All SSH connection tests passed successfully.
檢查管理的MySQL復(fù)制集群的連接配置參數(shù)是否OK:
[root@node4 ~]# masterha_check_repl -conf=/etc/mha_master/app1.cnf
7. 啟動MHA
[root@node4.jingan ~]#nohup masterha_manager -conf=/etc/mha_master/app1.cnf &> /etc/mha_master/manager.log &
# 啟動成功后,可用過如下命令來查看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
六、測試MHA測試故障轉(zhuǎn)移
2. 在manager節(jié)點(diǎn)查看日志:
/data/masterha/app1/manager.log日志文件中出現(xiàn)如下信息,表示manager檢測到10.220.1.2節(jié)點(diǎn)故障, 而后自動執(zhí)行故障轉(zhuǎn)移, 將10.220.1.3提升為主節(jié)點(diǎn)。 注意, 故障轉(zhuǎn)移完成后, manager將會自動停止, 此時(shí)使用masterha_check_status命令檢測將會遇到錯(cuò)誤提示, 如下所示:
3. 提供新的從節(jié)點(diǎn)以修復(fù)復(fù)制集群
原有 master 節(jié)點(diǎn)故障后, 需要重新準(zhǔn)備好一個(gè)新的 MySQL 節(jié)點(diǎn)。 基于來自于master 節(jié)點(diǎn)的備份恢復(fù)數(shù)據(jù)后, 將其配置為新的 master 的從節(jié)點(diǎn)即可。 注意,新加入的節(jié)點(diǎn)如果為新 增節(jié)點(diǎn), 其 IP 地址要配置為原來 master 節(jié)點(diǎn)的 IP, 否則, 還需要修改 app1.cnf 中相應(yīng)的 ip 地址。 隨后再次啟動 manager, 并再次檢測其狀態(tài)。
通過以上配置操作,可以有效保證MySQL主從復(fù)制及其高可用性,從而實(shí)現(xiàn)主庫宕機(jī)后自動切換到從庫。
文章標(biāo)題:【干貨】高性能mysql實(shí)踐分享
文章路徑:http://www.rwnh.cn/news45/105495.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、App開發(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)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)