- 停止gdb3服务器上的MySQl Router,重新发起100个新的请求,观察路由转发情况
[#29#root@gdb1 ~ 15:55:02]29 ipvsadm -LnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:PortForward Weight ActiveConn InActConnTCP172.17.129.1:6446 rr-> 172.17.140.24:6446Route1034-> 172.17.140.25:6446Route1033TCP172.17.129.1:6447 rr-> 172.17.140.24:6447Route100-> 172.17.140.25:6447Route100[#30#root@gdb1 ~ 15:55:03]30 [#30#root@gdb1 ~ 15:55:21]30 ipvsadm -LnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:PortForward Weight ActiveConn InActConnTCP172.17.129.1:6446 rr-> 172.17.140.24:6446Route1034-> 172.17.140.25:6446Route1033TCP172.17.129.1:6447 rr-> 172.17.140.24:6447Route1500-> 172.17.140.25:6447Route1500[#31#root@gdb1 ~ 15:55:21]31通过上述结果可以看到,gdb3服务器的MySQL Router停止后,路由规则从集群中剔除,再次发起的100个请求,平均分配到了剩下的两个服务器上,符合预期效果 。四、问题处理
- pcs cluster启动异常
# pcs cluster start --all 报错:unable to connect to [node], try setting higher timeout in --request-timeout option添加超时参数,再次启动# pcs cluster start --all --request-timeout 120000# pcs cluster enable --all也有可能是其他节点的pcsd服务没有启动成功,启动其他节点pcsd服务后再启动pcs cluster- 两个节点的pcs集群,需要关闭投票机制
# pcs property set no-quorum-policy=ignore- 日志文件查看,如果启动、运行异常,可以查看下面两个日志文件,分析具体异常原因
# tail -n 30 /var/log/ldirectord.log# tail -n 30 /var/log/pacemaker.log- pcs status输出offline节点
[#4#root@gdb1 ~ 11:21:23]4 pcs statusCluster name: db_ha_lvsStack: corosyncCurrent DC: gdb2 (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorumLast updated: Thu Mar2 11:21:27 2023Last change: Wed Mar1 16:01:56 2023 by root via cibadmin on gdb13 nodes configured2 resource instances configured (2 DISABLED)Online: [ gdb1 gdb2 ]OFFLINE: [ gdb3 ]Full list of resources: Resource Group: dbservicevip(ocf::heartbeat:IPaddr):Stopped (disabled)lvs(ocf::heartbeat:ldirectord):Stopped (disabled)Daemon Status:corosync: active/enabledpacemaker: active/enabledpcsd: active/enabled[#5#root@gdb1 ~ 11:21:27]5- 启动sh vip.sh start后节点退出集群
[#28#root@gdb3 /data/dbscale/lvs 10:06:10]28 ifconfig -aeth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu 1500inet 172.17.139.164netmask 255.255.240.0broadcast 172.17.143.255inet6 fe80::216:3eff:fe07:3778prefixlen 64scopeid 0x20<link>ether 00:16:3e:07:37:78txqueuelen 1000(Ethernet)RX packets 17967625bytes 2013372790 (1.8 GiB)RX errors 0dropped 13overruns 0frame 0TX packets 11997866bytes 7616182902 (7.0 GiB)TX errors 0dropped 0 overruns 0carrier 0collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>mtu 65536inet 127.0.0.1netmask 255.0.0.0inet6 ::1prefixlen 128scopeid 0x10<host>looptxqueuelen 1000(Local Loopback)RX packets 177401bytes 16941285 (16.1 MiB)RX errors 0dropped 0overruns 0frame 0TX packets 177401bytes 16941285 (16.1 MiB)TX errors 0dropped 0 overruns 0carrier 0collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST>mtu 1500inet 192.168.122.1netmask 255.255.255.0broadcast 192.168.122.255ether 52:54:00:96:cf:ddtxqueuelen 1000(Ethernet)RX packets 0bytes 0 (0.0 B)RX errors 0dropped 0overruns 0frame 0TX packets 0bytes 0 (0.0 B)TX errors 0dropped 0 overruns 0carrier 0collisions 0virbr0-nic: flags=4098<BROADCAST,MULTICAST>mtu 1500ether 52:54:00:96:cf:ddtxqueuelen 1000(Ethernet)RX packets 0bytes 0 (0.0 B)RX errors 0dropped 0overruns 0frame 0TX packets 0bytes 0 (0.0 B)TX errors 0dropped 0 overruns 0carrier 0collisions 0但是由于real server的是172.17.140.24、172.17.140.25、172.17.139.164,此时使用255.255.240.0无法通信,将其修改为255.255.0.0,再次启动后访问正常 。#!/bin/bash . /etc/init.d/functionsSNS_VIP=172.17.129.1case "$1" instart)ifconfig lo:0 $SNS_VIP netmask 255.255.0.0 broadcast $SNS_VIP #/sbin/route add -host $SNS_VIP dev lo:0echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announcesysctl -p >/dev/null 2>&1echo "RealServer Start OK";; stop)ifconfig lo:0 down #route del $SNS_VIP >/dev/null 2>&1echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "0" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/all/arp_announceecho "RealServer Stoped";; *)echo "Usage: $0 {start|stop}"exit 1 esacexit 0
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 在 Meta 构建和部署 MySQL Raft
- mysql的3种安装方式及yum安装MySQL的步骤
- windows环境mysql自动备份脚本
- 一线大厂面试的MySQL索引夺命连环15问
- 在 MySQL 中处理时间
- TiDB与MySQL的SQL差异及执行计划简析
- 带你读 MySQL 源码:Select *
- MySQL 中时间函数详解,及加减计算总结和使用!
- MySQL索引数据结构入门
- 我们一起聊聊MySQL中的游标,你学会了吗?
