MySQL之MHA+keepalived方案演示(一)
整个MHA集群环境搭建过程演示
一. 实验环境说明
安装MHA操作步骤
MHA节点包含三个脚本,依赖perl模块。
save_binary_logs:保存和复制当掉的主服务器二进制日志
apply_diff_relay_logs:识别差异的relay log事件,并应用于其他salve服务器
purge_relay_logs:清除relay log文件
需要在所有mysql服务器上安装MHA节点,MHA管理服务器也需要安装。MHA管理节点模块内部依赖MHA节点模块。MHA管理节点通过ssh连接管理mysql服务器和执行MHA节点脚本。MHA节点依赖perl的DBD::mysql模块。
1.1. 环境简介
1.1.1、vmvare虚拟机,系统版本CentOS6.5 x86_64位最小化安装,mysql的版本5.7.21,
1.1.2、虚拟机器的ssh端口均为默认22,
1.1.3、虚拟机的iptables全部关闭,
1.1.4、虚拟机的selinux全部关闭,
1.1.5、虚拟机服务器时间全部一致 ntpdate 0.asia.pool.ntp.org
1.1.6、3台机器的ssh端口为10280
1.2、此次试验采用的是3台机器,机器具体部署如下:
1.3说明介绍:
server03和server04是server02的slave从库,复制环境搭建后面会简单演示,其中master对外提供写服务,备选master(实际的slave,主机名server03)提供读服务,slave也提供相关的读服务,一旦master宕机,将会把备
选备master提升为新的master,slave指向新的master
server04上部署Monitor(MHA Manager监控),主要是监控主从复制的集群中主库master是否正常,一旦master挂掉,MHA Manager会自动完成主库和slave从库的自动切换
二.HMA具体部署过程
2.1主从复制的搭建
2.1.1 主库主配置文件(192.168.2.128机器)
[root@server02 ~]# cat /etc/my.cnf
2.1.2** slave从库配置文件**
192.168.2.129机器 当主故障时,slave会提升为新主
与192.168.1.128master主库的mysql配置文件my.cnf中参数不同的是
129机器上开启以下2个参数
read_only=1
relay_log_purge=0
同时server-id的值必须和128主库不一样
**
192.168.2.130机器** 提升mysql只读,以及数据备份,已经monitor监控
与192.168.1.128master主库的mysql配置文件my.cnf中参数不同的是
129机器上开启以下2个参数
read_only=1
relay_log_purge=0
同时server-id的值必须和128主库和129从库不一样
2.1.3参数详细介绍
1)各从库应设置relay_log_purge=0
否则收到以下告警信息mysql -e ‘set global relay_log_purge=0’ 动态修改该参数,因为随时slave会提升为master。
2)各从库设置read_only=1
否则收到以下告警信息 mysql -e ‘set global read_only=1’ 动态修改该参数,因为随时slave会提升为master
2.1.4主从复制操作
1)主库创建复制帐号
主库操作:
server02主库操作:
mysqldump -uroot -p123456 --master-data=2 --single-transaction -R --triggers -A > /root/all.sql
其中–master-data=2代表备份时刻记录master的Binlog位置和Position,–single-transaction意思是获取一致性快照,-R意思是备份存储过程和函数,–triggres的意思是备份触发器,-A代表备份所有的库。
从库操作:
slave03 和slave04 2个从库上操作:
主从复制环境到此配置完成
2.2 创建MySQL管理用户monitor
2.2.1 删除多余用户
2.2.2 创建监控monitor管理帐号
之前测试MHA主从同步报错,就是数据库授权管理问题,不是使用的localhost进行管理数据库,而是使用manager管理内网网段进行检查同步。
2.3.两台slave服务器设置read_only
(从库对外提供读服务,之所以没有写进配置文件,是因为随时slave会提升为master)
2.4.配置SSH登录无密码验证
(使用key登录,工作中常用,最好不要禁掉密码登录,如果禁了,可能会有问题)
2.5.安装MHA过程
2.5.1创建软件包服务器存放目录
在所有的节点安装MHA node:(下面以server02为例,记得server03和server04也一样的操作),MHA node和MHA Manager都在要官网下载,
下载地址: https://code.google.com/p/mysql-master-ha/wiki/Downloads?tm=2(自备×××)
2.5.2 安装MHA Node
在所有的服务器上安装
2.5.3. 安装MHA Manager
在192.168.2.130 机器上安装mha4mysql-manager和 mha4mysql-node
此处为了演示只是以192.168.2.130机器上安装 mha4mysql-node和mha4mysql-manager演示为例
A.采用rpm包安装
Node脚本说明:(这些工具通常由MHA Manager的脚本触发,无需人为操作)
save_binary_logs //保存和复制master的二进制日志
apply_diff_relay_logs //识别差异的中继日志事件并将其差异的事件应用于其他的slave
filter_mysqlbinlog //去除不必要的ROLLBACK事件(MHA已不再使用这个工具)
purge_relay_logs //清除中继日志(不会阻塞SQL线程)
刚才的四个命令是在安装mha4mysql-node-0.56-0.el6.noarch.rpm 生成的
安装成功后会出现以下软件包,代表安装成功
复制下面的脚本到/usr/local/bin目录
复制相关脚本到/usr/local/bin目录(软件包解压缩后就有了,不是必须,因为这些脚本不完整,需要自己修改,这是软件开发着留给我们自己发挥的,如果开启下面的任何一个脚本对应的参数,而对应这里的脚本又没有修改则会抛错,自己被坑的很惨
到这里整个MHA集群环境已经搭建完毕