10 - MHA集群概述|部署MHA集群

数据库系列文章

1 - 数据库服务概述 | 构建MySQL服务 | 数据库基本管理 | MySQL基本类型
2 - 表结构 | MySQL键值
3 - 字段约束|MySQL索引|MySQL用户管理
4 - 基础查询进阶|连接查询
5 - 视图|存储过程
6 - 数据备份与恢复|innobackupex
7 - MySQL主从同步|主从同步模式
8 - MySQL数据读写分离|MySQL多实例
9 - 数据分片概述|部署MyCat服务
10 - MHA集群概述|部署MHA集群
11 - PXC集群|MySQL存储引擎

相关概念

高可用集群知识点回顾 分为 主备2种角色,工作过程,主服务器获取vip地址 客户端连接 vip地址访问服务,当主服务器宕机后,备用的服务器升级为获取vip地址 继续给客户端提供服务。
之前网站高可用集群用的是keepalived软件做集群服务
数据库高可用集群,使用专属的集群软件MHA

MHA软件介绍:软件有两部分组成:

  1. 管理端软件(管理节点):安装管理集群主机上的软件
  2. 数据端软件(数据节点):安装在数据库服务器上的软件
    在这里插入图片描述

MHA集群架构

至少三台数据库服务器才能做 必须是主从同步结构

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

MHA集群工作过程

在这里插入图片描述

配置MHA集群

第一步 集群环境准备

公共配置

启动binlog日志
开启办同步复制模式
禁止删除本机的中继日志文件
重启数据库服务

[51 ~]# vim /etc/my.cnf
[mysqld]
plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync-slave.so"
rpl_semi_sync_master_enabled=1
rpl_semi_sync_slave_enabled=1
relay_log_purge=0
server_id=51
log_bin=master51
:wq
[51 ~]# systemctl restart mysqld
[51 ~]# mysql -uroot -p123qqq..a
mysql> grant replication slave on *.* to repluser@"%" Identified by "123qqq...A"
51,52,53都要这个操作

配置ssh免密码登陆

  • 所有数据库服务器之间可以彼此免密登陆
    • 51 免密登陆 52 53
      ssh-copy-id root@192.168.4.52
    • 52 免密登陆 51 53
    • 53 免密登陆 51 52
    • 测试
  • 管理主机可以免密登陆所有数据库服务器(数据库服务器不需要免密登陆管理主机)

配置mysql一主多从 同步结构

  • 配置主数据库服务器
    启动binlog日志 (公共配置已经配置了)
    用户授权(公共配置已经配置了)
    查看日志信息
    在这里插入图片描述

  • 配置从数据库服务器
    指定server_id并重启数据库服务
    确保数据一致(如果一样就不需要做了)
    指定主服务器信息

change master to master_host="192.168.4.51",master_user="repluser",master_password="123qqq...A",master_log_file="master51.000001",master_log_pos=441;

启动slave进程
mysql > start slave
查看状态(IO线程喝sql线程都是yes状态)
show slave status
在这里插入图片描述
在这里插入图片描述

第二步 配置管理主机 57

安装软件

安装依赖软件
安装提供管理命令的软件
在这里插入图片描述

make && make install 

了解相关管理命令

在这里插入图片描述

创建并编辑管理服务的主配置文件(重要)

创建工作目录

mkdir /etc/mha

拷贝模版文件创建主配置文件

cd mha4mysql-manager-0.56
cp samples/conf/app1.cnf /etc/mha/

编辑主配置文件

# 模板文件是一个半成品 需要修改
vim /etc/mha/app1.cnf (没有第四台服务器 所以删掉[server4][server_default]
manager_workdir=/etc/mha # 指定工作目录
manager_log=/etc/mha/manager.log # 日志文件存放的目录
# 故障切换脚本
master_ip_failover_script=/etc/mha/master_ip_failover
ssh_user=root
ssh_port=22
repl_user=repluser   # server1 2 3 上都得有
repl_password=123qqq...AAA 
user=sw  # 监控用户 最后得在监视服务器上添加
password=123qqq...A # 密码 
# 定义监视的数据库服务器
[server1]
hostname=192.168.4.51
port=3306
candidate_master=1
[server2]
hostname=192.168.4.52
port=3306
candidate_master=1
[server3]
hostname=192.168.4.53
port=3306
candidate_master=1

创建故障切换脚本

创建脚本并指定vip地址部署在哪块网卡上
在这里插入图片描述

第三步 配置数据库服务器

把故障切换脚本里指定的vip地址配置在主服务器数据库

要保证3台数据库都有ifconfig命令

which ifconfig || yum -y install net-tools
ifconfig eth0:1 192.168.4.100/24

安装软件(3台都要安装)

先安装依赖 再安装主软件 添加监控用户(只需在master服务器添加 在slave服务器查看)
在这里插入图片描述

[51 ~]# mysql -uroot -paaa
mysql> grant all on *.* to sw@"%" Identified by "123qqq...A"
# 可以同步到从服务器
[53 ~]# mysql -uroot -p1111 -e "select user from mysql.user where user="sw""

第四步 测试配置

在管理主机57如下测试:
测试ssh免密登陆配置
在这里插入图片描述

测试主从同步配置
在这里插入图片描述

说明:两个测试都成功了 管理服务才能启动成功

第五步 启动管理服务

在这里插入图片描述

nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover 2> /dev/null &

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

测试集群的高可用,具体操作如下:

  1. 客户端50连接vip地址访问数据库服务
    在主服务器是51添加客户端连接使用的用户 2台从服务器会自动同步用户
mysql> create database db1;
mysql> create table db1.a;
mysql> grant select,insert on db1.* to yaya@"%" identified by "123qqq...A";
  1. 停止51主机的数据库服务
systemctl stop mysqld
  1. 客户端50连接vip地址访问数据库服务
mysql -h192.168.4.100 -uyaya -p123qqq...A
  1. 在52和53主机查看vip地址 谁有vip地址 谁就是信息的主服务器
[52 ~]# ifconfig eth0:1

在这里插入图片描述

  1. 在剩下的另一台数据库服务器查看主服务器ip地址 自动做新主服务器的slave主机
    在这里插入图片描述

  2. 查看app1.cnf配置文件(发现没有[server1]的配置了)
    在这里插入图片描述

  3. 查看管理服务的状态,并启动管理服务,再次查看状态(会监视新主数据库服务器)

  • 16
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值