当前位置: 首页 > news >正文

MySQL双主Keepalived抢占配置手册

MySQL双主Keepalived抢占配置手册

  以下是为服务器(192.168.43.218 和 192.168.43.219)配置Keepalived高可用的完整手册,虚拟IP(VIP)为 192.168.43.222,并已按要求将虚拟路由器ID设置为 222。此配置能确保当一台MySQL服务器故障时,VIP自动漂移到另一台,实现高可用。

配置规划

组件

服务器 1 (Master-1)

服务器 2 (Master-2)

说明

真实IP

192.168.43.218

192.168.43.219

服务器的固定IP

虚拟IP (VIP)

192.168.43.222 (主)

192.168.43.222 (备)

对应用层提供服务的浮动IP

Keepalived角色

MASTER

BACKUP

初始状态

优先级 (priority)

150

100

MASTER优先级需高于BACKUP

虚拟路由器ID

222

222

关键修改点,确保全网唯一

网卡接口

需根据实际修改(如ens160、eth0)

需根据实际修改(如ens160、eth0)

使用ip a命令查看本机网卡名

安装Keepalived

在两台服务器上执行

# 安装Keepalived
yum install -y keepalived
#yum -y install keepalived ipvsadm mailx
systemctl enable keepalived
# 设置开机自启(暂不启动)
#systemctl enable keepalived
#groupadd -r keepalived_script
#useradd -r -g keepalived_script -s /sbin/nologin keepalived_script

 配置Keepalived  

主节点配置 (192.168.43.218)

编辑配置文件 /etc/keepalived/keepalived.conf,内容如下:

cat > /etc/keepalived/keepalived.conf << 'EOF'
# ================================================================
# db218 节点 keepalived 配置文件
# 角色:MASTER(初始写入节点)
# 虚拟 IP:192.168.43.222
# ================================================================global_defs {# 本机唯一标识,日志中便于定位router_id mysql_218# 启用性能优化选项max_auto_priority# 以 root 身份运行脚本,并启用脚本安全检查script_user rootenable_script_security# 跳过对通告地址的校验,加速切换vrrp_skip_check_adv_addr
}# ------------------------------------------------------------
# MySQL 健康检查脚本定义
# ------------------------------------------------------------
vrrp_script chk_mysql {# 检查脚本路径script "/etc/keepalived/check_mysql.sh"# 每 2 秒检查一次interval 2# 失败时优先级 -60,确保低于 BACKUPweight -60# 连续 2 次失败才判定为不可用fall 2# 连续 2 次成功才恢复rise 2
}# 实例名字(自定义),同一对主备须同名,否则互相认不到。
vrrp_instance VI_1 {state MASTER              # 初始状态:MASTERinterface ens160          # 绑定网卡,需与 ip a 看到的名称一致virtual_router_id 222     # 主备必须相同,范围 1-255priority 150              # 优先级,高于 BACKUP(100)advert_int 2              # 心跳间隔 2 秒# 优化ARP发送策略garp_master_delay 5        # 成为主节点后延迟5秒发送ARPgarp_master_repeat 3       # 成为主节点后发送3次ARP# 认证方式:简单密码(主备必须一致)authentication {auth_type PASSauth_pass 8888}# 虚拟 IP/掩码及标签(label 方便 ip addr 查看)virtual_ipaddress {192.168.43.222/24 dev ens160 label ens160:1}# 使用单播代替组播,防止交换机禁组播,指向对端unicast_src_ip 192.168.43.218  # 本地IPunicast_peer {192.168.43.219 # 对端IP}# 关联健康检查脚本track_script {chk_mysql}
}
EOF

备节点配置 (192.168.43.219)

配置文件路径相同,内容如下(注意修改router_id和优先级):

cat > /etc/keepalived/keepalived.conf << 'EOF'
# ================================================================
# db219 节点 keepalived 配置文件
# 角色:BACKUP(初始只读节点)
# 虚拟 IP:192.168.43.222(故障时漂移到本机)
# ================================================================global_defs {# 本机唯一标识,日志中便于定位router_id mysql_219# 启用性能优化选项max_auto_priority# 以 root 身份运行脚本,并启用脚本安全检查script_user rootenable_script_security# 跳过对通告地址的校验,加速切换vrrp_skip_check_adv_addr
}# ------------------------------------------------------------
# MySQL 健康检查脚本定义
# ------------------------------------------------------------
vrrp_script chk_mysql {# 检查脚本路径script "/etc/keepalived/check_mysql.sh"# 每 2 秒检查一次interval 2# 失败时优先级 -60,确保低于 BACKUPweight -60# 连续 2 次失败才判定为不可用fall 2# 连续 2 次成功才恢>复rise 2
}# 实例名字(自定义),同一对主备须同名,否则互相认不到。
vrrp_instance VI_1 {state BACKUP              # 初始状态:BACKUPinterface ens160          # 绑定网卡,需与 ip a 看到的名称一致virtual_router_id 222     # 主备必须相同,范围 1-255priority 100              # 优先级低于 MASTER (150)advert_int 2              # 心跳间隔 2 秒# 优化ARP发送策略garp_master_delay 5        # 成为主节点后延迟5秒发送ARPgarp_master_repeat 3       # 成为主节点后发送3次ARP# 认证方式:简单密码(主备必须一致)authentication {auth_type PASSauth_pass 8888}# 虚拟 IP/掩码及标签(label 方便 ip addr 查看)virtual_ipaddress {192.168.43.222/24 dev ens160 label ens160:1}# 使用单播代替组播,防止交换机禁组播,指向对端unicast_src_ip 192.168.43.219  # 本地IPunicast_peer {192.168.43.218  # 对端IP}# 关联健康检查脚本track_script {chk_mysql}
}
EOF

配置MySQL健康检查脚本(关键步骤)

为确保VIP仅在MySQL服务正常时切换,需创建健康检查脚本。在两台服务器上创建 /etc/keepalived/check_mysql.sh

# 创建专用账号
CREATE USER 'checkuser'@'localhost' IDENTIFIED BY 'xrvLovfnp$4%svbS';
GRANT USAGE ON *.* TO 'checkuser'@'localhost';
# 测试是否可以成功执行
mysql -hlocalhost -ucheckuser -p'xrvLovfnp$4%svbS' -e "select 1"
cat >/etc/keepalived/check_mysql.sh << 'EOF'
#!/bin/bash
# MySQL健康检查脚本:测试MySQL连接是否正常
MYSQL_CMD=$(which mysql)
MYSQL_HOST="localhost"
MYSQL_PORT="3306"
MYSQL_USER="checkuser"
CHECK_SQL="SELECT 1;"
if $MYSQL_CMD -h "$MYSQL_HOST" -P "$MYSQL_PORT" -u "$MYSQL_USER" -p'xrvLovfnp$4%svbS' -e "$CHECK_SQL" > /dev/null 2>&1; thenexit 0  # MySQL正常,脚本返回0
elseexit 1  # MySQL异常,脚本返回非0,触发优先级降低
fi
EOFchmod 755 /etc/keepalived/check_mysql.sh

启动服务与验证

验证keepalived服务

# 主节点(218)启动
systemctl start keepalived# 在备节点(219)启动
systemctl start keepalived

验证VIP绑定  

# 在主节点执行,应看到VIP绑定在网卡上
ip addr|grep 192
# 在备节点执行,不应看到VIP
ip addr|grep 192

检查服务状态 

systemctl status keepalived  # 查看服务是否活跃
tail -f /var/log/messages    # 监控Keepalived日志,确认无错误

故障转移测试 

模拟主节点故障-keepalived关闭

# 在主节点停止Keepalived:
systemctl stop keepalived#观察备节点日志:应看到VIP漂移到备节点.
tail -f /var/log/messages,在备节点执行,确认VIP已绑定。
ip addr|grep 192

恢复测试-keepalived开启

# 重启主节点的Keepalived:
systemctl start keepalived# 由于主节点优先级更高,VIP应自动漂回(抢占模式)。
ip addr|grep 192

模拟主节点故障-mysqld关闭

# 在主节点查看
systemctl stop mysqld
systemctl status mysqld
ip addr|grep 192
tail -f /var/log/messages# 在备节点查看
ip addr|grep 192
tail -f /var/log/messages

恢复测试-mysqld开启

# 在主节点查看
systemctl start mysqld
systemctl status mysqld
ip addr|grep 192
tail -f /var/log/messages# 在备节点查看
ip addr|grep 192
tail -f /var/log/messages

经多次测试,已经达到预期效果!

 

 
http://www.jsqmd.com/news/27224/

相关文章:

  • Blender柔体布料无限循环游戏动画插件 Revolve Mesh Looper
  • LR专业胶片模拟调色预设合集 Film Everything – All Packs
  • 2025年有实力的人防镀锌风管高评价厂家推荐榜
  • 2025年质量好的机械修复冷焊机厂家最新用户好评榜
  • 2025年双轴复卷机制造厂权威推荐榜单:全自动复卷机/自动切卷机/高速分条机源头厂家精选
  • 2025年质量好的激光切割螺杆空压机厂家推荐及选择指南
  • 2025年诚信的卧式暗装风机盘管厂家最新推荐权威榜
  • 2025年可靠的石塑地板优质厂家推荐榜单
  • Modbus协议学习笔记 —— 协议背景及发展历程
  • 2025年优秀的轴心加热农用榨油机厂家推荐及采购参考
  • 2025年河北地铁保安服务权威推荐榜单:监控保安/消防设施操作员/临时保安服务商精选
  • 2025年浅拾(RIOSHINE)兰花双萃致臻精华油:权威深度解析水油双相修护抗衰机制
  • 2025年1.2mm隧道防水土工布土工膜最新TOP品牌厂家排行
  • sdenv获取瑞数6后缀
  • 2025年 ITSM 平台演进方向与选型:聚焦大模型与智能体驱动、数据与 AI 工程化底座、业务价值驱动的运维决策
  • 2025年比较好的改性沥青设备厂家推荐及采购参考
  • 详细介绍:MyBatis 进阶
  • 2025年口碑好的玻璃钢储罐行业内知名厂家排行榜
  • [电脑]删除鼠标右键菜单中, ACDSee多余的选项
  • 2025年评价高的红木家具厂家推荐及选择参考
  • 2025年质量好的高速单壁波纹管设备最新TOP排名厂家
  • 2025 年 PCB 厂家最新推荐榜,聚焦技术实力与市场口碑深度解析的优质品牌甄选PCB 四六层板/PCB 高多层板/PCB 厚铜板公司推荐
  • 2025年质量好的抗病毒防火板厂家实力及用户口碑排行榜
  • 2025年有实力的模压四氟喷涂四氟厂家推荐及选购指南
  • 2025年不锈钢带厂家排名推荐:揭秘创新与质量兼具的企业
  • 2025年评价高的pp储罐厂家推荐及选购指南
  • CF498D Traffic Jams in the Land
  • 2025年诚信的实木压花机厂家最新热销排行
  • 2025年优秀的佛山负氧离子床垫行业内知名厂家排行榜
  • 2025年广东回收基恩士传感器公司权威推荐榜单:回收得利捷读码器/回收扫描平台/回收二维码读码器服务商精选