MySQL高可用集群的介紹以及用法,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
成都創(chuàng)新互聯(lián)公司技術(shù)團(tuán)隊(duì)10年來(lái)致力于為客戶提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、成都品牌網(wǎng)站建設(shè)、成都全網(wǎng)營(yíng)銷、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了上千家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。1.1 關(guān)于mysql-mmm
MySQL主主復(fù)制管理器
MySQL主主復(fù)制配置的監(jiān)控,故障轉(zhuǎn)移和管理的一套腳本套件;
能對(duì)居于標(biāo)準(zhǔn)的主從配置的任意數(shù)量的從服務(wù)器進(jìn)行讀負(fù)載均衡和實(shí)現(xiàn)數(shù)據(jù)備份;
通過MMM方案能實(shí)現(xiàn)服務(wù)器的故障轉(zhuǎn)移,從而實(shí)現(xiàn)mysql的高可用。
1.2 高可用集群介紹:
主備模式 當(dāng)主不能提供服務(wù)的時(shí)候備用主機(jī)接替它提供服務(wù),這個(gè)過程對(duì)于客戶端是透明的。
1.3 案例 前提環(huán)境:主從從結(jié)構(gòu)
5臺(tái)服務(wù)器,2臺(tái)數(shù)據(jù)服務(wù)器臺(tái)互為主主,另2臺(tái)數(shù)據(jù)服務(wù)器為主中的一臺(tái)的從,1臺(tái)監(jiān)控服務(wù)器。
master51:192.168.4.51
master52:192.168.4.52
slave53:192.168.4.53
slave54:192.168.4.54
write-vip:192.168.4.100
read-vip:192.168.4.101/102
1.4 主主模式配置
(1)用戶授權(quán)
在master51上配置
mysql> grant replication slave on *.* to 用戶名@192.168.4.52 identified by "密碼";
同樣的操作在master52上給192.168.4.51授權(quán)
(2)啟用binlog日志
master51和master52除了server_id不一致其它保持一致
vim /etc/my.cnf
server_id=51
log-bin
binlog-format="mixed"
(3)重啟數(shù)據(jù)庫(kù)服務(wù)器
systemctl restart mysqld
(4)查看正在使用binlog日志文件。
mysql> show master status;
從服務(wù)器配置
master51為主數(shù)據(jù)庫(kù),master52為從數(shù)據(jù)庫(kù)時(shí):
(1)在52上測(cè)試主庫(kù)授權(quán)的用戶是否有效
#mysql -h292.168.4.51 -u用戶名 -p密碼
mysql> show grants;
(2)在52本機(jī)數(shù)據(jù)管理員登錄主庫(kù)信息
mysql> change master to
-> master_host="192.168.4.51",
-> master_user="用戶名",
-> master_password="密碼",
-> master_log_file=“主的文件名", #show master status可以看到
-> master_log_pos=數(shù)字; #查看主的Position(偏移位置)
(5)開啟從服務(wù)
mysql> start slave;
mysql> show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
必須保證Slave_IO,Slave_SQL的狀態(tài)為yes。
(6) master52為主數(shù)據(jù)庫(kù),master51為從數(shù)據(jù)庫(kù)時(shí),在master51上操作同上。
2.1 服務(wù)器角色
管理節(jié)點(diǎn):mmm-monitor(服務(wù)進(jìn)程) (55服務(wù)器)
#負(fù)責(zé)所有的監(jiān)控工作的監(jiān)控守護(hù)進(jìn)程,決定故障節(jié)點(diǎn)的移除或恢復(fù);
數(shù)據(jù)庫(kù)節(jié)點(diǎn):mmm-agent(服務(wù)進(jìn)程) (即51---54的服務(wù)器)
#運(yùn)行在Mysql服務(wù)器上的代理守護(hù)進(jìn)程,提供簡(jiǎn)單遠(yuǎn)程服務(wù)集,提供給監(jiān)控節(jié)點(diǎn);
2.2 核心軟件包及作用
Net-ARP:分配虛擬Ip地址
mysql-mmm 構(gòu)架的核心進(jìn)程
2.3 配置
(1)tar -xf mysql-mmm-2.2.1.tar.gz(所有主機(jī)上安裝)
查看說明文件,執(zhí)行make install
配置文件路徑:/etc/mysql-mmm
(2)修改數(shù)據(jù)節(jié)點(diǎn)主機(jī)mmm_agentd服務(wù)的配置文件
vim /etc/mysql-mmm/mmm_agent.conf #指定服務(wù)器在集群中的名稱,不能重復(fù)
this 主機(jī)名 #配置聲明自己的主機(jī)名
(3)修改管理節(jié)點(diǎn)主機(jī)mmm_monitor服務(wù)的配置文件
vim /etc/mysql-mmm/mmm_mon.conf
include mmm_common.conf #加載公共配置文件
ip 192.168.4.55 #管理節(jié)點(diǎn)主機(jī)(即監(jiān)控主機(jī)的IP地址)
pid_path /var/run/mmm_mond.pid
bin_path /usr/lib/mysql-mmm/
status_path /var/lib/misc/mmm_mond.status
ping_ips 192.168.4.51, 192.168.4.52, 192.168.4.53, 192.168.4.54 #設(shè)置被監(jiān)控的數(shù)據(jù)庫(kù)
monitor_user monitor #監(jiān)控?cái)?shù)據(jù)庫(kù)的mysql用戶
monitor_password 123456
debug 0 #啟動(dòng)服務(wù)不顯示啟動(dòng)信息(1顯示)
(4)修改公共配置文件
vim /etc/mysql-mmm/mmm_common.conf #修改之后發(fā)送給其它服務(wù)器
active_master_role writer
cluster_interface eth0
pid_path /var/run/mmm_agentd.pid
bin_path /usr/lib/mysql-mmm/
replication_user ser51
#設(shè)置主從同步的用戶,要和主數(shù)據(jù)庫(kù)給本機(jī)授權(quán)的用戶一致,
#可在/var/lib/mysql/master.info 中查看
replication_password 123456
agent_user agent #mmm_agent控制用戶
agent_password 123456
ip 192.168.4.51 #主服務(wù)器IP
mode master
peer master52 #指定另一臺(tái)主服務(wù)器
ip 192.168.4.52
mode master
peer master51
ip 192.168.4.53
mode slave
ip 192.168.4.54
mode slave
hosts master51, master52 #寫的主服務(wù)器
ips 192.168.4.100 #設(shè)置VIP地址
mode exclusive #獨(dú)占模式,只允許51/52一個(gè)使用
hosts slave53, slave54
ips 192.168.4.101, 192.168.4.102 #reader-vip
mode balanced #均衡模式
(5)根據(jù)配置文件設(shè)置,在數(shù)據(jù)節(jié)點(diǎn)主機(jī)添加對(duì)應(yīng)的授權(quán)用戶
管理節(jié)點(diǎn)監(jiān)控?cái)?shù)據(jù)庫(kù)用戶授權(quán)
mysql> grant replication client on *.* to monitor@'%' identified by "123456";
數(shù)據(jù)庫(kù)節(jié)點(diǎn)控制數(shù)據(jù)庫(kù)用戶授權(quán)
mysql> grant replication client,process,super on *.* to agent@'%' identified by "123456";
2.4 安裝依賴關(guān)系
所有服務(wù)器上安裝:
書寫一個(gè)腳本:
vim install.sh
#!/bin/bash
yum -y install perl-*
rpm -q gcc gcc-c++
if [ $? -ne 0 ];then
yum -y install gcc gcc-c++
fi
tar -xf Algorithm-Diff-1.1902.tar.gz
cd Algorithm-Diff-1.1902
perl Makefile.PL
make
make install
cd ..
rpm -ivh perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm
tar -zxf Proc-Daemon-0.03.tar.gz
cd Proc-Daemon-0.03
perl Makefile.PL
make
make install
cd ..
gunzip Net-ARP-1.0.8.tgz
tar -xf Net-ARP-1.0.8.tar
cd Net-ARP-1.0.8/
perl Makefile.PL
make
make install
2.5啟動(dòng)服務(wù)
(1)啟動(dòng)數(shù)據(jù)節(jié)點(diǎn)主機(jī)mmm_agentd服務(wù)
[root@ser51 ~]# /etc/init.d/mysql-mmm-agent start (stop,status)
[root@ser55 ~]# netstat -anptu |grep 9989
(2)啟動(dòng)管理節(jié)點(diǎn)主機(jī)mmm_monitor服務(wù)
[root@ser55 ~]# /etc/init.d/mysql-mmm-monitor start
[root@ser55 ~]# netstat -anptu |grep 9988
(3)在管理節(jié)點(diǎn)主機(jī)上,查看監(jiān)控信息
[root@ser55 ~]# mmm_control show
defined(@array) is deprecated at /usr/share/perl5/vendor_perl/Log/Log4perl/Config.pm line 863.
(Maybe you should just omit the defined()?)
master51(192.168.4.51) master/AWAITING_RECOVERY. Roles
master52(192.168.4.52) master/AWAITING_RECOVERY. Roles
slave53(192.168.4.54) slave/AWAITING_RECOVERY. Roles
slave54(192.168.4.53) slave/AWAITING_RECOVERY. Roles
[root@ser55 ~]# mmm_control set_online master51(agent配置文件里設(shè)置的名稱;set_offine:不在線狀態(tài))
defined(@array) is deprecated at /usr/share/perl5/vendor_perl/Log/Log4perl/Config.pm line 863.
(Maybe you should just omit the defined()?)
master51(192.168.4.51) master/ONLINE. Roles: writer(192.168.4.100)
master52(192.168.4.52) master/ONLINE. Roles:
slave53(192.168.4.54) slave/ONLINE. Roles: reader(192.168.4.102)
slave54(192.168.4.53) slave/ONLINE. Roles: reader(192.168.4.101)
此時(shí)ping 192.168.4.100/101/102 都可以ping通(保證該網(wǎng)段這幾個(gè)ip沒有被占用)
(4)數(shù)據(jù)節(jié)點(diǎn)主機(jī)查看 VIP 地址?
ip addr show | grep 192.168.4.
2.6 測(cè)試
mysql> grant all on *.* to 用戶名@'%' identified by "123456"; #授權(quán)客戶端連接數(shù)據(jù)庫(kù)用戶
mysql -h292.168.4.100 -u用戶名 -p123456
無(wú)論關(guān)掉master51的還是master52的數(shù)據(jù)庫(kù)服務(wù),此時(shí)VIP會(huì)被其中一個(gè)占用,用戶連接同樣的VIP一樣能夠連接數(shù)據(jù)庫(kù),且在數(shù)據(jù)庫(kù)進(jìn)行操作后,掛掉主的數(shù)據(jù)庫(kù)服務(wù)器重啟啟用后,數(shù)據(jù)會(huì)自動(dòng)同步。此時(shí)VIP不會(huì)被搶占。
停掉agent服務(wù),當(dāng)其中一個(gè)主數(shù)據(jù)庫(kù)停掉,監(jiān)控不能夠自動(dòng)切換VIP。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。