mmm高可用集羣介紹:
mysql
高可用集羣介紹:主備模式,當主不能提供服務的時候備用主機接替它提供服務。linux
這個過程對於客戶端是透明的。c++
1、前期準備工做
sql
一、準備五臺linux服務器:主(192.168.4.122),主備(192.168.4.123)數據庫
從(192.168.4.126),從(192.168.4.127),管理主機(192.168.4.128)服務器
四臺主機作主從的用戶名:tongbu,密碼:123456ide
二、主和主備作成相互的主從模式,兩臺從服務器作成主備的從工具
三、IP規劃,write-vip=192.168.4.100,read-vip=192.168.4.101/192.168.4.102測試
2、安裝配置 Mysql-mmmthis
一、安裝:首先安裝依賴包:yum -y install perl-*
cd mysql-mmm-2.2.1/
make install //進入解壓後的目錄,而後直接安裝
二、配置文件說明:cd /etc/mysql-mmm
mmm_agent.conf //數據節點主機文件(四臺mysql服務器)
mmm_common.conf //公共配置文件 (五臺主機都須要)
mmm_mon.conf //管理主機文件(192.168.4.128)
mmm_tools.conf //管理工具
三、修改數據節點的配置文件:mmm_agent.conf(四臺mysql服務器修改)
include mmm_common.conf //加載文件
this db1 //定義在集羣中的名稱
名稱規劃:根據角色和ip地址來命名
master122,master123,slave126,slave127
四、修改管理節點的配置(192.168.4.128)mmm_mon.conf
1 include mmm_common.conf
2
3 <monitor>
4 ip 192.168.4.128 //監控本機的IP地址
5 pid_path /var/run/mmm_mond.pid
6 bin_path /usr/lib/mysql-mmm/
7 status_path /var/lib/misc/mmm_mond.status
8 ping_ips 192.168.4.122, 192.168.4.123, 192.168.4.126, 192.168.4.127 //被監控的IP地址
9 </monitor>
10
11 <host default>
12 monitor_user monitor //監控數據庫的用戶名,用來監測四臺數據庫服務是否正常
13 monitor_password 123456 //上面的用戶名需在122那臺主機上添加受權
14 </host>
五、修改公共配置文件:mmm_common.conf(五臺主機都須要)
在一臺主機上修改,而後傳送給其它四臺主機
active_master_role writer
<host default>
cluster_interface eth0
pid_path /var/run/mmm_agentd.pid
bin_path /usr/lib/mysql-mmm/
replication_user tongbu //本機用於主從同步的用戶
replication_password 123456
agent_user agent //代理程序去檢測的用戶名
agent_password 123456
</host>
<host master122>
ip 192.168.4.122
mode master //模式
peer master123 //身份對等的主機
</host>
<host master123>
ip 192.168.4.123
mode master
peer master122
</host>
<host slave126>
ip 192.168.4.126
mode slave
</host>
<host slave127>
ip 192.168.4.127
mode slave
</host>
<role writer>
hosts master122, master123
ips 192.168.4.100 //兩臺主備的虛擬IP
mode exclusive //獨佔模式
</role>
<role reader>
hosts slave126, slave127
ips 192.168.4.101, 192.168.4.102
mode balanced //均衡模式
</role>
六、在4.122主機上添加兩個受權賬號: monitor, agent
grant replication client on *.* to monitor@'%' identified by '123456';
grant replication client,process,super on *.* to agent@'%' identified by '123456';
3、啓動數據節點服務和管理節點主機上的mmm_monitor服務
一、在五臺主機上安裝啓動的依賴包:下面三個rpm包或者tar包
解決啓動agent服務的依賴包:
Algorithm-Diff-1.1902.tar.gz
perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm
Proc-Daemon-0.03.tar.gz
二、安裝上面的三個包
yum -y install gcc gcc-c++
cd mysql-mmm/
tar -zxf 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
三、安裝獲取VIP的軟件包:Net-ARP-1.0.8.tgz(在四臺mysql服務上安裝)
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
四、啓動agent服務:在五臺服務器上啓動
/etc/init.d/mysql-mmm-agent start //啓動服務
netstat -ntulp | grep 9989 //查看端口號,查看服務是否啓動
cat /var/log/mysql-mmm/mmm_agentd.log //啓動日誌
五、啓動管理節點主機上的mmm_monitor服務
/etc/init.d/mysql-mmm-monitor start //啓動
netstat -ntulp | grep 9988 //查看是否啓動
ls /var/log/mysql-mmm/mmm_mond.log //日誌文件
六、在管理主機上,查看監控信息:mmm_control show
master122(192.168.4.122) master/AWAITING_RECOVERY. Roles:
master123(192.168.4.123) master/AWAITING_RECOVERY. Roles:
slave126(192.168.4.126) slave/AWAITING_RECOVERY. Roles:
slave127(192.168.4.127) slave/AWAITING_RECOVERY. Roles:
七、設置在線: mmm_control set_online 四臺都須要設置
mmm_control set_online master122
mmm_control set_online master123
mmm_control set_online slave126
mmm_control set_online slave127
設置完成後查看:mmm_control show
master122(192.168.4.122) master/ONLINE. Roles: writer(192.168.4.100)
master123(192.168.4.123) master/ONLINE. Roles:
slave126(192.168.4.126) slave/ONLINE. Roles: reader(192.168.4.101)
slave127(192.168.4.127) slave/ONLINE. Roles: reader(192.168.4.102)
如何查看IP:
ip addr show | grep 192.168.4. //能夠看到獲取到了兩個ip地址
4、測試
一、在數據節點上添加訪問數據庫的鏈接用戶,只須要在4.122上建立一個受權賬號
grant all on *.* to admin@'%' identified by '123456';
二、客戶端測試:
mysql -h192.168.4.100 -uadmin -p123456
登錄上去後,增刪改查數據庫,而後在四臺mysql
服務器上驗證是否正確
三、手動把4.122這臺主mysql服務器停掉,
看在客戶端是否能訪問,增刪改查等。
四、4.122手動起來後,首先須要設置在線:mmm_control set_online master122
可是VIP對應的仍是4.123,不會自動切換過去,
必需要先把4.123:mmm_control set_offline master123,
這樣4.122纔會得到VIP