小白到运维工程师自学之路 第三十七集 (mha高可用集群)

一、概述

        MHA(Master High Availability)是一个开源的MySQL高可用性解决方案,它可以自动监测MySQL主节点的状态,并在主节点发生故障时自动将从节点提升为新的主节点,从而实现MySQL的高可用性。MHA集群通常由多个MySQL实例组成,其中一个是主节点,其余的是从节点。MHA集群可以在主节点故障时自动进行故障转移,从而保证MySQL服务的高可用性和可靠性。MHA集群的优点包括:自动化管理、高可用性、快速故障转移、易于部署和维护等。

二、工作原理

1. MHA的主要组件包括manager节点、monitor节点和各个MySQL节点。manager节点是MHA的控制节点,用于管理和监控MySQL集群的状态;monitor节点是用于监控MySQL主节点状态的节点;各个MySQL节点包括主节点和备用节点。

2. MHA的manager节点会定期向monitor节点发送心跳包,以检测monitor节点是否正常工作。如果monitor节点出现故障,manager节点会自动将monitor节点的角色切换到另一个可用的monitor节点。

3. 当MySQL主节点出现故障时,monitor节点会检测到主节点的状态变化,并向manager节点发送通知。manager节点会根据预定义的切换策略,自动将备用节点切换为新的主节点,从而实现MySQL服务的高可用性。

4. 在切换过程中,MHA会自动执行一系列的操作,包括停止原来的主节点、启动新的主节点、更新DNS记录等。这些操作可以确保MySQL服务的连续性和数据一致性。

三、准备工作

1、三台虚拟机能互相通联

2、每台虚拟机关闭防火墙

3、每台虚拟机安装MHA、SSH、Mariadb

四、配置

1、配置IP节点

vim /etc/hosts    打开自带的域名服务
写入

192.168.1.250  syh1
192.168.1.251  syh2
192.168.1.252  syh3

小白到运维工程师自学之路 第三十七集 (mha高可用集群)_第1张图片

 2、配置免密登录

ssh-keygen -t rsa   生成密钥(每一台服务器都要生成)

ssh-copy-id -i .ssh/id_rsa.pub root@syh1  复制密钥(在主、从服务器中复制管理服务器的密钥)

scp .ssh/authorized_keys root@syh2:.ssh/  将密钥上传到syh2、syh3

生成密钥

小白到运维工程师自学之路 第三十七集 (mha高可用集群)_第2张图片

复制密钥

小白到运维工程师自学之路 第三十七集 (mha高可用集群)_第3张图片

 上传密钥小白到运维工程师自学之路 第三十七集 (mha高可用集群)_第4张图片

 测试(ok 成功了)

小白到运维工程师自学之路 第三十七集 (mha高可用集群)_第5张图片

3、配置主从复制

首先配置主服务器(syh2)

yum -y install epel-release                          安装epel源
yum -y install mariadb mariadb-server                安装mariadb
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm        安装mha

 vim /etc/my.cnf    修改配置文件

server-id = 1                ID为1  表示这是主服务器
log-bin = master-log         启用这个二进制文件
relay-log = relay-log
skip_name_resolve

小白到运维工程师自学之路 第三十七集 (mha高可用集群)_第6张图片

systemctl start mariadb   启动服务
mysql        进入数据库

grant replication slave on *.* to ‘slave’@'%' identified by '123'; 授权用户给从库使用 密码是123

MariaDB [(none)]> grant all on *.* to ‘mha’@'%' identified by '123'; 授权用户给mariadb使用密码是123

show master status;        查看主服务器的位置信息

小白到运维工程师自学之路 第三十七集 (mha高可用集群)_第7张图片

 配置从服务器

yum -y install mariadb mariadb-server epel-release  安装mariadb epel

rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm       安装mha
vim /etc/my.cnf  配置从服务器

server-id = 2            id为2 表示这是从服务器         
relay-log = relay-log    开启这个二进制文件         
log-bin = master-log         
read_only = ON               
relay_log_purge = 0           
skip_name_resolve              
log_slave_updates = 1

 小白到运维工程师自学之路 第三十七集 (mha高可用集群)_第8张图片

systemctl start mariadb   开启服务
mysql   进入数据库

change master to master_host='192.168.1.251',master_user='slave',master_password='123',master_log_file='master-log.000003',master_log_pos=529;    指定主服务器的信息

start slave;  开启从服务器

grant all on *.* to ‘slave’@'%' identified by '123'; 授权给mha服务器使用
 

 配置manager管理服务器

yum -y install mariadb mariadb-server epel-release   安装mariadb  epel

yum -y install mha4mysql-node-0.56-0.el6.noarch.rpm mha4mysql-manager-0.56-0.el6.noarch.rpm 

安装mha
mkdir /etc/mha_master   
vim /etc/mha_master/mha.cnf  创建manager配置文件
[server default]
user=mha                                     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                              管理工具检测MySQL主从复制状态的时间间隔
[server1]                                    主节点
hostname=192.168.1.251                       主节点IP
ssh_port=22                                  主节点端口
candidate_master=1                           
[server2]                                    从节点
hostname=192.168.1.252                       从节点IP
ssh_port=22                                  从节点端口
candidate_master=1

小白到运维工程师自学之路 第三十七集 (mha高可用集群)_第9张图片

masterha_check_ssh --conf=/etc/mha_master/mha.cnf  对各个节点进行检测

小白到运维工程师自学之路 第三十七集 (mha高可用集群)_第10张图片

masterha_check_repl --conf=/etc/mha_master/mha.cnf   检查管理的MySQL复制集群的连接配置参数是否OK

小白到运维工程师自学之路 第三十七集 (mha高可用集群)_第11张图片

 

以上就是MHA高可用集群的配置

如有错误欢迎各位大佬批评指正,我们共同进步

你可能感兴趣的:(运维,数据库,mysql)