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

MHA是用于MySQL的开源高可用性工具,能自动监控并处理主节点故障,实现快速故障转移。通过配置多个MySQL实例,包括主节点和从节点,MHA能在主节点故障时将从节点提升为主节点,保持服务连续性。配置过程涉及设置Manager、Monitor节点,配置主从复制,以及免密登录和权限授权。
摘要由CSDN通过智能技术生成

一、概述

        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

 2、配置免密登录

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

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

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

生成密钥

复制密钥

 上传密钥

 测试(ok 成功了)

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

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;        查看主服务器的位置信息

 配置从服务器

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

 

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值