mysql主主复制+keepalived高可用

网友投稿 974 2022-08-25

mysql主主复制+keepalived高可用

mysql主主复制+keepalived高可用

背景

在给客户搭建主从复制的时候客户要求故障能自动切换,就搜了一下相关的方案,Mysql主主复制+keepalived高可用,以下是搭建过程

1、mysql节点1作为主节点,节点2作为从节点的配置

1.1 在节点1创建主从复制用户及授权

mysql> CREATE USER 'repl'@'%' IDENTIFIED WITH 'mysql_native_password' BY ' WLW05WuVlm'; mysql> grant replication slave on *.* to 'rep'@'%'; mysql>flush privileges;

1.2 查看节点1的日志位置

mysql>show master status \G;

1.3 节点二配置主从复制

mysql>CHANGE MASTER TO MASTER_HOST='10.73.96.163',MASTER_USER='repl',MASTER_PASSWORD='WLW05WuVlm',MASTER_LOG_FILE='binlog.000015',MASTER_LOG_POS=6954335; mysql>start slave;

1.4 查看主从复制状态

mysql>show slave status\G;

2、mysql节点1作为从节点节点2作为主节点配置

2.1 在节点2创建复制用户并授权

mysql> CREATE USER 'repl'@'%' IDENTIFIED WITH 'mysql_native_password' BY ' WLW05WuVlm'; mysql> grant replication slave on *.* to 'rep'@'%'; mysql>flush privileges;

2.2 查看节点2日志位置

mysql>show master status \G;

2.3 在节点1作主从复制配置

mysql>CHANGE MASTER TO MASTER_HOST='10.73.96.164',MASTER_USER='repl',MASTER_PASSWORD='WLW05WuVlm',MASTER_LOG_FILE='binlog.000037',MASTER_LOG_POS= 32421495; mysql>start slave;

2.4 验证主从是否同步

在节点1上

mysql>show slave status\G;

可以看到已经同步。

3、安装keepalived服务

yum install -y keepalvied

3.1 2个节点配置keepalived

编辑keepalived.conf配置文件,两个节点上的配置都差不多,只是router_id,priority的值不一样,还有unicast_src_ip和unicast_peer值不一样需要对调。

vi /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { router_id mya #路由id,不能重复 } vrrp_script check_port { script "/etc/keepalived/check_port.sh" interval 2 weight -100 } vrrp_instance lvs_inst { #定义vrrp实例名 state MASTER #定义vrrp角色,分为MASTER/BACKUP两种 interface ens192 #指定网络接口名 virtual_router_id 50 #同一组的vrrp成员,该id需要一致 priority 100 #优先级,范围(0-255) #nopreempt #不抢占(只针对BACKUP生效) advert_int 1 #发送hello的时间间隔 authentication { #通过密码身份验证 auth_type PASS auth_pass dWeGNyUv } unicast_src_ip 10.73.96.163 unicast_peer { 10.73.96.164 } virtual_ipaddress { #定义虚拟IP(VIP) 10.73.96.175 } track_script { check_port } }

编辑端口检测脚本,因为keepalived的原理是通过执行端口检测脚本上面的返回值来进行相应的关闭keepalived应用以将流量转发到对应的正常的后端端口上

vi /etc/keepalived/check_port.sh #!/bin/bash NUM=`ss -lnp|egrep ":3306" |wc -l` if [ $NUM -lt 2 ] then systemctl stop keepalived fi

分别启动keepalived

systemctl enable keepalibed systemctl start keepaliived

3.2 查看是否成功

PS

特别说明,作主主高可用的时候需要在Mysql配置文件配置自增长序列号为不同id,否则会有数据重复问题,主要配置如下:

vi /etc/mysql/my-f

增加

auto-increment-increment = 2 auto-increment-offset = 1 # 将另外一个节点的数值改为2

参考链接 https://blog.csdn-/brid_fly/article/details/121858233

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:perl编码转换
下一篇:C++静态库与动态库深入研究(简述静态库与动态库的概念及差异)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~