MySQL锁表的快速定位和恢复

1. 执行 show processlist;

查看db当前在执行的任务,可以发现已经堆积了很多update,引起死锁的query一般就在第一个update/insert之前,一般是一个read or create or alter语句

2. 执行 select * from information_schema.innodb_trx order by trx_started limit 3\G

查看db当前的事务,找那个创建时间最早的(从发现死锁开始),找出thread_id

3. 执行 show engine innodb status\G

找出最近检查到的死锁

4. 通过1+2+3总结找出引发死锁的thread_id,kill thread_id

5. 通过query的client ip/port到相应机器上找到肇事者,分析原因,一般都是由于create或者read后,没有提交事务导致的

注意:

python mysqldb默认不自动提交事务,需要手动执行commit(),因此很容易出现client长时间read后没有commit,和后续的修改table操作冲突,导致锁表。在此建议大家在代码里都加上一行 conn.autocommit(True),避免因为忘记commit事务而引发锁表问题。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

Web后台技术分享

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT可乐

Linux系列教程(十二)——Linux软件包管理之yum在线管理

  上一篇博客我们介绍了rpm包管理之rpm命令管理,我们发现在使用rpm命令手动安装rpm包的时候,会发现安装遇到到的依赖让你痛不欲生,安装一个rpm时会要先...

2247
来自专栏运维小白

Linux基础(day4)

1.13 单用户模式 1.14 救援模式 1.15 克隆虚拟机 1.16 Linux机器相互登录 1.13 单用户模式 在linux系统中忘记密码时,去更改密码...

2038
来自专栏magicsoar

mysql复制

一、复制的意义 mysql的复制功能是构建基于MySql大规模,高性能应用的基础,我们可以通过为服务器配置一个或多个备库来进行数据同步;复制功能不仅有利于构建高...

2637
来自专栏Java技术栈

Maven精选系列--POM文件解析

之前有介绍到maven的标准目录结构,也看到了maven的核心配置文件pom.xml文件,今天就解析这个配置文件。 maven工程的核心文件就是这个pom文件了...

40214
来自专栏Zachary46

RE管理器修改不了系统文件?

本人想修改手机系统路径system/etc/下的hosts文件,用re管理器(已授予root权限)进入该路径,挂载为可读写(r/w),用文本编译器打开修改了内容...

1.4K4
来自专栏Android随笔

ADB常用命令

1081
来自专栏性能与架构

UNIX哲学及其实现

KEEP IT SIMPLE , STUPID ! "保持简单和笨拙" -- 尽量用简单的方法解决问题,是Unix哲学的根本原则 这种哲学信奉的是: 工具应...

2865
来自专栏喵了个咪的博客空间

[喵咪Liunx(5)集群管理利器pssh

[喵咪Liunx(5)集群管理利器pssh ? 前言 哈喽大家好呀!大家在管理服务器的时候如果只是一两台还好,当你管理三台以上的服务器的时候,你安装任何一个软件...

3847
来自专栏运维小白

linux重启、关机的几个命令和忘记l

重启命令linux的几个命令,三种: 第一种是 reboot 第二种是 init 6 第三种是 shutdown -r now 关机linux系统,两种: 第一...

2129
来自专栏13blog.site

Spring+SpringMVC+MyBatis+easyUI整合基础篇(十)SVN搭建

前言 前面一篇文章讲了一下版本控制,但其实这一篇并没有打算讲细节的,感觉应该自己去动手弄一下,后来考虑了一下,版本控制真的挺重要的,如果自己实在搭建不好反而不去...

2985

扫码关注云+社区

领取腾讯云代金券