手记

mysql 高可用集群

部署mysql高可用集群(MHA软件+主从同步)


集群时使用多台服务器提供的相同服务51-55

高可用集群 主备模式: 当主角色的主机宕机后,备用主机自动接替主角色的主机提供服务服务给客户端。


cilent mysql -h192.168.4.52  -uadmin -p123456


MHA


host56 监控服务


vip地址:192.168.4.100


主 备用主 备用主

mysql51 mysql2 mysql53 mysql54 mysql55

slave slave slave slave


第一步:准备MHA运行环境

一主多从

安装依赖的软件包

ssh root用户无密码登陆


第二步:配置MHA


2.1配置数据主机(一主到从 安装依赖的软件包 彼此之间可以ssh root 无密码登陆) 192.168.4.100


 2.1.1 一主多从


 2.1.2 安装依赖的perl软件包


 2.1.3安装软件mha-node


[root@host51~]# cd  数据库软件包/mha-soft-student/ 

[root@host51 mha-soft-student]# yum -y install perl-DBD-mysql

[root@host51 mha-soft-student]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm


 2.1.4 配此之间可以ssh root用户无密码登陆


 2.1.5 授权监控用户

 

mysql> grant all on *.* to root@"%" identified by "123456";

mysql> grant replication slave on *.* to repluser@"%" identified by "123456";

 2.1.6 所有数据库服务器启不删除本机的中继日志文件

mysql> set global relay_log_purge=off;// 不自动删除本机的中继日志文件

2.2 配置管理主机 192.168.4.56

 2.2.1 安装依赖的perl软件包


 2.2.2 安装软件mha-node


[root@host56~]# cd  /root/桌面/数据库软件包/mha-soft-student/ 

[root@host56 mha-soft-student]# yum -y install perl-DBD-mysql

[root@host56 mha-soft-student]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

源码安装mha4mysql-manager


[root@host56 mha-soft-student]# yum -y install perl-ExtUtils-* perl-CPAN-*

[root@host56 mha-soft-student]#tar -zxf mha4mysql-manager-0.56.tar.gz

[root@host56 mha-soft-student]#cd mha4mysql-manager-0.56

[root@host56 mha4mysql-manager-0.56]# perl Makefile.pl

[root@host56 mha4mysql-manager-0.56]# make

[root@host56 mha4mysql-manager-0.56]# make install

 

2.2.3 指定命令所在的路径


 [root@host56 ~]# cd /root/桌面/数据库软件包/mha-soft-student/mha4mysql-manager-0.56

 [root@host56 mha4mysql-manager-0.56]#  mkdir /root/bin

 [root@host56 mha4mysql-manager-0.56]# cp bin/* /root/bin

 [root@host56 mha4mysql-manager-0.56]# ls /root/bin

 2.2.4 修改配置文件

 [root@host56 ~]# mkdir /etc/mha_manager/

 [root@host56 ~]# cd /root/桌面/数据库软件包/mha-soft-student/mha4mysql-manager-0.56/samples/conf

 [root@host56 mha4mysql-manager-0.56]# cp app1.cnf   /etc/mha_manager/app1.cnf

 [root@host56 mha4mysql-manager-0.56]# cd ~

 [root@host56 ~]# vim /etc/mha_mannger/app1.cnf 

 [server default]

manager_workdir=/etc/mha_manager

manager_log=/etc/mha_manager/manager.log

master_ip_failover_script=/etc/mha_manager/master_ip_failover


ssh_user=root

ssh_port=22


repl_user=repluser

repl_password=123456


user=root

password=123456


[server1]

hostname=192.168.4.51

candidate_master=1


[server2]

hostname=192.168.4.52

candidate_master=1


[server3]

hostname=192.168.4.53

candidate_master=1


[server4]

hostname=192.168.4.54

no_master=1


[server5]

hostname=192.168.4.55

no_master=1

:wq

[root@host56 ~]# cd mha4mysql-manager-0.56/samples/scripts    #//

[root@host56 ~]# cp master_ip_failover  /etc/mha_manager/ #//master_ip_failover 文件需要perl编译


[root@host56 ~]# rm  -rf /etc/mha_manager/master_ip_failover

[root@host56 ~]# cp /root/桌面/数据库软件包/mha-soft-studentmaster_ip_failover /etc/mha_manager/   #//master_ip_failover正常文件需要perl编译,上课前已经被老师已经编译ok,只需进去修改vip地址

[root@host56 ~]# chmod +x /etc/mha_manager/master_ip_failover

[root@host56 ~]# vim /etc/mha_manager/master_ip_failover

my $vip = '192.168.4.100/24';  # Virtual IP 

my $key = "1";

my $ssh_start_vip = "/sbin/ifconfig eth0:$key $vip";

my $ssh_stop_vip = "/sbin/ifconfig eth0:$key down";


测试配置文件


[root@host56 ~]# vim  /etc/mha_manager/app1.cnf 

[server default]

 #master_ip_failover_script=/etc/mha_manager/master_ip_failover

[root@host56 ~]# masterha_check_ssh --conf=/etc/mha_manager/app1.cnf    #//测试ssh root用户22号是否可通过


[root@host56 ~]# masterha_check_repl --conf=/etc/mha_manager/app1.cnf    #//测试 数据库sql repl用户是否可以连接

   MySQL Replication Health is OK.


3、启动服务:

3.1 把vip 地址手动绑定在主库上


[root@host51 ~]# ifconfig eth0:1 192.168.4.100/24

[root@host51 ~]# ifconfig eth0:1 

3.2 启动服务

[root@host56 ~]# vim  /etc/mha_manager/app1.cnf 

[server default]

master_ip_failover_script=/etc/mha_manager/master_ip_failover

[root@host56 ~]# masterha_manager    --conf=/etc/mha_manager/app1.cnf --remove_dead_master_conf  --ignore_last_failover  #//说明remove_dead_master_conf是说主库down后删除app1.cnf中的配置文件对应的信息  ,ignore_last_failover是指在8个小时内不能down多次

[root@host56 ~]#masterha_check_status --conf=/etc/mha_manager/app1.cnf   #//查看mha运行状态

4、测试高可用集群配置

在数据库服务上添加访问数据连接用户 webuser  123456

[root@root9pc01 ~]# mysql -h192.68.4.51 -uroot -p123456

MySQL > create database db13;

mysql> grant all on  db13.* to webuser@"%" identified by "123456";


4.1 客户端连接VIP地址访问数据库

]# mysql -h192.168.4.100 -uwebuser -p123456



4.2 测试高用集群


把主机51上的数据库服务停止 

]# systemctl stop mysqld


把宕机的数据库服务器51 在添加到当前集群里

]# mysql -h192.68.4.51 -uroot -p123456

mysql> change master to master_host="192.168.4.52", master_user="repluser",master_password="123456",master_log_file="master52.000001",master_log_pos=154;


mysql> start slave;


56:

]# vim /etc/mha_manager/app1.cnf

[server1]

candidate_master=1

hostname=192.168.4.51


:wq


]# masterha_check_repl --conf=/etc/mha_manager/app1.cnf

MySQL Replication Health is OK.



]#masterha_manager --conf=/etc/mha_manager/app1.cnf --remove_dead_master_conf  --


ignore_last_failover


0人推荐
随时随地看视频
慕课网APP