蓝桉云顶

Good Luck To You!

如何快速部署MHA MySQL?

MHA 提供 MySQL 主从复制架构的高可用性解决方案,支持快速部署与故障转移。

MHA MySQL 快速部署指南

一、实验环境准备

服务器配置

操作系统:CentOS 7.4 (64位)

服务器数量:四台

MHA Manager节点:192.168.99.119

Master节点:192.168.99.116

Slave1节点:192.168.99.117

Slave2节点:192.168.99.118

主机名和IP地址配置

MHA Manager节点:192.168.99.119,主机名为mha

Master节点:192.168.99.116,主机名为master

Slave1节点:192.168.99.117,主机名为slave1

Slave2节点:192.168.99.118,主机名为slave2

关闭防火墙和SELinux

在所有服务器上执行以下命令:

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled

安装MySQL数据库

在所有MySQL服务器上安装MySQL 5.7:

yum install -y https://repo.mysql.com/mysql57-community-release-el7.rpm
yum install -y mysql-community-server
systemctl start mysqld
systemctl enable mysqld

修改MySQL配置文件

编辑/etc/my.cnf文件,添加以下内容:

[mysqld]
server_id = 1                  # 各节点的server_id不同
gtid_mode=ON                   # 开启GTID模式
enforce_gtid_consistency=on
log_bin=mysql-bin              # 开启二进制日志
binlog_format=ROW              # 使用基于行的日志格式
log_slave_updates=1            # 允许从库更新操作

重启MySQL服务:

systemctl restart mysqld

二、配置主从复制

创建同步用户并授权

在Master节点上执行以下命令:

CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;

2. 获取Master节点的二进制日志文件和位置

在Master节点上执行以下命令:

SHOW MASTER STATUS;

记录下FilePosition的值。

配置Slave节点

在每个Slave节点上执行以下命令:

CHANGE MASTER TO
    MASTER_HOST='master',
    MASTER_USER='repl',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='记录下的File值',
    MASTER_LOG_POS=记录下的Position值;
START SLAVE;

验证主从复制状态

在每个Slave节点上执行以下命令:

SHOW SLAVE STATUS \G;

确保Slave_IO_RunningSlave_SQL_Running都显示为Yes

三、安装和配置MHA

安装必要的Perl模块

在所有服务器上执行以下命令:

cpan App::cpanminus
cpanm install DBD::mysql
cpanm install Data::Dumper
cpanm install JSON
cpanm install Getopt::Long
cpanm install Parallel::ForkManager

下载并安装MHA软件包

从GitHub上下载MHA的最新版本,并解压:

wget https://github.com/DeNA/mahakai/archive/refs/tags/0.61.tar.gz
tar zxvf mahakai-0.61.tar.gz
cd mahakai-0.61/

配置MHA Manager节点

manager目录复制到MHA Manager节点的合适位置(如/usr/local/nagios/libexec/),并编辑app1.conf文件,设置管理节点的IP地址和其他参数。

启动MHA Manager

在MHA Manager节点上执行以下命令:

./masterha_manager --conf=/path/to/app1.conf --verbose

四、测试故障转移功能

模拟Master节点故障

手动停止Master节点上的MySQL服务:

systemctl stop mysqld

或者直接关闭Master节点。

观察MHA自动故障转移过程

MHA Manager会自动检测到Master节点的故障,并将一个Slave节点提升为新的Master节点,整个过程应不超过30秒,并且对应用程序完全透明。

3. 恢复原Master节点并重新加入集群(可选)

如果原Master节点修复后需要重新加入集群,可以将其作为新的Slave节点进行配置,并重新同步数据。

五、FAQ常见问题解答

Q1: MHA支持哪些MySQL版本?

A1: MHA主要支持MySQL 5.5及更高版本,对于MySQL 5.7及以上版本,建议使用GTID模式以确保数据的一致性。

Q2: MHA能否与InnoDB一起使用?

A2: 是的,MHA完全兼容InnoDB存储引擎,并且推荐使用InnoDB以获得更好的性能和可靠性。

Q3: 如果Master节点硬盘损坏怎么办?

A3: 如果Master节点硬盘损坏且无法访问到最新的二进制日志文件,MHA仍然能够完成故障转移,但可能会导致部分数据丢失,建议定期备份数据并使用半同步复制来降低数据丢失的风险。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接