记升级mysql后的一次故障
一、问题背景
接上级要求,某生产数据库需要实施备份;刚好漏洞扫描报告出来,mysql 版本需要升级到5.7.20,于是就未雨绸缪,先写脚本。脚本在mysql旧版本下完全可用(未升级前,mysql 为5.7.18)。升级完后,本着技术人员的一种严谨态度,绝对要sh -x 看看脚本在新环境下有没有出现异常啦~~~
三、排查及解决
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)图二 (页面登陆不上卡住报错的线程)

之后,数据库恢复正常,页面打开没问题
四、结论
1、浏览器登陆项目页面,无论登陆是否成功,都有一个第三点 1(2)图二的插入S库日志表的操作
2、mysqldump备份数据库会有锁表的问题,可能会和插入操作有冲突(开发人员:业务上并没有其他地方引起锁表操作),所以这次问题的产生好可能是因为在调试脚本的时候引起的。为了不影响业务,建议晚上备份(现在调度已改成凌晨 0 点备份)
3、确定Tomcat数据库连接池配置是否准确无误(.../WEB-INF/classes/jdbc.properties),虽然跟本次排错过程无关

这个日志是tomcat最早时候的信息(暂时不知道这里是不是暗藏问题发生的玄机)
记升级mysql后的一次故障的更多相关文章
- PHPSTUDY下升级mysql后无法启动
说来也是搞笑,之前很早就想看Laravel了~其中,之前项目忙,还有就是自己也出了点事故!但是呢,我个人哭过,抱怨过,但是我还是很懂我自己的.也许没心没肺也是一种好事,但也是坏事~ 闲话说多了,来说正 ...
- centos下升级mysql后遇到的小问题
记录今天遇到的一个小问题, 写一个app访问接口涉及到通过存储过程反馈多个结果集,但是反回多个结果集的存储过程,调用之后只能反回一个了,而且奇怪的是,即使直接在mysql上同时执行两条查询语句,第一条 ...
- Mysql 升级重装后连接出错 Table \'performance_schema.session_variables\' doesn\'t exist
升级重装后 连接出错 报这个错误 Table 'performance_schema.session_variables' doesn't exist 使用这个命令即可 [root@localh ...
- centos升级mysql至5.7
1.备份原数据库 [root@www ~] #mysqldump -u root –p -E –all-database > /home/db-backup.sql 加-E是因为mysqldum ...
- centOS 6.5下升级mysql,从5.1升级到5.7
1.备份数据库,升级MySQL通常不会丢失数据,但保险起见,我们需要做这一步.输入命令: mysqldump -u xxx -h xxx -P 3306 -p --all-databases > ...
- CentOS6.x升级MySQL版本5.1到5.6
CentOS6.x升级MySQL版本5.1到5.6 分类: Web MySQL 2014-08-04 11:22 2813人阅读 评论(1) 收藏 举报 mysql云服务器升级centos6 有一些虚 ...
- phpstudy升级mysql数据库
因为MySQL支持全文索引的只有5.6以上,而我下的phpstudy只有5.5的版本,在导入数据库的时候因为该数据库的表内有使用全文索引,因此必须升级phpstudy的mysql版本,这里就把自己当升 ...
- ubuntu14.04 升级mysql到5.7版本
Ubuntu14.04默认安装的是mysql5.5,由于开发需要支持utf8mb4,因此需要升级到mysql5.7 默认情况下,apt是无法直接升级到mysql5.7的,因此需要额外设置 首先,备份数 ...
- 59.phpstudy升级Mysql的正确姿势
phpstudy升级Mysql的正确姿势 phpstudy很糟心,不能选择mysql的版本,所以就强制升级. 下载mysql 首先要到官网上去下载你想要的mysql版本. 下载网址:Mysql官网地址 ...
随机推荐
- Go & SQLite on Windows
一般golang使用的sqlite驱动包都是github.com/mattn/go-sqlite3,但是官方并没有直接支持windows平台的编译,因为windows平台编译默认需要gcc支持 其实解 ...
- php 字母和数字验证码
//验证码 <?php //实现简单的验证码 //session_start session_start(); //画布 $image = imagecreatetruecolor(100, 3 ...
- 8.javascript获取表单中两个数字,并判断大小
获取表单数据的方式: 1.表单注意些id 2.使用document.getElementById("num").value 获取值 3.一定要注意现在得到是string类型,可以用 ...
- .Vue.js大全
Vue起步 1.下载核心库vue.js bower info vue npm init --yes cnpm install vue --save vue2.0和1.0相比,最大的变化就是引入了Vir ...
- django-应用中和amdin使用富文本编辑器kindeditor
文章描述.新闻详情和产品介绍等,都需要大量的文字描述信息或图片.视频.文字的编辑等,这个时候我们就需要介绍第三方富文本编辑器. 今天介绍的是django中绑定和应用kindeditor编辑器: 效果如 ...
- 目标检测之R-FCN
R-FCN:Object Detection via Region-based Fully Convolutional Networks R-FCN的网络结构 一个Base的convolutional ...
- C++对象模型那点事儿(布局篇)
1 前言 在C++中类的数据成员有两种:static和nonstatic.类的函数成员由三种:static,nonstatic和virtual. 上篇我们尽量说一些宏观上的东西,数据成员与函数成员在类 ...
- 吴超老师课程---Hadoop的分布式集群安装
1.hadoop的分布式安装过程 1.1 分布结构 主节点(1个,是hadoop0):NameNode.JobTracker.SecondaryNameNode 从节点(2个,是 ...
- 入门拾遗 day2
一.类和对象 对于Python,一切事物都是对象,对象基于类创建 学会查看帮助 type(类型名) 查看对象的类型dir(类型名) 查看类中提供的所有功能help(类型名) 查看类中所有详细的功能he ...
- 有趣的Linux命令,让终端炫起来
10条真心有趣的Linux命令 动画演示10个有趣但毫无用处的Linux命令 11个无用而有趣的Linux终端彩蛋 lolcat :一个在 Linux 终端中输出彩虹特效的命令行工具