MySQL 数据库问题分析思路

 最近后台服务突然出现了连接池不够用的情况,不定时的会抛出java.lang.IllegalStateException: Pool not open

2019-09-06 08:21:52.701->java.lang.IllegalStateException: Pool not open
java.lang.IllegalStateException: Pool not open
	at org.apache.commons.pool.BaseObjectPool.assertOpen(BaseObjectPool.java:78)

1.由于业务量与系统架构都没有发生变化,初步怀疑是最近开发的代码有问题:

 怀疑 没有及时的回收资源,造成连接池泄漏。   在经过对代码的再次check之后,未发现任何问题。

2.检查数据库配置参数

 -- 查看线程
SHOW PROCESSLIST;
 
SHOW STATUS LIKE 'Threads%';
###+-------------------+-------+
###| Variable_name     | Value |
###+-------------------+-------+
###| Threads_cached    | 10    |
###| Threads_connected | 326   |   ###这个数值指的是打开的连接数
###| Threads_created   | 653   |
###| Threads_running   | 16    |   ###这个数值指的是激活的连接数,这个数值一般远低于connected数值
###+-------------------+-------+
 
-- Threads_connected 跟show processlist结果相同,表示当前连接数。准确的来说,Threads_running是代表当前并发数
 
-- 这是是查询数据库当前设置的最大连接数
SHOW VARIABLES LIKE '%max_connections%';
###+-----------------+-------+
###| Variable_name   | Value |
###+-----------------+-------+
###| max_connections | 2000  |
###+-----------------+-------+

从数据库的配置来看,没有任何问题。 只有从线程上发现,每次服务没有连接池之后,数据库的线程也就是激活的连接数会很少,明显少于我们的后台服务所需要的连接数。初步怀疑是与数据库有关。怀疑有人重启了数据库。

3.查看数据库的日志 ***.err

获取到了 .err 数据库日志后,查看确实是数据库有重启的记录。但是并非人为重启了数据库。服务也已经恢复了。

2019-09-06 08:24:55 15782 [ERROR] InnoDB: Error in system call pread(). The operating system error number is 5.
2019-09-06 08:24:55 7f9d1b514700  InnoDB: Operating system error number 5 in a file operation.
InnoDB: Error number 5 means 'Input/output error'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/operating-system-error-codes.html
2019-09-06 08:24:56 15782 [ERROR] InnoDB: File (unknown): 'read' returned OS error 105. Cannot c
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值