MySQL高可用之MHA(一不小心和我的青春擦肩而过)(三)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL高可用之MHA(一不小心和我的青春擦肩而过)(三)

3.3 模拟故障


在Mysql1上停止mysql服务,MHA 会自动修改 app1.cnf 文件内容,将宕机的 mysql1 节点删除。 mysql2 会自动接管 VIP,成为新的master

##(1)在 Master 节点 Mysql1 上停止mysql服务
 systemctl stop mysqld
 pkill -9 mysql
 ##(2)在 manager 节点上监控观察日志记录
 tail -f /var/log/masterha/app1/manager.log
 Master 192.168.72.192(192.168.72.192:3306) is down!  #监控到master宕机
 Selected 192.168.72.60(192.168.72.60:3306) as a new master.  #选举mysql2成功新的master
 ##(3)正常自动切换一次后,MHA 进程会退出。MHA 会自动修改 app1.cnf 文件内容,将宕机的 mysql1 节点删除。
 vim /etc/masterha/app1.cnf   #查看manager节点的配置文件
 ##(4)查看 mysql2 是否接管 VIP
 ifconfig


故障切换备选主库的算法:


1.一般判断从库的是从(position/GTID)判断优劣,数据有差异,最接近于master的slave,成为备选主。


2.数据一致的情况下,按照配置文件顺序,选择备选主库。


3.设定有权重(candidate_master=1),按照权重强制指定备选主。


(1)默认情况下如果一个slave落后master 100M的relay logs的话,即使有权重,也会失效。


(2)如果 check_repl_delay=0 的话,即使落后很多日志,也强制选择其为备选主。







3.4 故障修复


3.4.1 修复mysql1(即修复原来的主节点)

systemctl restart mysqld


3.4.2 修复主从数据

#在新的主库服务器 Mysql2 中查看二进制日志文件和同步点
mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 |     1747 |              |                  |                   |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)  
 #在原主库服务器 mysql1 执行同步操作,同步现在主库中的数据
 change master to master_host='192.168.72.132',master_user='myslave',master_password='000000',master_log_file='master-bin.000001',master_log_pos=1747;
 start slave;


在新的主库服务器 Mysql2 查看二进制日志文件和同步点



在原主库服务器 mysql1 执行同步操作,同步现在主库中的数据



3.4.3 在 manager 节点上修改配置文件app1.cnf

[root@manager ~]# vim /etc/masterha/app1.cnf
[server default]
manager_log=/var/log/masterha/app1/manager.log
manager_workdir=/var/log/masterha/app1
master_binlog_dir=/usr/local/mysql/data
master_ip_failover_script=/usr/local/bin/master_ip_failover
master_ip_online_change_script=/usr/local/bin/master_ip_online_change
password=manager
ping_interval=1
remote_workdir=/tmp
repl_password=000000
repl_user=myslave
secondary_check_script=/usr/local/bin/masterha_secondary_check -s 192.168.109.131 -s 192.168.109.133
shutdown_script=""
ssh_user=root
user=mha
[server1]
hostname=192.168.109.132
port=3306
[server2]
candidate_master=1
check_repl_delay=0
hostname=192.168.109.131
port=3306
[server3]
hostname=192.168.109.133
port=3306


3.4.4 在 manager 节点上启动 MHA

[root@manager ~]# nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &
[1] 3223



解决中英字不兼容报错的问题


dos2unix /usr/local/bin/master_ip_failover

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
SQL 容灾 关系型数据库
rds容灾与高可用
rds容灾与高可用
95 4
|
6月前
|
存储 关系型数据库 MySQL
Mysql高可用|索引|事务 | 调优
Mysql高可用|索引|事务 | 调优
|
13天前
|
存储 SQL 关系型数据库
Mysql高可用架构方案
本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
73 3
Mysql高可用架构方案
|
3月前
|
运维 容灾 关系型数据库
MySQL高可用方案--Xenon全解
MySQL高可用方案--Xenon全解
|
3月前
|
SQL 关系型数据库 MySQL
orchestrator搭建mysql高可用
orchestrator搭建mysql高可用
45 0
|
3月前
|
缓存 关系型数据库 MySQL
如何实现mysql高可用集群
如何实现mysql高可用集群
40 0
|
5月前
|
运维 容灾 关系型数据库
介绍几种 MySQL 官方高可用方案
MySQL 官方提供了多种高可用部署方案,从最基础的主从复制到组复制再到 InnoDB Cluster 等等。本篇文章以 MySQL 8.0 版本为准,介绍下不同高可用方案架构原理及使用场景。
1174 3
介绍几种 MySQL 官方高可用方案
|
3月前
|
安全 关系型数据库 MySQL
【MySQL】Orchestrator最简单的 mysql 高可用方案最细细细细~
【MySQL】Orchestrator最简单的 mysql 高可用方案最细细细细~
|
3月前
|
缓存 关系型数据库 MySQL
MySQL调优秘籍曝光!从索引到事务,全方位解锁高可用秘诀,让你的数据库性能飞起来!
【8月更文挑战第6天】MySQL是顶级关系型数据库之一,其性能直接影响应用的高可用性与用户体验。本文聚焦MySQL的高性能调优,从索引设计到事务管理,逐一解析。介绍如何构建高效索引,如联合索引`CREATE INDEX idx_order_customer ON orders(order_id, customer_id);`,以及索引覆盖查询等技术。
79 0
|
5月前
|
SQL 关系型数据库 MySQL
MySQL高可用架构设计:从主从复制到分布式集群
MySQL高可用性涉及主从复制、半同步复制和Group/InnoDB Cluster。主从复制通过二进制日志同步数据,保证故障时可切换。半同步复制确保事务在至少一个从服务器确认后才提交。Group Replication是多主复制,支持自动故障切换。InnoDB Cluster是8.0的集成解决方案,简化集群管理。使用这些技术能提升数据库的稳定性和可靠性。
482 2