首页 > 数据库 >记一次线上MySQL+keepalive主从切换导致的断联

记一次线上MySQL+keepalive主从切换导致的断联

时间:2024-06-12 22:23:17浏览次数:15  
标签:数据库 程序 主从 断联 切换 MySQL 连接 keepalive

 

告警/现象

我们的一个程序在一次MySQL 发生主从切换后直接与MySQL失去连接,且无法自恢复,只能重启程序。

排查

  • 我们使用的是Springboot默认的连接池HiKari,经排查所使用的版本没有出现致命bug。
  • 导火索是数据库发生主从切换,且随时间推进,没有任何恢复连接的迹象,netstat监控表明程序并没有尝试重新连接数据库。
  • 程序日志所报错误没有明显特征,均是业务查询超时报出来的错误。

最终

该问题由数据库发生主从切换后,连接池没有及时丢弃原有连接导致。

数据库连接缺少心跳机制,主从切换后,程序仍认为连接是正常的,没有新建新的连接。

解决的方法是在连接参数上设置connectTimeout和socketTimeout参数。可能会对原本就需要长时间的查询造成影响。

应有更好的方法淘汰这些僵尸连接,目前暂未发现。

标签:数据库,程序,主从,断联,切换,MySQL,连接,keepalive
From: https://www.cnblogs.com/JackieJK/p/18238832

相关文章

  • LVS+KeepAlived高可用负载均衡集群
    目录1.高可用群集的相关知识1.1单台服务器1.2keepalived1.3Keepalived实现原理2.部署keepalived2.1准备虚拟机2.2初始化操作2.3更新在线源仓库并安装keepalived​2.4配置主调度器2.5 配置备调度器2.6 启动主备keepalived2.7验证3.常问题目4.非抢占模式......
  • MySQL实战--用户行为数据分析--8小时跟做(3)
    RFM模型_哔哩哔哩_bilibili8RFM模型{最近消费(Recency)、消费频率(Frequency)、消费金额(Monetary)三个指标)对用户黏性、忠诚度和收入这三个维度进行数值定量分析,然后和平均数(中位数)对比得到定性描述(高或低)--存储createtablerfm_model(user_idint,frequencyint,recentch......
  • 成为MySQL DBA后,再看ORACLE数据库(八、进程、连接与会话)
    不同于MySQL的单进程多线程架构,ORACLE是多进程架构。一个ORACLE实例主要有以下三类进程:1.后台进程,这些进程随数据库启动而启动,用于完成数据库的各种后台任务;2.服务器进程(serverprocess),这些进程一般由客户端的请求产生,根据客户端的请求完成工作;3.从属进程,这些进程类似后台进程,它们......
  • Navicat的使用、PDManer、PyMySQL(连接数据库、执行SQL语句、结果获取、插入数据、删
    【一】Navicat的使用【1】连接数据库打开Navicat,找到连接选项输入连接参数测试参数【2】创建数据库新建数据库输入数据库参数新建表并设置主键修改表字段【3】导出SQL文件【4】备份数据库【5】视图展示会展示当前数据库下的所有表模型......
  • MYSQL——分组
    MYSQL——分组groupby的含义:将查询结果按照1个或多个字段进分组,字段值相同的为组。理解:按照表中数据的某个属性或多个属性将数据归类分成类,按照类别查询出来,这些分类就是分组查询。groupby可于单个字段分组,也可于多个字段分组。......
  • 解决本地机器连接虚拟机中MySQL数据库的问题指南
    在很多开发场景下,我们需在本地电脑通过应用程序或管理工具访问部署在虚拟机里的MySQL数据库,这对于项目测试、调试极其重要。默认配置下,MySQL可能仅接受源自虚拟机本身的连接请求。以下是详细步骤,指导你调整MySQL设置,实现本地到虚拟机MySQL数据库的无缝连接。第一步:登录MySQ......
  • linux mysql麒麟系统部署
    1、安装mysqlapt-getinstallmysql-servermysql-common2、取消大小写敏感 (1)、先删除mysql数据库rm-rf/var/lib/mysql (2)、设置my.cnf[mysqld]lower-case-table-names=1 (3)、初始化数据库,取消大小写敏感mysqld--initialize--user=mysql--lower-case-tab......
  • mysql数据库修改配置文件后无法启动服务问题排查
    windowsserver 报错现象:本地计算机上的MySQL8.0服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止。 MySQL服务无法启动。服务没有报告任何错误。 故障原因:经多方排查最终确认是配置文件存储编码错误导致服务无法初始化。处理过程:1、   本地环境检......
  • Unix socket lock file is empty /var/run/mysqld/mysqld.sock.lock
    介绍当使用MySQL数据库时,有时候会遇到一个错误信息,提示“Unixsocketlockfileisempty:/var/run/mysqld/mysqld.sock.lock.”这个错误一般是由于MySQL服务器无法启动造成的。在本文中,我们将探讨这个错误的原因和解决方案。错误原因/var/run/mysqld/mysqld.sock.lock......
  • MySQL
    MySQL一、MySQL简介1.1MySQL组成和常用工具1.1.1客户端程序mysql:交互式或非交互式的CLI工具mysqldump:备份工具,基于mysql协议向mysqld发起查询请求,并将查得的所有数据转换成insert等写操作语句保存文本文件中mysqladmin:基于mysql协议管理mysqldmysqlimport:数据导入工......