MHA集群搭建部署

附图一张

在这里插入图片描述

环境:

  • CentOS Linux release 7.5.1804 (Core)
    关闭防火墙和selinux
    4台服务器
服务器角色IP节点职责
manager192.168.153.179node1监控管理
master192.168.153.178node2主master
slave1192.168.153.177node3从slave
slave2192.168.153.176node4从slave
安装:
  • node1安装
[root@localhost ~]# yum -y install mariadb mariadb-server epel-release
[root@localhost ~]# yum -y install mha4mysql-node-0.56-0.el6.noarch.rpm mha4mysql-manager-0.56-0.el6.noarch.rpm 
  • node2安装
[root@localhost ~]# yum -y install mariadb mariadb-server epel-release
[root@localhost ~]# yum -y install mha4mysql-node-0.56-0.el6.noarch.rpm
  • node3安装
[root@localhost ~]# yum -y install mariadb mariadb-server epel-release
[root@localhost ~]# yum -y install mha4mysql-node-0.56-0.el6.noarch.rpm
  • node4安装
[root@localhost ~]# yum -y install mariadb mariadb-server epel-release
[root@localhost ~]# yum -y install mha4mysql-node-0.56-0.el6.noarch.rpm
修改主机名和hosts文件
  • node1
[root@localhost ~]# hostname node1 
  • node2
[root@localhost ~]# hostname node2
  • node3
[root@localhost ~]# hostname node3
  • node4
[root@localhost ~]# hostname node4

/etc/hosts 文件一模一样

192.168.153.179 node1
192.168.153.178 node2 
192.168.153.177 node3 
192.168.153.176 node4 

在这里插入图片描述

ssh 互通环境
  • node1
[root@node1 ~]# ssh-keygen -t rsa
[root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1

在这里插入图片描述
在这里插入图片描述

  • node2
[root@node2 ~]# ssh-keygen -t rsa
[root@node2 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1
  • node3
[root@node2 ~]# ssh-keygen -t rsa
[root@node2 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1
  • node4
[root@node2 ~]# ssh-keygen -t rsa
[root@node2 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1
  • node1
    在这里插入图片描述
    将此文件传输给另外三台
[root@node1 ~]# scp .ssh/authorized_keys root@node2:.ssh/
[root@node1 ~]# scp .ssh/authorized_keys root@node3:.ssh/
[root@node1 ~]# scp .ssh/authorized_keys root@node4:.ssh/

依次测试登录

[root@node1 ~]# ssh node2
Last login: Fri Nov 13 16:04:12 2020 from 192.168.153.179
[root@node2 ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.153.178  netmask 255.255.255.0  broadcast 192.168.153.255
        inet6 fe80::442e:d7a9:e81a:69e4  prefixlen 64  scopeid 0x20<link>
        inet6 fe80::2796:279a:9ced:cf95  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:98:41:36  txqueuelen 1000  (Ethernet)
        RX packets 24682  bytes 33881023 (32.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7180  bytes 567451 (554.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
初始主节点 master 的配置
  • node2
[root@node2 ~]# vim /etc/my.cnf
server-id = 1                
log-bin = master-log           
relay-log = relay-log           
skip_name_resolve 

在这里插入图片描述

[root@node2 ~]# systemctl start mariadb
所有 slave 节点依赖的配置
  • node3 4
    node3 和 node4 配置文件唯一不同就是server-id
[root@node3 ~]# vim /etc/my.cnf
server-id = 2                
relay-log = relay-log         
log-bin = master-log         
read_only = ON               
relay_log_purge = 0           
skip_name_resolve              
log_slave_updates = 1   

在这里插入图片描述

[root@node3 ~]# systemctl restart mariadb
配置一主多从复制架构
  • node2

授权用户给从库

MariaDB [(none)]> grant replication slave on *.* to slave@'192.168.153.%' identified by '123';

此用户为之后我们的Manager管理master所需

MariaDB [(none)]> grant all on *.* to mha@'192.168.153.%' identified by '123';
  • node3 4
MariaDB [(none)]> change master to master_host='192.168.153.178',master_user='slave',master_password='123',master_log_file='master-log.000003',master_log_pos=529;Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.00 sec)

在这里插入图片描述

  • node3 4 授权创建一个用户

此用户为我们的Manager管理slave所需

MariaDB [(none)]> grant all on *.* to slave@'192.168.153.%' identified by '123';
初始化 MHA
  • node1

定义 MHA 管理配置文件

[root@node2 ~]# mkdir /etc/mha_master
[root@node2 ~]# vim /etc/mha_master/mha.cnf
[server default]                        
user=mha                          
password=123                       
manager_workdir=/etc/mha_master/app1            
manager_log=/etc/mha_master/manager.log         
remote_workdir=/mydata/mha_master/app1          
ssh_user=root                           
repl_user=slave                         
repl_password=123               
ping_interval=1                         
[server1]                                       
hostname=192.168.153.178
ssh_port=22                             
candidate_master=1                      
[server2]
hostname=192.168.153.177
ssh_port=22
candidate_master=1
[server3]
hostname=192.168.153.176
ssh_port=22
candidate_master=1

在这里插入图片描述

对四个节点进行检测
  • node1

在这里插入图片描述
检查管理的MySQL复制集群的连接配置参数是否OK

在这里插入图片描述

启动 MHA
- node1
[root@node1 ~]# nohup masterha_manager -conf=/etc/mha_master/mha.cnf &> /etc/mha_master/manager.log &
[1] 22226
[root@node1 ~]# masterha_check_status -conf=/etc/mha_master/mha.cnf
mha (pid:22226) is running(0:PING_OK), master:192.168.153.178
测试 MHA 故障转移
  • node2(master)
[root@node2 ~]# yum -y install psmisc
[root@node2 ~]# killall -9 mysqld mysqld_safe
[root@node2 ~]# rm -rf /var/lib/mysql/
aria_log.00000001   ibdata1             ib_logfile1         master-log.000002   master-log.index    mysql.sock          test/
aria_log_control    ib_logfile0         master-log.000001   master-log.000003   mysql/              performance_schema/ 
[root@node2 ~]# rm -rf /var/lib/mysql/*
在 manger 节点查看日志
  • node1

在这里插入图片描述
注意,故障转移完成后, manager将会自动停止

  • 176节点
    在这里插入图片描述
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值