MHA簡介:即Master High Availability Manager and Tools for MySQL,是日本的一位MySQL專家采用Perl語言編寫的一個腳本管理工具,
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名申請、網(wǎng)絡空間、營銷軟件、網(wǎng)站建設、賽罕網(wǎng)站維護、網(wǎng)站推廣。
該工具僅適用于MySQL Replication(二層)環(huán)境,目的在于維持Master主庫的高可用性。
在 MySQL 故障切換過程中,MHA 能做到 0~30 秒之內(nèi)自動完成數(shù)據(jù)庫的故障
切換操作,并且在進行故障切換的過程中,MHA 能最大程度上保證數(shù)據(jù)庫的一致性,以達到
真正意義上的高可用。
MHA 由兩部分組成:MHA Manager(管理節(jié)點)和 MHA Node(數(shù)據(jù)節(jié)點)。MHA Manager
可以獨立部署在一臺獨立的機器上管理多個Master-Slave集群,也可以部署在一臺Slave上。
當 Master 出現(xiàn)故障是,它可以自動將最新數(shù)據(jù)的 Slave 提升為新的 Master,然后將所有其他
的 Slave 重新指向新的 Master。整個故障轉(zhuǎn)移過程對應用程序是完全透明的。
[root@lvs-a ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm (6.5系統(tǒng))
[root@lvs-a ~]# #rpm -ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm (5.8)
[root@lvs-a ~]# ls /etc/yum.repos.d/
base.repo epel.repo epel-testing.repo rhel-debuginfo.repo
[root@lvs-a ~]# yum -y install perl-DBD-MySQL ncftp
[root@lvs-a tarbag]# tar -zxf mha4mysql-node-0.56..tar.gz -C /usr/local ## node軟件解壓
[root@lvs-a tarbag]# cd /usr/local/mha4mysql-node-0.56
[root@lvs-a tarbag]# perl Makefile.PL
[root@lvs-a tarbag]# make && make install ## node安裝
[root@lvs-a tarbag]# yum -y install perl-Config-Tiny perl-Params-Validate perl-Log-Dispatch perl-Parallel-ForkManager
[root@lvs-a tarbag]# tar -zxf mha4mysql-manager-0.56.tar.gz -C /usr/local/
[root@lvs-a tarbag]# cd /usr/local/mha4mysql-manager-0.56 ##manager軟件安裝
[root@lvs-a mha4mysql-manager-0.56]# perl Makefile.PL
[root@lvs-a mha4mysql-manager-0.56]# make && make install
二:9.25主節(jié)點部署,只安裝node即可
[root@master1~]#rpm-ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
[root@master1 ~]# ls /etc/yum.repos.d/
base.repo epel.repo epel-testing.repo rhel-debuginfo.repo
[root@master1 ~]# yum -y install perl-DBD-MySQL ncftp
[root@master1 tarbag]# tar -zxf mha4mysql-node-0.56..tar.gz -C /usr/local
[root@master1 tarbag]# cd /usr/local/mha4mysql-node-0.56
[root@master1 mha4mysql-node-0.56]# perl Makefile.PL
[root@master1 mha4mysql-node-0.56]# make && make install
[root@master1 mha4mysql-node-0.56]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
安裝mysql軟件 具體過程略過,參考: MySQL 主從同步復制架構搭建 文檔
創(chuàng)建mha管理賬號
Mysql> grant all on *.* to 'admin'@'%' identified by '123456';
Mysql> flush privileges;
創(chuàng)建mysql主從管理賬號
Mysql> grant replication slave on *.* to 'repl'@'%' identified by '123456';
Mysql> flush privileges;
三、9.26主備節(jié)點部署(步驟同主庫一樣)
[root@master2~]#rpm-ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
[root@master2 ~]# ls /etc/yum.repos.d/
base.repo epel.repo epel-testing.repo rhel-debuginfo.repo
[root@master2 ~]# yum -y install perl-DBD-MySQL ncftp
[root@master2 tarbag]# tar -zxf mha4mysql-node-0.56..tar.gz -C /usr/local
[root@master2 tarbag]# cd /usr/local/mha4mysql-node-0.56
[root@master2 mha4mysql-node-0.56]# perl Makefile.PL
[root@master2 mha4mysql-node-0.56]# make && make install
[root@master2 mha4mysql-node-0.56]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
創(chuàng)建mha管理賬號 其實可以不建立的,因為開始之前你要做讓master1去恢復別的mysql,只要master1上有即可。
Mysql> grant all on *.* to 'admin'@'%' identified by '123456';
Mysql> flush privileges;
創(chuàng)建mysql主從管理賬號
Mysql> grant replication slave on *.* to 'repl'@'%' identified by '123456';
Mysql> flush privileges;
四:9.29 從節(jié)點部署
[root@slave1~]#rpm-ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
[root@slave1 ~]# ls /etc/yum.repos.d/
base.repo epel.repo epel-testing.repo rhel-debuginfo.repo
[root@slave1 ~]# yum -y install perl-DBD-MySQL ncftp
[root@slave1 tarbag]# tar -zxf mha4mysql-node-0.56..tar.gz -C /usr/local
[root@slave1 tarbag]# cd /usr/local/mha4mysql-node-0.56
[root@slave1 mha4mysql-node-0.56]# perl Makefile.PL
[root@slave1 mha4mysql-node-0.56]# make && make install
[root@slave1 mha4mysql-node-0.56]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
創(chuàng)建mha管理賬號
Mysql> grant all on *.* to 'admin'@'%' identified by '123456';
Mysql> flush privileges;
[root@lvs-a ~]# mkdir -p /etc/masterha
[root@lvs-a ~]# mkdir -p /masterha/app1
[root@lvs-a mha4mysql-manager-0.56]# cp samples/conf/* /etc/masterha/
[root@lvs-a ~]# cat /etc/masterha/app1.cnf
[server default]
manager_workdir=/masterha/app1
manager_log=/masterha/app1/manager.log
user=admin
password=123456
ssh_user=root
repl_user=repl
repl_password=123456
ping_interval=1 #每秒ping一次
shutdown_script=""
master_ip_failover_script="/usr/local/bin/master_ip_failover" ?。#_@個腳本接下來會創(chuàng)建
master_ip_online_change_script=""
report_script=""
[server1]
hostname=192.168.9.26
master_binlog_dir=/mysql/data/log
candidate_master=1 ##主庫要有這個參數(shù)
[server2]
hostname=192.168.9.25
master_binlog_dir=/mysql/data/log
candidate_master=1
[server3]
hostname=192.168.9.29
master_binlog_dir=/data/log
[server4]
hostname=192.168.9.30
master_binlog_dir=/data/log/ #對應路徑
[root@lvs-a ~]# ssh-keygen -t rsa
[root@lvs-a ~]#ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.9.25
[root@lvs-a ~]#ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.9.26
[root@lvs-a ~]#ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.9.29
[root@lvs-a ~]#ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.9.30
八:檢查mha配置是否正確。1.檢查ssh是否配置成功
[root@lvs-a ~]#masterha_check_ssh --conf=/etc/masterha/app1.cnf
最后顯示如下字段說明成功:
Tue Jun 30 01:58:05 2015 - [info] All SSH connection tests passed successfully.
2.檢查mysql主從復制狀態(tài)是否成功
[root@lvs-a ~]#masterha_check_repl --conf=/etc/masterha/app1.cnf
最后出現(xiàn)MySQL Replication Health is OK.字段說明成功。
3. 啟動管理節(jié)點進程
[root@lvs-a ~]# nohup masterha_manager --conf=/etc/masterha/app1.cnf > /tmp/mha_manager.log < /dev/null 2>&1 &
[1] 10085
4. 檢查mha主從狀態(tài)
[root@lvs-a ~]# masterha_check_status --conf=/etc/masterha/app1.cnf
顯示如下
app1 (pid:10085) is running(0:PING_OK), master:192.168.153.147
5. 停止mha
[root@lvs-a ~]# masterha_stop --conf=/etc/masterha/app1.cnf
九:安裝lvs+keepalived的具體過程參考,文檔 LVS+keepalived的安裝部署 http://blog.itpub.net/29654823/viewspace-1844282/
十:驗證環(huán)境的正確性:
關閉現(xiàn)在的主(9.25),vip9.232 會自動飄向主備(9.26),從而實現(xiàn)了主的高可用,這時候,manger(9.27)進程也就死了,需要手動起來。
分享文章:mysqlMHA高可用架構部署
文章分享:http://jinyejixie.com/article0/peoeio.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站改版、企業(yè)網(wǎng)站制作、營銷型網(wǎng)站建設、域名注冊、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)