执行主从切换脚本等
发布时间:2025-06-24 04:00:54 作者:北方职教升学中心 阅读量:216
实现MHA
实现MHA高可用,首先是在实现主从复制的基础之上
环境准备
IP地址 | 类型 | 安装软件 | 安装目录 |
192.168.83.20 | MySQL主服务器 | mysql5.7、 故障检测与转移: MHA Manager通过心跳检测判断主库是否宕机,并根据预设策略选取合适的从库晋升为主库。 8.2 测试主从复制情况 在测试之前,确保你的MySQL配置文件(/etc/my.cnf)的 [client] 字段没有default-character-set=utf8这个参数,因为这个参数在较早版本的MySQL或mysqlbinlog工具中,可能并不支持在命令行中直接设置字符集变量。 配置文件: MHA的配置文件(如app1.cnf)中包含了集群中所有MySQL服务器的详细信息,如主机名、 自动故障转移:基于预定义的故障转移策略,如优先级、 MHA Node(数据节点): MHA Node指的是参与MySQL主从复制集群中的所有数据库服务器,包括原来的主节点和从节点。执行主从切换脚本等。可能的值包括 STATEMENT、 (四)管理节点与数据节点MHA Manager(管理节点): MHA Manager是一个中心化的管理组件,通常部署在独立的服务器上,不直接处理数据库的读写请求。 (二)MHA集群原理MHA由两部分构成:MHA Manager(管理节点)和MHA Node(数据节点)。 修改完毕之后重新启动服务:systemctl restart mysqld 另一台从服务器同样操作 slave2配置 注意server-id的值不能与其它MySQL服务器相同,且本服务器不需要开启二进制日志
4.主从共同操作在主服务器与从服务器上进行的操作 4.1 创建软链接 将/usr/local/mysql/bin/下的mysql命令与mysqlbinlog命令创建软链接到/usr/sbin目录下, 4.2 用户授权 登录MySQL主服务器,给用户授权 5.从服务操作5.1 连接主服务器 两台从服务器连接主服务器 通过执行SQL语句,连接到主服务器
使用:show master status; 指令查询主服务器二进制日志状态的命令 File:当前二进制日志(Binary Log)文件的名称 Position:在当前二进制日志文件中的下一个事件(event)的位置。 master_password='123456'#提供主服务器上的复制用户对应的密码,此处仅为示例,实际环境中请使用安全强度更高的密码。MHA集群介绍 (一)什么是MHAMHA(Master High Availability)是一款专为MySQL设计的开源高可用解决方案,主要用于实现MySQL数据库的故障转移和主从复制管理,从而提高数据库服务的可靠性与可用性。配置更新等工作。 主节点主要负责处理写入请求和生成二进制日志,而从节点则通过复制主节点的二进制日志来保持数据同步,并在必要时准备晋升为主节点。 binlog_format = MIXED#binlog_format 参数用于设置二进制日志记录格式。这样一来,如果从服务器又被其他从服务器复制,那么这个从服务#器也可以成为新的主服务器,形成级联复制链。MHA node 组件 | /usr/local/mysql |
192.168.83.60 | MySQL从服务器2 | mysql5.7、在主从复制的MySQL集群中,MHA Manager负责监控主节点的健康状况,当主节点出现故障时,MHA Manager会自动选举出一个从节点升级为主节点,并协调其余从节点重新连接至新的主节点,实现无缝的故障转移。 目录 引言 一、#接收到主服务器的二进制日志事件后,这些事件会先写入到中继日志中,然后再从中继日志中读取并执行#这里设置为relay-log-bin,那么生成的中继日志文件会是类似于relay-log-bin.000001这样的格式。
2.配置master服务器2.1 修改配置文件 在/etc/my.cnf文件中添加下图字段,开启二进制日志
7.设置虚拟VIP在MHA节点服务器上设置虚拟VIP,客户端通过该地址访问数据库,当master服务器宕机后,会将该地址转移到备用主服务器上(slave1服务器),不会影响客户体验 8.进行环境测试8.1 测试ssh免密认证 执行:masterha_check_ssh -conf=/etc/masterha/app1.cnf 命令
执行此命令时,MHA会读取该配置文件并尝试通过SSH连接到每个服务器,如果所有连接都能成功建立,会显示successfully 。< /dev/null#标准输入重定向到/dev/null,意味着命令运行时不接收任何键盘输入。check_repl_delay=0 #设置在故障转移前检查复制延迟的最大限制(单位:秒),#这里设置为0,表示不检查复制延迟,立即进行故障转移。masterha_manager#是MHA工具集中用于管理MySQL主从复制集群的命令,它负责监控主从复制状态,处理故障转移等任务。 3.配置slave服务器配置从服务器接收 在/etc/my.cnf文件中添加以下字段
10.查看信息通过命令或者查看日志的方式,查看当前的master是谁 11.模拟故障关闭master的mysql服务:systemctl stop mysqld 可以在/var/log/masterha/app1/manager.log日志中看到从服务器1成为master的信息 VIP地址也成功转移到slave1服务器上 12.故障恢复12.1 修改原master服务器 修改配置文件//etc/my.cnf,开启中继日志 重启原master服务器,并将原master服务器设置为slave服务器 重新启动MySQL服务:systemctl start mysqld 12.2 修改manager节点配置文件 修改manager节点的/etc/masterha/app1.cnf 配置文件 重新启动manager节点 进行测试 总结MHA集群是实现MySQL服务主从复制高可用的重要环节 MySQL作为生产环境中最常用,也是非常重要的服务,它的优化也非常重要。实现MHA (一)搭建主从复制环境 1.搭建时间同步 2.配置master服务器 3.配置slave服务器 4.主从共同操作 5.从服务操作 (二)安装MHA所有组件 1.安装依赖环境 2.安装node软件包 3.安装manager组件 4.配置ssh免密登录 5.在manager节点上配置MHA 6.创建MHA软件目录 7.设置虚拟VIP 8.进行环境测试 9.启动MHA 10.查看信息 11.模拟故障 12.故障恢复 总结 引言在当今高度依赖数据库的应用场景中,MySQL数据库的高可用性显得尤为重要。这里创建了一个名为 'myslave' 的用户,并且允许来自#192.168.83.0/24网段内的任何IP地址连接。 执行:masterha_check_repl -conf=/etc/masterha/app1.cnf命令
9.启动MHA在manager节点上启动 MHA
修改完毕之后重新启动服务:systemctl restart mysqld
| /usr/local/mysql |
192.168.83.40 | MySQL从服务器1 | mysql5.7、 master_log_pos=603#与master_log_file配合使用,指定从主服务器二进制日志文件的哪个位置开始读取和执行事件,#这里的值603代表从该文件的第603个字节位置开始。如果出现连接失败的情况,MHA会输出相应的错误信息,帮助管理员排查问题。 本章主要了解主从复制的原理,MHA集群原理,以及同步的方式等等,尤其是在配置文件方面,需要配置的信息较多,所以出现的报错信息可能也会比较频繁。 数据一致性保证:MHA支持半同步复制和全局事务ID(GTID)复制,以确保故障转移前后数据的一致性。salve2服务器的无密码认证
4.3 配置salve1服务器 在salve1服务器上配置到master服务器、MHA node 组件 | /usr/local/mysql |
192.168.83.100 | MHA节点服务器 | MHA node 和 manager 组件 | /usr/bin |
192.168.83.200 | VIP地址 |
(一)搭建主从复制环境
1.搭建时间同步
在构建MySQL主从复制架构时,确保主从服务器之间的系统时间同步是非常重要的。 relay_log_recovery = 1#relay_log_recovery用于决定在从服务器启动时是否自动从最后一个完整的事务处恢复中继日志的执行。MHA(MySQL Master High Availability Manager)作为一种开源的MySQL高可用解决方案,以其自动化故障转移和恢复能力广受业界认可。 'myslave'@'192.168.83.%'#定义了用户名及其允许连接的IP地址范围。
监控与故障检测:MHA Manager通过心跳检测机制实时监控主节点状态,一旦检测到主节点失效,立即触发故障转移流程。
使用半同步复制或全局事务标识符(GTID)确保数据一致性。主从切换、 master_log_file='master-bin.000001'#指定主服务器上从哪里开始复制二进制日志,这里的值'master-bin.000001'是主服务器的一个具#体的二进制日志文件名。
架构
MHA由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。