广告
返回顶部
首页 > 资讯 > 数据库 >Mysql MHA部署-04MHA配置
  • 568
分享到

Mysql MHA部署-04MHA配置

2024-04-02 19:04:59 568人浏览 安东尼
摘要

Mysql MHA部署-04MHA配置 一 Mysql MHA部署-01介绍 二 Mysql MHA部署-02主从复制 三 Mysql MHA部署-03MHA软件安装 四 M

Mysql MHA部署-04MHA配置

一 Mysql MHA部署-01介绍

二 Mysql MHA部署-02主从复制

三 Mysql MHA部署-03MHA软件安装

四 Mysql MHA部署-04MHA配置

五 Mysql MHA部署-05故障转移

六 Mysql MHA部署-06手动切换

七 Mysql MHA部署-07常见问题

架构说明:

Mysql MHA部署-04MHA配置

参考:     http://www.zhaibibei.cn/mysql/mha/

一:MySQL MHA部署前准备

1.1 hosts文件

首先我们在四台服务器上添加其他服务器的hosts信息

[root@rac1 mha]# vim /etc/hosts

192.168.2.222 rac4

192.168.2.187 rac1

192.168.2.188 rac2

192.168.2.223 rac3

1.2 配置免密码登录

接下来我们需要配置各服务请求间的免密码登录

ssh-kengen 命令后请一路下一步

---192.168.2.187 rac1

ssh-keygen -t rsa

ssh-copy-id 192.168.2.188

ssh-copy-id 192.168.2.223

ssh-copy-id 192.168.2.222

ssh-copy-id rac2

ssh-copy-id rac3

ssh-copy-id rac4

---192.168.2.188 rac2

ssh-keygen -t rsa

ssh-copy-id 192.168.2.187

ssh-copy-id 192.168.2.223

ssh-copy-id 192.168.2.222

ssh-copy-id rac1

ssh-copy-id rac3

ssh-copy-id rac4

---192.168.2.223 rac3

ssh-keygen -t rsa

ssh-copy-id 192.168.2.187

ssh-copy-id 192.168.2.188

ssh-copy-id 192.168.2.222

ssh-copy-id rac1

ssh-copy-id rac2

ssh-copy-id rac4

---192.168.2.222 rac4

ssh-keygen -t rsa

ssh-copy-id 192.168.2.187

ssh-copy-id 192.168.2.188

ssh-copy-id 192.168.2.223

ssh-copy-id rac1

ssh-copy-id rac2

ssh-copy-id rac3

1.3 创建监控账户

接下来我们创建用于MHA监控数据库账户

主库 187:

master数据库

Mysql> grant all privileges on *.* to 'monitor'@'192.168.2.187' identified by '123456';

mysql> grant all privileges on *.* to 'monitor'@'192.168.2.188' identified by '123456';

mysql> grant all privileges on *.* to 'monitor'@'192.168.2.222' identified by '123456';

mysql> grant all privileges on *.* to 'monitor'@'192.168.2.223' identified by '123456';

mysql> grant all privileges on *.* to 'monitor'@'127.0.0.1' identified by '123456';

mysql> flush privileges;

mysql> select host,user from mysql.user;

+---------------+---------------+

| host          | user          |

+---------------+---------------+

| 127.0.0.1     | monitor       |

| 192.168.2.187 | monitor       |

| 192.168.2.187 | repl          |

| 192.168.2.188 | monitor       |

| 192.168.2.188 | repl          |

| 192.168.2.222 | monitor       |

| 192.168.2.223 | monitor       |

| 192.168.2.223 | repl          |

| localhost     | mysql.session |

| localhost     | mysql.sys     |

| localhost     | root          |

+---------------+---------------+

11 rows in set (0.00 sec)

1.4 关闭防火墙

如果防火墙开始,需要开通服务器间3306端口的通信

1.5 关闭relay日志自动清理

由于默认情况下从库的relay logs会在SQL线程执行完毕后被自动删除,但是对于MHA场景下,对于某些滞后从库的恢复依赖于其他从库的relay log,因此采取禁用自动删除功能以及定期清理的办法

使用purge_relay_logs脚本这个后面说明

主从库3台

relay_log_purge=0

1.6 从库开启只读

从库需要设置只读模式

2台从库

read_only=1

1.7 master节点绑定VIP

刚开始需要手动将VIP绑定至master节点

[root@rac1 mysql]# ifconfig |grep 192

        inet 192.168.2.187  netmask 255.255.255.0  broadcast 192.168.2.255

        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

[root@rac1 mysql]# /sbin/ifconfig enp0s3:2 192.168.2.189  netmask 255.255.255.0 up

[root@rac1 mysql]# ifconfig |grep 192

        inet 192.168.2.187  netmask 255.255.255.0  broadcast 192.168.2.255

        inet 192.168.2.189  netmask 255.255.255.0  broadcast 192.168.2.255

        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

1.8 准备自定义脚本

这里我们通过网盘下载,放到/etc/mha/script下面并赋予可执行权限

链接: https://pan.baidu.com/s/18H12bTIYHi2H0dXs2DI7NA 提取码: mwkq

管理节点:192.168.2.222 RAC4 

[root@rac4 ~]# mkdir /etc/mha/script -p            

[root@rac4 ~]# cp /package/mysql/MHA/script/* /etc/mha/script/

[root@rac4 ~]# ll -rth /etc/mha/script/

total 24K

-rw-r--r-- 1 root root 2.4K Mar 14 19:56 send_report

-rw-r--r-- 1 root root  11K Mar 14 19:56 master_ip_online_change

-rw-r--r-- 1 root root 4.3K Mar 14 19:56 master_ip_failover

接下来我们修改相关的文件

---master_ip_failover

该文件只需要修改

my $vip = '192.168.2.189';

my $key = "0";

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

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

my $ssh_send_garp = "/sbin/arping -U $vip -I enp0s3 -c 1";

---master_ip_online_change

该文件也是需要修改

my $vip = '192.168.2.189';

my $key = "0";

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

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

my $ssh_send_garp = "/sbin/arping -U $vip -I enp0s3 -c 1";

---send_report

该文件需要修改邮件配置,这个后面做介绍

二 MySQL MHA部署指南

2.1 管理节点配置

[root@rac4 script]# vim /etc/mha/mha.conf

[server default]

# mysql user and passWord

user=monitor

password=123456

ssh_user=root

# working directory on the manager

manager_workdir=/etc/mha/manager

manager_log=/etc/mha/manager/mha.log

ping_interval=1

# working directory on MySQL Servers

remote_workdir=/etc/mha/node

# replication user

repl_user=repl

repl_password=rpl

master_binlog_dir=/datalog/mysql/binlog

## customized script

master_ip_failover_script=/etc/mha/script/master_ip_failover

master_ip_online_change_script=/etc/mha/script/master_ip_online_change

secondary_check_script=/usr/bin/masterha_secondary_check -s 192.168.2.188  -s 192.168.2.223 --user=root  --master_host=192.168.2.187 --master_ip=192.168.2.187  --master_port=3306

[server1]

hostname=rac1

candidate_master=1

[server2]

hostname=rac2

candidate_master=1

[server3]

hostname=rac3

no_master=1

接下来我们来解释每个参数的意义:

manager_workdir 管理节点工作目录,mha运行时会有状态文件生成

masnager_log 管理节点生成的日志

ping_interval 管理节点检测主库状态的间隔,默认为3s

remote_workdir MHA node工作目录,不存在会自动建立,如果不允许创建,MHA Node自动异常退出

master_binlog_dir 指定主库的二进制日志位置,防止管理节点无法连接主库获取日志位置

master_ip_failover_script 发生切换时VIP漂移脚本

master_ip_online_change_script 用于手动切换时VIP的漂移

secondary_check_script 若管理节点无法连接主库,则调用该脚本从从库检测主库状态

candidate_master 指定如果主库发生故障,优先提升该节点为主库

no_master 指定该节点不会成为主库

2.2 测试连接

2.2.1 测试ssh是否设置正确

管理节点

[root@rac4 script]# masterha_check_ssh --conf=/etc/mha/mha.conf

Sat Mar 14 20:10:42 2020 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.

Sat Mar 14 20:10:42 2020 - [info] Reading application default configuration from /etc/mha/mha.conf..

Sat Mar 14 20:10:42 2020 - [info] Reading server configuration from /etc/mha/mha.conf..

Sat Mar 14 20:10:42 2020 - [info] Starting SSH connection tests..

Sat Mar 14 20:10:44 2020 - [debug] 

Sat Mar 14 20:10:42 2020 - [debug]  Connecting via SSH from root@rac1(192.168.2.187:22) to root@rac2(192.168.2.188:22)..

Sat Mar 14 20:10:43 2020 - [debug]   ok.

Sat Mar 14 20:10:43 2020 - [debug]  Connecting via SSH from root@rac1(192.168.2.187:22) to root@rac3(192.168.2.223:22)..

Sat Mar 14 20:10:44 2020 - [debug]   ok.

Sat Mar 14 20:10:45 2020 - [debug] 

Sat Mar 14 20:10:43 2020 - [debug]  Connecting via SSH from root@rac3(192.168.2.223:22) to root@rac1(192.168.2.187:22)..

Sat Mar 14 20:10:44 2020 - [debug]   ok.

Sat Mar 14 20:10:44 2020 - [debug]  Connecting via SSH from root@rac3(192.168.2.223:22) to root@rac2(192.168.2.188:22)..

Sat Mar 14 20:10:45 2020 - [debug]   ok.

Sat Mar 14 20:10:45 2020 - [debug] 

Sat Mar 14 20:10:43 2020 - [debug]  Connecting via SSH from root@rac2(192.168.2.188:22) to root@rac1(192.168.2.187:22)..

Sat Mar 14 20:10:44 2020 - [debug]   ok.

Sat Mar 14 20:10:44 2020 - [debug]  Connecting via SSH from root@rac2(192.168.2.188:22) to root@rac3(192.168.2.223:22)..

Sat Mar 14 20:10:44 2020 - [debug]   ok.

Sat Mar 14 20:10:45 2020 - [info] All SSH connection tests passed successfully.

测试通过会有成功字样打印出来

2.2.2 测试复制是否正常

管理节点222(rac4)

[root@rac4 script]# masterha_check_repl --conf=/etc/mha/mha.conf

Sat Mar 14 20:14:42 2020 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.

Sat Mar 14 20:14:42 2020 - [info] Reading application default configuration from /etc/mha/mha.conf..

Sat Mar 14 20:14:42 2020 - [info] Reading server configuration from /etc/mha/mha.conf..

Sat Mar 14 20:14:42 2020 - [info] MHA::MasterMonitor version 0.56.

Sat Mar 14 20:14:43 2020 - [info] GTID failover mode = 1

Sat Mar 14 20:14:43 2020 - [info] Dead Servers:

Sat Mar 14 20:14:43 2020 - [info] Alive Servers:

Sat Mar 14 20:14:43 2020 - [info]   rac1(192.168.2.187:3306)

Sat Mar 14 20:14:43 2020 - [info]   rac2(192.168.2.188:3306)

Sat Mar 14 20:14:43 2020 - [info]   rac3(192.168.2.223:3306)

Sat Mar 14 20:14:43 2020 - [info] Alive Slaves:

Sat Mar 14 20:14:43 2020 - [info]   rac2(192.168.2.188:3306)  Version=5.7.28-log (oldest major version between slaves) log-bin:enabled

Sat Mar 14 20:14:43 2020 - [info]     GTID ON

Sat Mar 14 20:14:43 2020 - [info]     Replicating from 192.168.2.187(192.168.2.187:3306)

Sat Mar 14 20:14:43 2020 - [info]     Primary candidate for the new Master (candidate_master is set)

Sat Mar 14 20:14:43 2020 - [info]   rac3(192.168.2.223:3306)  Version=5.7.28-log (oldest major version between slaves) log-bin:enabled

Sat Mar 14 20:14:43 2020 - [info]     GTID ON

Sat Mar 14 20:14:43 2020 - [info]     Replicating from 192.168.2.187(192.168.2.187:3306)

Sat Mar 14 20:14:43 2020 - [info]     Not candidate for the new Master (no_master is set)

Sat Mar 14 20:14:43 2020 - [info] Current Alive Master: rac1(192.168.2.187:3306)

Sat Mar 14 20:14:43 2020 - [info] Checking slave configurations..

Sat Mar 14 20:14:43 2020 - [info] Checking replication filtering settings..

Sat Mar 14 20:14:43 2020 - [info]  binlog_do_db= , binlog_ignore_db= 

Sat Mar 14 20:14:43 2020 - [info]  Replication filtering check ok.

Sat Mar 14 20:14:43 2020 - [info] GTID (with auto-pos) is supported. Skipping all SSH and Node package checking.

Sat Mar 14 20:14:43 2020 - [info] Checking SSH publickey authentication settings on the current master..

Sat Mar 14 20:14:43 2020 - [info] HealthCheck: SSH to rac1 is reachable.

Sat Mar 14 20:14:43 2020 - [info] 

rac1(192.168.2.187:3306) (current master)

 +--rac2(192.168.2.188:3306)

 +--rac3(192.168.2.223:3306)

Sat Mar 14 20:14:43 2020 - [info] Checking replication health on rac2..

Sat Mar 14 20:14:43 2020 - [info]  ok.

Sat Mar 14 20:14:43 2020 - [info] Checking replication health on rac3..

Sat Mar 14 20:14:43 2020 - [info]  ok.

Sat Mar 14 20:14:43 2020 - [info] Checking master_ip_failover_script status:

Sat Mar 14 20:14:43 2020 - [info]   /etc/mha/script/master_ip_failover --command=status --ssh_user=root --orig_master_host=rac1 --orig_master_ip=192.168.2.187 --orig_master_port=3306 

Sat Mar 14 20:14:43 2020 - [info]  OK.

Sat Mar 14 20:14:43 2020 - [warning] shutdown_script is not defined.

Sat Mar 14 20:14:43 2020 - [info] Got exit code 0 (Not master dead).

MySQL Replication Health is OK.

测试通过会有成功字样打印出来

通过输出我们可以看到相关架构信息

3 启动MHA

首先我们可以检测MHA是否已启动

管理节点

[root@rac4 script]# masterha_check_status --conf=/etc/mha/mha.conf

mha is stopped(2:NOT_RUNNING).

我们在manager上执行如下命令开启MHA

管理节点

[root@rac4 script]# nohup masterha_manager    --conf=/etc/mha/mha.conf --remove_dead_master_conf &

--remove_dead_master_conf意思为当发生切换后,老的主库信息会从配置文件删除

[1] 4360

[root@rac4 script]# nohup: ignoring input and appending output to ‘nohup.out’

[root@rac4 script]# masterha_check_status --conf=/etc/mha/mha.conf

mha (pid:4360) is running(0:PING_OK), master:rac1

4停止MHA

[root@rac4 script]# masterha_stop -conf=/etc/mha/mha.conf 

Stopped mha successfully.

[1]+  Exit 1                  nohup masterha_manager --conf=/etc/mha/mha.conf --remove_dead_master_conf

[root@rac4 script]# masterha_check_status --conf=/etc/mha/mha.conf

mha is stopped(2:NOT_RUNNING).

5设置relay log清理计划

前面我们说到我们已经取消了relay log的自动清理,这里需要在主从库3台上设置定时任务手动清理

这里首先需要在root用户环境变量中增加mysql相关路径

主从库三台

export MYSQL_HOME=/usr/local/mysql

export PATH=$HOME/bin:$MYSQL_HOME/bin:$PATH

0 4 1 * * /usr/bin/purge_relay_logs --user=monitor --password=123456 -disable_relay_log_purge --workdir=/tmp/ >> /tmp/purge_relay_logs.log 2>&1

欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!

Mysql MHA部署-04MHA配置

Mysql MHA部署-04MHA配置

您可能感兴趣的文档:

--结束END--

本文标题: Mysql MHA部署-04MHA配置

本文链接: https://www.lsjlt.com/news/48866.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mysql MHA部署-04MHA配置
    Mysql MHA部署-04MHA配置 一 Mysql MHA部署-01介绍 二 Mysql MHA部署-02主从复制 三 Mysql MHA部署-03MHA软件安装 四 M...
    99+
    2022-10-18
  • MySQL MHA高可用架构部署配置实例是怎样的
    本篇文章给大家分享的是有关MySQL MHA高可用架构部署配置实例是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。MHA高可用架构部署配...
    99+
    2022-10-18
  • MySQL高可用之MHA部署
    MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行...
    99+
    2022-10-18
  • MySQL MHA高可用环境部署
    一,安装MHA基本环境安装MHA节点(1)基本环境说明角色IP地址主机名     =========================================  ...
    99+
    2022-10-18
  • mysql MHA 高可用架构部署
    MHA简介:即Master High Availability Manager and Tools for MySQL,是日本的一位MySQL专家采用Perl语言编写的一个脚本管理工具, 该工具仅...
    99+
    2022-10-18
  • MHA高可用架构部署以及配置(详细)
    目录 一、MHA概述 1、简介 2、MHA特点 3、何为高可用 4、故障切换过程 二、MHA高可用架构部署 1、架构图 2、 实验环境:需要四台Centos7服务器 3、实验部署 3.1、master、slave1、slave2安装mysq...
    99+
    2023-09-04
    数据库 mysql 运维
  • Mysql MHA部署中怎么进行MHA软件安装
    Mysql MHA部署中怎么进行MHA软件安装,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Mysql MHA部署-MHA软件...
    99+
    2022-10-18
  • MySQL MHA 重要配置
    1、集群信息[root@es3 local]# cat /etc/hosts 127.0.0.1   localhost localhost.localdomain localhost4 localhost...
    99+
    2022-10-18
  • mysql高可用MHA部署全过程
    部署计划mysql_master192.168.2.74centos6.9mysql5.5/mha-nodemysql_salve1192.168.2.75centos6.9mysql5.5/mha-nod...
    99+
    2022-10-18
  • 【Mysql】MHA配置虚拟ip
    虚拟ip飘逸 说到Failover,通常有两种方式:一种是虚拟IP地址,一种是全局配置文件。 MHA并没有限定使用哪一种方式,而是让用户自己选择,虚拟IP地址的方...
    99+
    2022-10-18
  • MySQL之MHA高可用配置及故障切换实现详细部署步骤
    一、MHA介绍 (一)、什么是MHA MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故...
    99+
    2022-05-24
    MySQL MHA高可用配置 MySQL 高可用配置
  • MySQL 搭建MHA架构部署的步骤
    MAH 一:MAH架构介绍 MHA (Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本人youshimaton开发,是一套优秀的作为MySQL高可用...
    99+
    2022-05-20
    MySQL MHA架构部署 MySQL部署MHA架构
  • Mysql MHA部署中如何手动切换
    这篇文章给大家介绍Mysql MHA部署中如何手动切换,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Mysql MHA部署-手动切换架构说明:参考:http://www.zhaibib...
    99+
    2022-10-18
  • MySQL高可用方案MHA如何部署
    这篇文章将为大家详细讲解有关MySQL高可用方案MHA如何部署,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。MHA(Master High Availability)是一...
    99+
    2022-10-18
  • 如何部署MHA实现MySQL高可用
    MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行...
    99+
    2022-10-18
  • MySQL 复制部署及其配置
      为 MySQL 服务器配置复制非常简单。但由于场景不同,基本的步骤还是有所差异。最基本的场景是新安装主库和备库,总得来说分为以下几步: 1️⃣在每台服务器上创建复制账号。 2️⃣配置主库和备库。 3️⃣通知备库连接到主库并从...
    99+
    2016-05-10
    MySQL 复制部署及其配置
  • Mysql MHA部署怎样进行故障转移
    这篇文章给大家介绍Mysql MHA部署怎样进行故障转移,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Mysql MHA部署-故障转移架构说明:参考:http://www.zhaibi...
    99+
    2022-10-18
  • Mysql MHA部署中什么是主从复制
    这篇文章给大家介绍Mysql MHA部署中什么是主从复制,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Mysql MHA部署-主从复制架构说明:参考:http://www.zhaibi...
    99+
    2022-10-18
  • zabbix配置部署
    zabbix实验环境:服务端:192.168.36.131客户端:192.168.36.129iptables and selinux disabled一.服务端配置1.安装# rpm -ivh http:...
    99+
    2022-10-18
  • MYSQL部署配置管理5.6版本
    一、MYSQL服务器端程序层次结构1.1 连接层连接协议:tcpip  socket验证连接合法性分配连接线程为客户端服务1.2 SQL层解析优化授权表查询提供缓存1.3 存储引擎层插件式的存储数...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作