jdbc autoReconnect=true 参数设置导致 slow log 爆表。
1.过程
同事按照文档上配置了下面的jdbc url:
jdbc:mysql://ip:port/db?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
结果导致了 mysql slow log 出现了满屏的 ping 命令,
# User@Host: db[db] @ [ip]
# Query_time: 0.000017 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0 Logical_reads: 0 Physical_reads: 0
SET timestamp=1456991083;
# administrator command: Ping;
$ ll -h mysqlslow20161115.log
-rw-rw---- 1 dba dba 58G Nov 15 14:17 mysqlslow20161115.log
最后我找到其他同事询问他们怎么配置的,为什么他们的业务没有生成这么多日志呢?最后对比以后发现,其他同事配置了 dbcp 框架,通过dbcp 框架来提供连接池。
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
<property name="maxActive" value="" />
<property name="maxIdle" value="" />
<property name="maxWait" value="" />
<property name="defaultAutoCommit" value="true" />
<property name="minEvictableIdleTimeMillis" value="" />
<property name="timeBetweenEvictionRunsMillis" value="" />
</bean>
其中 jdbc.url 参数和前面一个同事么有区别(ip port db 除外)。
最后解决办法:
考虑到再让他们加框架比较费劲,就让开发把 autoReconnect=true 取消掉了。tail -f mysqlslow.log 没有发现新增的了。看来裸加一个 autoReconnect 还是很不靠谱的。最后推荐一篇我搜索时候找到的一篇连接:https://www.percona.com/blog/2010/05/05/checking-for-a-live-database-connection-considered-harmful/
jdbc autoReconnect=true 参数设置导致 slow log 爆表。的更多相关文章
- jmeter—JDBC request动态参数设置
jmeter—JDBC request动态参数设置 重要参数说明: Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable ...
- INITIAL参数设置导致TRUNCATE TABLE不能降低高水位线案例
在一个数据库使用下面SQL找出了一批需要降低高水位线的表,其中有几个表没有数据,于是我打算用TRUNCATE来降低高水位线HWM SELECT a.owner, a.segment_na ...
- MySQL 参数autoReconnect=true 解决8小时连接失效
<!-- dataSource加参数 处理mysql 8小时自动断开连接的问题 --> <property name="testWhileIdle" va ...
- MySQL 参数autoReconnect=true 解决8小时连接失效(转)
即使在创建Mysql时url中加入了autoReconnect=true参数,一但这个连接两次访问数据库的时间超出了服务器端wait_timeout的时间限制,还是会CommunicationsExc ...
- redis专题--slow log详解
SLOWLOG subcommand [argument] 什么是 SLOWLOG Slow log 是 Redis 用来记录查询执行时间的日志系统. 查询执行时间指的是不包括像客户端响应(talki ...
- 连接数据库超时设置autoReconnect=true
1,问题现象: com.mysql.jdbc.CommunicationsException: The last packet successfully received from the serve ...
- JIRA应用的内存参数设置不当+容器没有对资源进行限制导致服务挂掉的例子
背景: 应用的部署结构是这样的:使用rancher管理的Docker集群,有三台物理主机,二十多个Docker容器, 提供的功能是问题跟踪(JIRA),文档管理(Confluence),代码托管(sv ...
- mysql的jdbc.url携带allowMultiQueries=true参数的作用及其原理
如下配置 jdbc.url=jdbc:mysql://127.0.0.1:3306/chubb_2?autoReconnect=true&useUnicode=true&charact ...
- jqGrid的autoencode参数设置为true在客户端可能引发的编码问题
不久前使用jqGrid+MVC做过一段时间开发. 一开始,分页参数几乎都是默认值,jqGrid的分页功能很好用. 考虑到each input is evil,我们的系统对安全性又有较高要求,所以,为了 ...
随机推荐
- eclipse的安装与配置
eclipse的英文名是日蚀,一直很喜欢这个名字. 1.安装很简单,直接下载eclipse包,免安装的.解压后找到其执行文件,如图所示.
- SQL Server 数据库 'xxx' 正处于转换状态。请稍后再尝试该语句。
问题是这样的,最近因义务需要,公司更换了数据库服务器.数据库随之切换到新的服务器上. 服务器是 Windows Server 2012系统,数据库是SQL Server 2012 .上面有 多个数据库 ...
- Tomcat单向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端安全通信
众所周知,iOS9已经开始在联网方面默认强制使用Https替换原来的Http请求了,虽然Http和Https各有各的优势,但是总得来说,到了现在这个安全的信息时代,开发者已经离不开Https了. 网上 ...
- extjs学习之Ext.selection.CheckboxModel
Ext.onReady( function() { var store=Ext.create('Ext.data.Store', { storeId:'simpsonsStore', fields:[ ...
- XAF学习笔记1
写软件很多年了.看过的框架用过的框架非常多.一直想要一种框架,说不出的心烦重复的数据库设计,重复的Model生成,重复的界面设计 一直寻寻觅觅,终于找到一个框架,DEV的XAF,DEV控件用了N年了, ...
- Python中实现异步并发查询数据库
这周又填了一个以前挖下的坑. 这个博客系统使用Psycopy库实现与PostgreSQL数据库的通信.前期,只是泛泛地了解了一下SQL语言,然后就胡乱拼凑出这么一个简易博客系统. 10月份找到工作以后 ...
- iOS Sonar 集成流程
https://gold.xitu.io/entry/5781e6872e958a0054c93368 作者:advancer_chen,原文链接:http://my.oschina.net/Chen ...
- ckeditor使用
安装: 下载CKEDITOR的文件,解压后复制到工程的WEBROOT目录下就OK! 引用CKEDITOR的JS文件: 新建JSP页面,添加其JS文件<script type="text ...
- How to Test Controller Concerns in Rails 4
Concerns are a new feature that was added in Rails 4. They allow to clean up code in your models and ...
- css3之背景新属性
background属性 属性 描述 background-origin 背景图片的定位区域 background-size 背景图片尺寸 background-image:url(),url();允 ...