[root@galera1 ~]# systemctl start keepalived
[root@galera1 ~]# systemctl status keepalived
[root@galera1 ~]# ip a
虚拟ip已出现
如果没有出现虚拟ip,检查keepalived配置文件中的 interface 是否是当前网卡,查看网卡ip add
我机器网卡是ens192,所以需要将配置中的interface 值改为ens192
如果是其他原因,具体定位需要看日志,keepalived日志路径:/var/log/messages
192.168.191.100 这个虚拟ip就是我们最终要链接的地址,端口配置是3380
整个过程坑还是比较多的,有遇到其他问题的同学可以留言一起讨论
一,服务器基础配置准备3台主机,系统centos7node1 192.168.59.132node2 192.168.59.133node3 192.168.59.134分别在三台服务器执行以下操作:1,关闭防火墙systemctl disable firewalld systemctl stop firewalldsed -ri '/SELINUX=/cSELINUX=disabled' /etc/selinux/configsetenforce 02,配置yum源cat >
关于Oracle和MySQL的高可用方案,其实一直想要总结了,就会分为几个系列来简单说说。通过这样的对比,会对两种数据库架构设计上的细节差异有一个基本的认识。Oracle有一套很成熟的解决方案。用我在OOW上的ppt来看,是MAA的方案,今年是这个方案的16周年了。
而MySQL因为开源的特点,社区里推出了更多的解决方案,个人的见解,InnoDB Cluster会是MySQL以后的高可用方案标配。
而目前来看,MGR固然不错,MySQL Cluster方案也有,PXC,Galera等方案,个人还是更倾向于MHA.
所以本文会分为几个部分来解读,先拿RAC和MHA来做一个基本的对比。
Galera能够实现MySQL/MariaDB数据库的主主复制和多主复制等模式,这些复制模式都是同步进行的,同步时间非常短
每一个节点都可以同时写入和读取,当某一节点发生故障时,可自动从集群中自动剔除
HAProxy能提供负载均衡和故障判断等功能解决服务器系统存在的单点故障
Keepalived能提供客户端连接数据库时使用的虚拟IP地址(VIP)
关于HAProxy的负载均衡...
本次搭建目的是使用 haproxy + keepalived + mysql(双主复制) 搭建 mysql 高可用集群,使用 keepalived 监控 haproxy 和 mysql 状态,如果 haproxy 服务异常则将 VIP 漂移到另外的机器上。参考:MySQL 双主复制参考:HAProxy 安装HAProxy 学习下面是本次试验使用的配置文件信息
4. 安装 keepalived
这里直接使用 yum 安装
4.1 修改配置文件
主备基本差不多,主要注意 这三个参数
这里有一个问题, 能不能配
前文仅仅通过mysql双主 + keepalived实现高可用,这种方式在一台出现问题的时候可以切换,但是正常情况下只有一台服务使用,无法实现负载均衡,本文引入haproxy实现正常情况下也能有负载均衡的效果.
安装haproxy
yum install haproxy
修改haproxy配置文件
默认目录:/etc/haproxy/haproxy.cfg
#----------------------------------------------------------------
Keepalived-mysql高可用
Keepalived介绍
Keepalived的作用是检测服务器的状态,如果有一台服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其它服务器代替该服务器的工作,当服务器工作 正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
keepalived 针对 集群A和集群B,当集群A的管理节点宕机后,让集群B的管理节点上位
1、查看docker的cpu占用率:docker stats
2、进入cpu占用高的docker容器:docker exec -it 容器编号 /bin/bash
3、查看容器中具体进程cpu占用率,执行top,(如top命令无法使用,执行:export TERM=dumb ,然后在执行:top)
4、查看进程中线程cpu占用率:top -H -p 进程号
5、将异常线程号转化为16进制: printf “%x\n” 线程号
6、查看线程异常的日志信息:jstack 进程号|grep 16进制异常线
有很多 MySQL 高可用软件可以选择,其中比较常用的有以下几种:
1. MySQL Replication:MySQL 自带的复制功能,通过将数据从主服务器复制到一个或多个从服务器来提高可用性。
2. Galera Cluster:一个基于多主复制的 MySQL 集群,具有高可用性和一致性的特点。
3. Percona XtraDB Cluster:基于 Galera Cluster 开发的 MySQL 高可用性集群解决方案。
4. MySQL Cluster:一个基于共享存储的 MySQL 集群解决方案,具有高可用性和高性能的特点。
5. MaxScale:用于提高 MySQL 的可用性、可扩展性和性能,同时还提供了负载均衡和故障转移等功能。
需要根据实际情况选择适合自己的 MySQL 高可用软件。