MySQL高可用之MHA实战

MySQL高可用之MHA架构企业实战 MHA目前在MySQL高可用方面是一个相对成熟的解决方案,最近客户需求,特分享部署方案给大家 阅读详情

MHA实战

要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台master,一台充当备用master,另外一台充当从库。

MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master,整个故障转移过程对应用程序完全透明。

一、环境准备

1. 服务器规划(至少3节点)

角色主机名IP地址说明
Mastermha-node1192.168.221.20主库
Slave1mha-node2192.168.221.30从库(候选主库)
Slave2mha-node3192.168.221.31从库
Managermha-manager192.168.221.40MHA管理节点(独立服务器)

2. 基础配置(所有节点)

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
​
# 关闭SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
​
# 配置hosts(所有节点一致)
cat >> /etc/hosts << EOF
192.168.221.20 mha-node1
192.168.221.30 mha-node2
192.168.221.31 mha-node3
192.168.221.40 mha-manager
EOF
​
# 配置SSH免密登录——所有节点执行
#(manager节点需免密登录所有数据库节点,数据库节点间也需互信)
ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa
for host in mha-node1 mha-node2 mha-node3; do
  ssh-copy-id -i ~/.ssh/id_rsa.pub $host
done

二、部署MySQL 8.0主从复制

1. 安装MySQL 8.0(所有数据库节点)

# 这里使用MySQL安装脚本
cd /usr/local/src
wget http://192.168.56.200/Software/mysql_install.sh
bash mysql_install.sh
bash

2. 配置MySQL(主从差异化配置)

Master(mha-node1)配置

vim /etc/my.cnf
[mysqld]
# ...
# 在默认配置下方添加:
server-id=20       # 唯一ID
log_bin=mysql-bin  # 开启binlog
binlog_format=ROW  # ROW模式(MHA推荐)
gtid_mode=ON       # 开启GTID
enforce_gtid_consistency=ON  # 强制GTID一致性
log_slave_updates=ON  # 从库同步时记录binlog(用于级联复制)
skip_name_resolve=ON  # 跳过域名解析
systemctl restart mysqld

Slave(mha-node2/mha-node3)配置

# mha-node2(server-id=30)
vim /etc/my.cnf
[mysqld]
# ...
server-id=30         # 唯一ID(mha-node3设为31)
log_bin=mysql-bin
binlog_format=ROW
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=ON
skip_name_resolve=ON
relay_log=relay-bin  # 开启中继日志
read_only=ON         # 从库只读(可选)
systemctl restart mysqld

3. 搭建主从复制(基于GTID)

在Master(mha-node1)创建复制用户

# MySQL 8.0默认认证插件为caching_sha2_password,MHA需用mysql_native_password
mysql -uroot -proot123
CREATE USER 'repl'@'192.168.221.%' IDENTIFIED WITH mysql_native_password BY 'Repl@123';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.221.%';
​
FLUSH PRIVILEGES;

在Slave(mha-node2/mha-node3)配置复制

# 登录Slave的MySQL
mysql -uroot -proot123
# 在从服务器设置同步
CHANGE MASTER TO
  MASTER_HOST='mha-node1',
  MASTER_USER='repl',
  MASTER_PASSWORD='Repl@123',
  MASTER_PORT=3306,
  MASTER_AUTO_POSITION=1;  # 基于GTID自动定位

# 如果192.168.221.30出错了,那就查看状态,要是显示是off,就通过下面打开
show variables like 'gtid_mode';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
|    gtid_mode     | OFF   |
+----------------------+-------+
mysql> SET GLOBAL gtid_mode = OFF_PERMISSIVE;
mysql> SET GLOBAL enforce_gtid_consistency = ON;
mysql> SHOW STATUS LIKE 'Transactions_without_gtids';
Empty set (0.02 sec)
mysql> SET GLOBAL gtid_mode = ON_PERMISSIVE;
mysql> SHOW STATUS LIKE 'Transactions_without_gtids';
Empty set (0.00 sec)
mysql> SET GLOBAL gtid_mode = ON;
mysql> show variables like 'gtid_mode';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| gtid_mode        | ON    |
+---------------------+-------+
然后返回去change设置同步(重要!!!别忘记设置同步!!!)

# 启动复制
START SLAVE;
# 检查复制状态(,如果不能查看就退出重新登录MySQL,确保Slave_IO_Running和Slave_SQL_Running均为Yes)
SHOW SLAVE STATUS\G;

三、部署MHA

1. 安装依赖(所有节点)

CentOS7安装依赖

# 配置本地Yum源
vim /etc/yum.repos.d/CentOS-Media.repo
​# 添加以下
[c7-media]
name=CentOS-7 - Media
baseurl=file:///media/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
​
# 挂载光盘
mount /dev/cdrom /media
​
# 安装wget(如果已经有了可以不下载)
yum install -y wget
​
# 配置网络Yum源(下载阿里yum仓库)
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 配置Yum扩展源
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
# 安装Perl依赖(MHA基于Perl开发)
yum clean all
yum makecache
yum install -y perl-DBD-MySQL perl-CPAN perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
yum install -y perl-Email-Sender perl-Email-Valid perl-Mail-Sender

或者Ubuntu22.04安装依赖包

sudo apt install -y perl libdbi-perl libdbd-mysql-perl libperl-dev libconfig-tiny-perl liblog-dispatch-perl libparallel-forkmanager-perl

2. 安装MHA包

下载MHA源码包

# 管理节点下载
wget http://192.168.56.200/Software/mha4mysql-manager-0.58.tar.gz
# 所有节点下载
wget http://192.168.56.200/Software/mha4mysql-node-0.58.tar.gz

安装MHA Node(所有节点)

tar -zxvf mha4mysql-node-0.58.tar.gz
cd mha4mysql-node-0.58
perl Makefile.PL
make && make install

安装MHA Manager(仅manager节点)

tar -zxvf mha4mysql-manager-0.58.tar.gz
cd mha4mysql-manager-0.58
perl Makefile.PL
make && make install
# 创建MHA工作目录
mkdir -p /etc/mha/mha_cluster /var/log/mha/mha_cluster

manager组件安装后在/usr/local/bin下面会生成几个工具,主要包括以下几个:

  • masterha_check_ssh 检查 MHA 的 SSH 配置状况

  • masterha_check_repl 检查 MySQL 复制状况

  • masterha_manger 启动 manager的脚本

  • masterha_check_status 检测当前 MHA 运行状态

  • masterha_master_monitor 检测 master 是否宕机

  • masterha_master_switch 控制故障转移(自动或者手动)

  • masterha_conf_host 添加或删除配置的 server 信息

  • masterha_stop 关闭manager

node组件安装后也会在/usr/local/bin 下面会生成几个脚本(这些工具通常由 MHAManager 的脚本触发,无需人为操作)主要如下:

  • save_binary_logs 保存和复制 master 的二进制日志

  • apply_diff_relay_logs 识别差异的中继日志事件并将其差异的事件应用于其他的 slave

  • filter_mysqlbinlog 去除不必要的 ROLLBACK 事件

  • purge_relay_logs 清除中继日志(Relay-log)

3. 配置MHA

创建MHA配置文件(全文粘贴到manager节点)

cat > /etc/mha/mha_cluster.cnf << EOF
[server default]
# MHA管理用户(需在所有MySQL节点创建)
user=mha_user
password=mha@123
# SSH登录用户
ssh_user=root
# MySQL复制用户
repl_user=repl
repl_password=Repl@123
# 健康检查间隔(秒)
ping_interval=1
# master的binlog目录
master_binlog_dir=/usr/local/mysql/data
# 远程节点临时目录
remote_workdir=/tmp
# 二次检查节点
secondary_check_script=masterha_secondary_check -s mha-node2 -s mha-node3
# manager工作目录
manager_workdir=/var/log/mha/mha_cluster
# manager日志
manager_log=/var/log/mha/mha_cluster/manager.log
​
[server1]
hostname=mha-node1
port=3306
# 不优先作为候选主库
candidate_master=0
​
[server2]
hostname=mha-node2
port=3306
# 优先作为候选主库(数据最新时)
candidate_master=1
# 忽略复制延迟,强制作为候选
check_repl_delay=0
​
[server3]
hostname=mha-node3
port=3306
candidate_master=0
EOF

创建MHA管理用户(所有MySQL节点)

# 主服务器用root登录mysql,创建用户,两个从服务器就都有了
CREATE USER 'mha_user'@'192.168.221.%' IDENTIFIED WITH mysql_native_password BY 'mha@123';
GRANT ALL PRIVILEGES ON *.* TO 'mha_user'@'192.168.221.%';
FLUSH PRIVILEGES;

四、验证MHA配置

1. 检查SSH连接(manager节点)

masterha_check_ssh --conf=/etc/mha/mha_cluster.cnf
# 输出"All SSH connection tests passed successfully."即为正常

2. 检查主从复制(manager节点)

masterha_check_repl --conf=/etc/mha/mha_cluster.cnf
# 输出"MySQL Replication Health is OK."即为正常

五、启动MHA Manager

# 前台启动(测试用,日志实时输出)
masterha_manager --conf=/etc/mha/mha_cluster.cnf
# 后台启动(生产用)
nohup masterha_manager --conf=/etc/mha/mha_cluster.cnf > /var/log/mha/mha_cluster/nohup.log 2>&1 &
# 检查MHA状态
masterha_check_status --conf=/etc/mha/mha_cluster.cnf
# 输出"mha_cluster (pid: xxxx) is running(0:PING_OK)"即为正常运行

六、测试故障切换

1. 模拟Master故障(在mha-node1执行)

# 停止主库服务
systemctl stop mysqld 

2. 观察故障切换(manager节点日志)

tail -f /var/log/mha/mha_cluster/manager.log
# 正常情况下,日志会显示:
# - 检测到master故障
# - 提升mha-node2为新master
# - 其他slave(mha-node3)指向新master

3. 验证切换结果

# 在新master(mha-node2)查看状态
mysql -uroot -p -e "SELECT @@server_id, @@read_only;"
# 应显示server_id=30,read_only=OFF或者0
# 在mha-node3查看复制状态
mysql -uroot -p -e "SHOW SLAVE STATUS\G"
# 应显示Master_Host为mha-node2,且复制正常

七、故障恢复后处理

  1. 修复原master(mha-node1),重新安装MySQL并配置为新master(mha-node2)的从库。

  2. 重新启动MHA Manager(故障切换后Manager会自动退出):

nohup masterha_manager --conf=/etc/mha/mha_cluster.cnf > /var/log/mha/mha_cluster/nohup.log 2>&1 &

注意事项

  1. MySQL 8.0兼容性:需使用MHA 0.58版本,且用户认证插件必须为mysql_native_password。

  2. GTID依赖:建议开启GTID,减少MHA切换时的binlog定位复杂度。

  3. 候选主库选择:candidate_master=1的节点应尽量与原master数据一致(复制延迟小)。

  4. 日志监控:定期检查MHA日志,及时发现潜在问题(如SSH连接失败、复制延迟等)。

通过以上步骤,即可完成MySQL 8.0环境下的MHA高可用部署,实现主库故障时的自动切换,提升数据库服务可用性。

八、MHA与VIP(虚拟IP)集成配置

在MHA架构中,虽然其核心功能是实现主从自动切换,但应用程序通常通过固定IP地址连接数据库。为避免主库切换后需手动修改应用连接地址,可引入VIP(虚拟IP) 实现IP漂移——VIP始终绑定当前主库节点,切换时自动迁移至新主库,确保应用无感知。

“虚拟 IP”(Virtual IP,简称 VIP)是一个在网络技术中常见的概念,指的是不直接绑定到特定物理网络接口(如网卡)的 IP 地址,而是通过软件或网络设备(如路由器、负载均衡器)逻辑分配和管理的 IP 地址。它的核心作用是实现网络服务的高可用性、负载均衡、故障转移等功能。

一、VIP规划与原理

1.VIP设定:为MHA集群分配一个独立的虚拟IP(如192.168.8.100),不直接绑定到某台物理机,而是随主库节点动态迁移。

2.实现逻辑:通过MHA的master_ip_failover脚本,在主库故障切换时自动执行以下操作:

  • 从原主库(故障节点)移除VIP;

  • 在新主库(提升的slave)绑定VIP;

  • 确保VIP在网络中唯一,避免冲突。

二、VIP配置步骤

1. 环境准备(所有节点)

确保所有节点支持VIP配置,关闭网络管理工具(如NetworkManager)对VIP的干扰:

# 关闭NetworkManager(避免自动清理VIP)
systemctl stop NetworkManager && systemctl disable NetworkManager
​
# 安装arping工具(用于发送ARP广播,刷新网络缓存)
# CentOS
yum install -y arping
# Ubuntu
apt install -y arping

2. 编写VIP切换脚本

在MHA Manager节点创建master_ip_failover脚本(用于控制VIP漂移),路径为/etc/mha/master_ip_failover:

#!/usr/bin/perl
use strict;
use warnings FATAL => 'all';
use Getopt::Long;
​
# VIP配置
my $vip = '192.168.8.100/24';  # 虚拟IP及子网掩码
my $key = '0';                 # 虚拟网卡标识(如需)
my $dev = 'eth0';              # 物理网卡名称(根据实际环境修改)
​
# 解析MHA传递的参数
my ($command, $ssh_user, $orig_master_host, $orig_master_ip, $orig_master_port, $new_master_host, $new_master_ip, $new_master_port);
GetOptions(
  'command=s' => \$command,
  'ssh_user=s' => \$ssh_user,
  'orig_master_host=s' => \$orig_master_host,
  'orig_master_ip=s' => \$orig_master_ip,
  'orig_master_port=i' => \$orig_master_port,
  'new_master_host=s' => \$new_master_host,
  'new_master_ip=s' => \$new_master_ip,
  'new_master_port=i' => \$new_master_port,
);
​
# 执行VIP操作的函数
sub exec_cmd {
  my $cmd = shift;
  my $result = system($cmd);
  if ($result != 0) {
    die "Failed to execute: $cmd\n";
  }
}
​
# 从原主库移除VIP
if ($command eq "stop" || $command eq "stopssh") {
  print "Removing VIP $vip from old master $orig_master_host...\n";
  exec_cmd("ssh $ssh_user\@$orig_master_host \"ip addr del $vip dev $dev; arping -c 3 -I $dev $vip\"");
}
​
# 在新主库绑定VIP
elsif ($command eq "start") {
  print "Adding VIP $vip to new master $new_master_host...\n";
  exec_cmd("ssh $ssh_user\@$new_master_host \"ip addr add $vip dev $dev; arping -c 3 -I $dev $vip\"");
}
​
# 忽略其他命令
elsif ($command eq "status") {
  exit 0;
}
​
exit 0;

给脚本添加执行权限:

chmod +x /etc/mha/master_ip_failover

3. 集成VIP脚本到MHA配置

修改MHA配置文件/etc/mha/mha_cluster.cnf,添加VIP脚本路径:

[server default]
# ... 原有配置 ...
# 添加VIP切换脚本
master_ip_failover_script=/etc/mha/master_ip_failover

4. 初始化VIP(首次部署)

手动在当前主库(mha-node1)绑定VIP:

# 在mha-node1执行
ip addr add 192.168.8.100/24 dev eth0  # 绑定VIP到网卡
arping -c 3 -I eth0 192.168.8.100     # 发送ARP广播,通知网络设备更新缓存

验证VIP绑定:

ip addr show eth0 | grep 192.168.8.100
# 输出包含"192.168.8.100/24"即为成功

三、验证VIP漂移功能

1. 重启MHA Manager

使VIP配置生效:

# 先停止原有MHA进程
masterha_stop --conf=/etc/mha/mha_cluster.cnf
​
# 后台重启
nohup masterha_manager --conf=/etc/mha/mha_cluster.cnf > /var/log/mha/mha_cluster/nohup.log 2>&1 &

2. 模拟主库故障(同前文步骤)

在原主库(mha-node1)停止MySQL服务:

systemctl stop mysqld

3. 检查VIP漂移结果

  • 查看MHA日志:确认脚本执行成功

tail -f /var/log/mha/mha_cluster/manager.log
# 应包含"Removing VIP from old master"和"Adding VIP to new master"的成功日志

  • 验证新主库VIP:在mha-node2(新主库)执行

ip addr show eth0 | grep 192.168.8.100
# 输出包含VIP即为漂移成功

  • 应用连接测试:通过VIP连接数据库,验证可用性

mysql -h 192.168.8.100 -u root -p
# 能成功登录即表示应用无感知切换

四、VIP配置注意事项

  1. 网络兼容性:确保交换机、防火墙支持VIP漂移(允许同一IP在不同节点间切换),避免因网络策略导致VIP不可用。

  2. ARP缓存刷新:脚本中arping命令用于强制更新网络中其他设备的ARP缓存,必须添加,否则可能出现VIP切换后短时间无法访问的问题。

  3. 脚本权限:master_ip_failover脚本需保证MHA Manager用户(通常为root)有执行权限,且SSH免密登录对所有节点生效(否则脚本无法远程执行命令)。

  4. 故障恢复后处理:原主库修复后,需手动将其作为新主库的从库,不要手动绑定VIP(VIP应由MHA脚本自动管理)。

通过集成VIP,MHA集群可实现“主库切换+IP漂移”全自动化,进一步降低故障对应用的影响,提升整体高可用能力。

MySQL高可用集群架构MHA企业级实战 MHA(Master High Availability)目前在 MySQL 高可用方面是一个相对成熟的解决方案,它由日本 DeNA 公司的 youshimaton(现就职于 Facebook 公司)开发,是一套优秀的作为 MySQL 高可用性环境下故障切换和主从提升的高可用软件。自动的在MASTER宕机后选举新的SLAVE作为MASTER,保证服务不被中断自动的在MASTER宕机后将所有未被选举为新MASTER的SLAVE重新指向新的MASTER并启动复制。 阅读详情

相关推荐

MySQL高可用必杀技:MHA架构从原理到实战,让你的数据库永不宕机!

MySQL高可用性解决方案MHA(Master High Availability)在电商平台等关键业务场景中发挥着重要作用,能够在主库故障时快速完成自动故障转移,减少数据库不可用时间。MHA由MHA Manager、MHA Node、MySQL主库和从库组成,通过定期健康检查、数据一致性验证和差异binlog应用等机制,确保故障转移的快速性和数据一致性。MHA的优势包括快速故障转移(通常10-30秒)、数据一致性保障、无需共享存储、兼容性强等。部署MHA需要准备环境、安装MySQL并配置主从复制....

专注于编程、AI、人工智能等多个领域内容研究和分析 606

MySQL(MHA高可用集群)

目录 一、MHA 1、简介 2、MHA特点 3、半同步、全同步及异步 二、MHA实验 (1)、 实验环境 (2)配置MHA (3)配置无密码认证 (4)配置MHA (5)测试 1、测试无密码认证,如果正常会输出successfully 2、测试主从复制 3、测试VIP地址是否能够漂移 一、MHA 1、简介 ⭐MHA目前在MySQL高可用方面是一个相对成熟的解决方案,但是在搭建的过程中容易报错,且MHA的构建综合了主从复制,所以MHA安装时需要严格执行每一个部署 ...

ruocheng6的博客 1106

mha4mysql.zip

mha4mysql-manager-0.57-0.el7.noarch.rpm和mha4mysql-node-0.57-0.el7.noarch.rpm

数据库之MHA高可用集群部署及故障切换

------------------------组件解释----------------------------------------------------------------------------------#--------------------------配置文件解释--------------------------------------------------------------------------#代表此变量值为ifconfig ens33:1 down。

m0_74848517的博客 761

mha4mysql安装包.zip

MHA 软件包

爬虫风控实战:当你的代理IP被数美滑块盯上时,如何优雅破解?

本文深入探讨了爬虫风控对抗中数美滑块验证码的破解与防御策略。通过分析数美滑块的多层防御机制,提出了代理IP池精细化管理、请求特征拟人化改造以及工程化滑块验证解决方案等系统性方法,帮助开发者有效降低验证码触发率,提升爬虫效率。

weixin_27419879的博客 206

MySQL运维DBA-MySQL高可用架构系列005篇-mha4mysql-manager已停更,生产环境你还敢使用吗?

1、由于MHA(mha4mysql-manager)工具在2018年已经停止维护更新,且不支持GTID复制模式。2、目前主流版本MySQL 5.7和8.0的复制模式是基于Gtid,因事务号是唯一的,更改同步复制源不需要知道binlog文件名和position位置点,看来开源的尽头是商业和资本化啊。MHA-Re-Edition 复刻版简介的相关介绍链接如下。

老韩的Linux云计算架构师进阶之路 915

基于ARDUINIO的5路红外循迹小车

基于ARDUINIO的5路红外循迹小车 新手抄袭了很多大神的代码。这里表示感谢。 #define STOP 0 #define FORWARD 1 #define BACKWARD 2 #define STURNLEFT 3 #define STURNRIGHT 4 #define TURNLEFT 5 #define TURNRIGHT 6 #define TURNRIGHT90 7 #define TURNLEFT90 8 int leftA_PIN = A0; int

weixin_48214416的博客 4381

基于MHA的MySQL高可用集群搭建

基于MHA的MySQL集群架构搭建

權llll的博客 2516

Setup&Hold互卡问题和Useful Skew的影响

setup和hold互卡问题分析

godping的博客 5092

从零构建XVC协议栈:FPGA+W5300的跨界调试架构实战

本文详细介绍了如何从零构建XVC协议栈,通过FPGA与W5300以太网控制器的创新组合实现跨界调试架构。重点解析了JTAG时序逆向、TCP/IP协议栈集成与XVC协议实现,提供了硬件设计优化和性能加速技术,为嵌入式开发者和FPGA工程师提供实用的远程调试解决方案。

raspberrypi5的博客 247

MySQL高可用实战(MHA)

MySQL高可用实战(MHA)

YIYIYI 1344

让 ABAP Screen Variant 安稳上车:SHD0 与 SHD0_MANDT 的 Transport 全攻略

摘要: SAP项目常需优化交易码界面,通过SHD0的Transaction Variant和Screen Variant可实现字段精简、默认值预设及权限控制,避免修改标准代码。但跨系统迁移时易出现变式丢失或版本兼容问题。核心概念包括: Screen Variant:针对单个屏幕的字段属性配置(跨Client); Transaction Variant:串联多屏幕变式(分跨Client和Client-specific); 版本差异:4.70/6.x后需区分SHD0(跨Client)与SHD0_MANDT(Cl

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 225

MySQL高可用方案MHA实战解析

MySQL高可用解决方案MHA能在主库故障时快速将从库提升为新主库,减少宕机时间。它由管理节点(监控主库状态、执行切换)和数据库节点(主库+从库)组成,通过SSH连接检测故障,优先选择候选主库进行切换,并同步其他从库。MHA优势包括数据丢失少(抢救未同步binlog)、切换快(10-30秒)、兼容性好。典型架构包含管理节点和数据库节点,配置SSH免密登录和复制账号。局限性包括需手动恢复旧主库、不支持多主架构。相比Keepalived和Group Replication,MHA更适合对数据一致性要求高的中小规

m0_74949561的博客 955

【国产MCU系列】-GD32F4开发环境搭建(基于Embedded Builder)

GD32F4系列MCU采用Arm® Cortex®-M4内核,处理器主频高达240MHz,可支持算法复杂度更高的嵌入式应用,具备更快速的实时处理能力,并拥有业界领先的大容量存储优势。

视觉与物联智能 3078

华为OD技术面真题 - Python开发 - 1

汇总华为OD技术面八股Python八股,高频技术真题并提供详细解答。

qq_45776114的博客 1716

MySQL高可用实战——MHA保姆级配置

MHA(Master High Availability)是一款开源的MySQL高可用解决方案,可自动实现主库故障检测和主从切换。本文详细介绍了MHA的部署过程:首先准备4台服务器,安装配置MySQL主从复制;然后设置SSH免密登录,安装MHA组件;接着配置MHA并启动监控服务。通过模拟主库宕机测试,验证MHA能自动提升从库为新主库并保持数据同步。最后指导如何恢复原主库并重新加入集群。MHA显著提高了MySQL的高可用性,故障转移时间仅需10-30秒,是读多写少业务场景的理想选择。

2301_81371198的博客 2417

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

MySQL高可用MHA实战

MySQL高可用架构MHA介绍 简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故...

weixin_30746117的博客 171

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

企业中MySQL主流高可用架构实战三部曲之MHA

老张最近两天有些忙,一些老铁一直问,啥时更新博文,我可能做不到天天更新啊,但保证以后一有空就写一些干货知识分享给大家。 我们如果想要做好技术这项工作,一定要做到理论与实践先结合。我一个曾经被数据库虐得体无完肤的过来人给大家一些建议;就是只看书,背理论真的行不通,到时遇到棘手的问题,你还是一样...

chuiwubi7749的博客 187

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

MySQL高可用MHA实战指南

MHA(Master High Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA 的出现就是解决MySQL 单点的问题。MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。

qq_26422089的博客 876

32 MySQL MHA 高可用架构详解与实战部署指南

在现代数据库运维体系中,高可用性(High Availability, HA)已成为核心要求。本文档系统整理了的核心理论与完整实验流程,涵盖其架构组成、工作原理、部署配置及故障切换模拟等内容。MHA 是一套用于保障 MySQL 主从高可用性的成熟开源解决方案,由日本工程师 Yoshinori Matsunobu 开发。它能在主库宕机时0–30 秒内完成自动故障转移,并最大程度保证数据一致性,是许多企业级 MySQL 架构中的首选高可用方案。

qq_37720414的博客 947

Linux:MYSQL(十五)-高可用MHA实战

MySQL高可用 MMM: 年久失修用的少了 Multi-Master Replication Manager for MySQL,Mysql主主复制管理器是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的) 官网:http://www.mysql-mmm.o...

杜达达的博客 378

视频教程-MySQL MHA高可用集群实战视频教程-MySQL

MySQL MHA高可用集群实战视频教程 Oracle OCM顶级认证,PM...

weixin_34005864的博客 340

MHA 高可用 MySQL 架构实战部署

本文详细介绍了MySQL MHA高可用集群的搭建与实践。首先阐述了MHA的核心功能和原理,包括自动故障转移、GTID支持和极低宕机时间等特点。随后通过实验环境搭建展示了具体实施步骤:从系统准备、MySQL主从配置,到MHA Manager和Node的安装部署。重点讲解了ProxySQL的联动配置和故障切换验证过程,包括模拟主库宕机、自动选举新主库、数据同步验证等关键环节。最后提供了原主库恢复为从库的完整数据恢复方案。整个方案实现了MySQL主库故障时的自动切换,确保业务高可用性和数据一致性。

m0_75006854的博客 2290

【MySQL数据库】MySQL 高可用搭建方案——MHA实战

MHA(Master High Availability)是一个用于MySQL数据库的高可用性解决方案,它能够自动监控主数据库的状态,并在主数据库发生故障时自动切换到备数据库以实现高可用性。Manager节点:负责监控主数据库和备数据库的状态,并在主数据库故障时自动切换到备数据库。Manager节点也负责管理配置文件和日志。Master节点:主数据库。负责处理读写操作并将更改同步到备数据库。Slave节点:备数据库。与主数据库保持同步,并在主数据库故障时接管其角色。

翡翠泪滴的博客 3977
上一篇: MyCAT的五台主从配置与哈希分片
下一篇: MySQL编程开发(了解)
chen_note
博客等级 码龄1年 251粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值