高可用集群知识点回顾 分为 主备2种角色,工作过程,主服务器获取vip地址 客户端连接 vip地址访问服务,当主服务器宕机后,备用的服务器升级为获取vip地址 继续给客户端提供服务。
之前网站高可用集群用的是keepalived软件做集群服务
数据库高可用集群,使用专属的集群软件MHA
MHA软件介绍:软件有两部分组成:
至少三台数据库服务器才能做 必须是主从同步结构
启动binlog日志
开启办同步复制模式
禁止删除本机的中继日志文件
重启数据库服务
[51 ~]# vim /etc/my.cnf
[mysqld]
plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync-slave.so"
rpl_semi_sync_master_enabled=1
rpl_semi_sync_slave_enabled=1
relay_log_purge=0
server_id=51
log_bin=master51
:wq
[51 ~]# systemctl restart mysqld
[51 ~]# mysql -uroot -p123qqq..a
mysql> grant replication slave on *.* to repluser@"%" Identified by "123qqq...A"
51,52,53都要这个操作
配置主数据库服务器
启动binlog日志 (公共配置已经配置了)
用户授权(公共配置已经配置了)
查看日志信息
配置从数据库服务器
指定server_id并重启数据库服务
确保数据一致(如果一样就不需要做了)
指定主服务器信息
change master to master_host="192.168.4.51",master_user="repluser",master_password="123qqq...A",master_log_file="master51.000001",master_log_pos=441;
启动slave进程
mysql > start slave
查看状态(IO线程喝sql线程都是yes状态)
show slave status
安装依赖软件
安装提供管理命令的软件
make && make install
创建工作目录
mkdir /etc/mha
拷贝模版文件创建主配置文件
cd mha4mysql-manager-0.56
cp samples/conf/app1.cnf /etc/mha/
编辑主配置文件
# 模板文件是一个半成品 需要修改
vim /etc/mha/app1.cnf (没有第四台服务器 所以删掉[server4])
[server_default]
manager_workdir=/etc/mha # 指定工作目录
manager_log=/etc/mha/manager.log # 日志文件存放的目录
# 故障切换脚本
master_ip_failover_script=/etc/mha/master_ip_failover
ssh_user=root
ssh_port=22
repl_user=repluser # server1 2 3 上都得有
repl_password=123qqq...AAA
user=sw # 监控用户 最后得在监视服务器上添加
password=123qqq...A # 密码
# 定义监视的数据库服务器
[server1]
hostname=192.168.4.51
port=3306
candidate_master=1
[server2]
hostname=192.168.4.52
port=3306
candidate_master=1
[server3]
hostname=192.168.4.53
port=3306
candidate_master=1
创建脚本并指定vip地址部署在哪块网卡上
要保证3台数据库都有ifconfig
命令
which ifconfig || yum -y install net-tools
ifconfig eth0:1 192.168.4.100/24
先安装依赖 再安装主软件 添加监控用户(只需在master服务器添加 在slave服务器查看)
[51 ~]# mysql -uroot -paaa
mysql> grant all on *.* to sw@"%" Identified by "123qqq...A"
# 可以同步到从服务器
[53 ~]# mysql -uroot -p1111 -e "select user from mysql.user where user="sw""
在管理主机57如下测试:
测试ssh免密登陆配置
测试主从同步配置
说明:两个测试都成功了 管理服务才能启动成功
nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover 2> /dev/null &
测试集群的高可用,具体操作如下:
mysql> create database db1;
mysql> create table db1.a;
mysql> grant select,insert on db1.* to yaya@"%" identified by "123qqq...A";
systemctl stop mysqld
mysql -h192.168.4.100 -uyaya -p123qqq...A
[52 ~]# ifconfig eth0:1
在剩下的另一台数据库服务器查看主服务器ip地址 自动做新主服务器的slave主机
查看app1.cnf配置文件(发现没有[server1]的配置了)
查看管理服务的状态,并启动管理服务,再次查看状态(会监视新主数据库服务器)