码迷,mamicode.com
首页 > 数据库 > 详细

记升级mysql后的一次故障

时间:2017-12-03 00:40:55      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:账号   png   .com   kill   报错   size   web   img   技术人   

一、问题背景

  接上级要求,某生产数据库需要实施备份;刚好漏洞扫描报告出来,mysql 版本需要升级到5.7.20,于是就未雨绸缪,先写脚本。脚本在mysql旧版本下完全可用(未升级前,mysql 为5.7.18)。升级完后,本着技术人员的一种严谨态度,绝对要sh -x 看看脚本在新环境下有没有出现异常啦~~~

 
二、现象(主要有两个)
  1、mysqldump只能备份表不能备份库(Z库和S库),刚好测试时用的是S库!(这个强调下面是有用的,观众慢慢欣赏)。开始非常纳闷,两个库才不到100M,mysqldump良久不出结果,总不能仅仅1~2天,生产库上数据量陡增的
   2、与此同时,测试人员反馈,项目页面一直转圈登不上(前一天刚升级完数据库,测试过,页面打开没问题)
  技术分享图片

 

三、排查及解决

   1、上头说,可能是因为升级后 tomcat 没有重启,导致应用出问题(ps:数据库跟应用分别在两台不同的机器上),于是就重启 tomcat ~~顺带观察实时日志:tail -f Catalina.out

(1)图一

技术分享图片

(2)图二

技术分享图片

  综上,可以发现,挺多preparing的。。。然当时其实看不出有什么异样(毕竟太年轻,囧)

  2、之后,开发人员拿到数据库账号密码,说S库的某个表,也就是上图的日志表:TB_ICT_SYS_LOG被锁了!这就是为什么mysqldump测试备份S库的时候一直备份不了,如果测试备份Z库的话,结果估计是可以出来的,因为Z库上的表并没有被锁

登陆数据库查线程运行情况,终于有眉目了!!!

(1)图一   (mysqldump不了S库的线程)技术分享图片

(2)图二    (页面登陆不上卡住报错的线程)

技术分享图片

 

  3、解决:据查到的进程号, kill 掉数据库锁进程

之后,数据库恢复正常,页面打开没问题技术分享图片

 

四、结论

  1、浏览器登陆项目页面,无论登陆是否成功,都有一个第三点 1(2)图二的插入S库日志表的操作

  2、mysqldump备份数据库会有锁表的问题,可能会和插入操作有冲突(开发人员:业务上并没有其他地方引起锁表操作),所以这次问题的产生好可能是因为在调试脚本的时候引起的。为了不影响业务,建议晚上备份(现在调度已改成凌晨 0 点备份

   3、确定Tomcat数据库连接池配置是否准确无误(.../WEB-INF/classes/jdbc.properties),虽然跟本次排错过程无关

技术分享图片

这个日志是tomcat最早时候的信息(暂时不知道这里是不是暗藏问题发生的玄机)

 

记升级mysql后的一次故障

标签:账号   png   .com   kill   报错   size   web   img   技术人   

原文地址:http://www.cnblogs.com/windysai/p/7956510.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!