標籤:path default ant net 用戶端串連 mis mysql-mmm add clust
1 MMM概述
1.1 關於mysql-mmm
MySQL主主複製管理器
MySQL主主複製配置的監控,容錯移轉和管理的一套指令碼套件;
能對居於標準的主從配置的任意數量的從伺服器進行讀負載平衡和實現資料備份;
通過MMM方案能實現伺服器的容錯移轉,從而實現mysql的高可用。
1.2 高可用叢集介紹:
主備模式 當主不能提供服務的時候備用主機接替它提供服務,這個過程對於用戶端是透明的。
1.3 前提環境:主從從結構
4台資料庫伺服器,2台互為主主,另2台為主中的一台的從。
2 Mysql-MMM構架
2.1 伺服器角色
管理節點:mmm-monitor(服務進程)
#負責所有的監控工作的監控守護進程,決定故障節點的移除或恢複;
資料庫節點:mmm-agent(服務進程)
#運行在Mysql伺服器上的代理守護進程,提供簡單遠程服務集,提供給監控節點;
2.2 核心軟體包及作用
Net-ARP:分配虛擬Ip地址
mysql-mmm 構架的核心進程
2.3 配置
(1)tar -xf mysql-mmm-2.2.1.tar.gz(所有主機上安裝)
查看說明檔案,執行make install
設定檔路徑:/etc/mysql-mmm
(2)修改資料節點主機mmm_agentd服務的設定檔
vim /etc/mysql-mmm/mmm_agent.conf #指定伺服器在叢集中的名稱,不能重複
this 主機名稱 #配置聲明自己的主機名稱
(3)修改管理節點主機mmm_monitor服務的設定檔
vim /etc/mysql-mmm/mmm_mon.conf
include mmm_common.conf #載入公用設定檔
<monitor>
ip 192.168.4.55 #管理節點主機(即監控主機的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
#設定被監控的資料庫
</monitor>
<host default>
monitor_user monitor #監控資料庫的mysql使用者
monitor_password 123456
</host>
debug 0 #啟動服務不顯示啟動資訊(1顯示)
(4)修改公用設定檔
active_master_role writer
<host default>
cluster_interface eth0
pid_path /var/run/mmm_agentd.pid
bin_path /usr/lib/mysql-mmm/
replication_user ser51
#設定主從同步的使用者,要和主要資料庫給本機授權的使用者一致,
#可在/var/lib/mysql/master.info 中查看
replication_password 123456
agent_user agent #mmm_agent控制使用者
agent_password 123456
</host>
<host master51> #設定第一個主伺服器
ip 192.168.4.51 #主伺服器IP
mode master
peer master52 #指定另一台主伺服器
</host>
<host master5> #設定第二個主伺服器
ip 192.168.4.52
mode master
peer master51
</host>
<host slave53>
ip 192.168.4.53
mode slave
</host>
<host slave54> #設定第一個從伺服器
ip 192.168.4.54
mode slave
</host>
<role writer> #設定寫伺服器工作模式
hosts master51, imaster52 #寫的主伺服器
ips 192.168.4.100 #設定VIP地址
mode exclusive #只允許一個使用
</role>
<role reader>
hosts slave53, slave54
ips 192.168.4.101, 192.168.4.102
mode balanced #均衡模式
</role>
(5)根據設定檔設定,在資料節點主機添加對應的授權使用者
管理節點監控資料庫使用者授權
mysql> grant replication client on *.* to [email protected]'%' identified by "123456";
資料庫節點控制資料庫使用者授權
mysql> grant replication client,process,super on *.* to [email protected]'%'
identified by "123456";
2.4 安裝依賴關係
yum -y install perl.*
yum -y install gcc gcc-c++
tar -xf Algorithm-Diff-1.1902.tar.gz
cd Algorithm-Diff-1.1902
perl Makefile.PL
make
make install
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
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啟動服務
(1)啟動資料節點主機mmm_agentd服務
[[email protected] ~]# /etc/init.d/mysql-mmm-agent start (stop,status)
[[email protected] ~]# netstat -anptu |grep 9989
(2)啟動管理節點主機mmm_monitor服務
[[email protected] ~]# /etc/init.d/mysql-mmm-monitor start
[[email protected] ~]# netstat -anptu |grep 9988
(3)在管理節點主機上,查看監控資訊
[[email protected] ~]# mmm_control show
[[email protected] ~]# mmm_control set_online master51(agent設定檔裡設定的名稱;set_offine:不線上狀態)
(1)資料節點主機查看 VIP 位址?
ip addr show | grep 192.168.4.
2.6 測試
mysql> grant all on *.* to 使用者名稱@'%' identified by "123456";
#授權用戶端串連資料庫使用者
mysql -h192.168.4.100 -u使用者名稱 -p123456
無論關掉master51的還是master52的資料庫服務,此時VIP會被其中一個佔用,使用者串連同樣的VIP一樣能夠串連資料庫,且在資料庫進行操作後,掛掉主的資料庫伺服器重啟啟用後,資料會自動同步。此時VIP不會被搶佔。
停掉agent服務,當其中一個主要資料庫停掉,監控不能夠自動切換VIP。
MySQL高可用叢集