14.5.5.1 An InnoDB Deadlock Example 一个InnoDB 死锁实例

14.5.5.1 An InnoDB Deadlock Example  一个InnoDB 死锁实例下面的例子演示了一个错误可以发生当一个lock 请求会导致一个死锁,例子设计2个客户端,A和B:Jekins:/root# mysql -uroot -p1234567 -e"SHOW ENGINE INNODB STATUS\G;" | grep -i dead
Warning: Using a password on the command line interface can be insecure.首先, client A 创建一个表包含一个记录, 然后开始一个事务,在事务中,通过selecting在共享模式得到一个S锁mysql> CREATE TABLE t (i INT) ENGINE = InnoDB;
Query OK, 0 rows affected (1.07 sec)mysql> INSERT INTO t (i) VALUES(1);
Query OK, 1 row affected (0.09 sec)mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)mysql> SELECT * FROM t WHERE i = 1 LOCK IN SHARE MODE;
+------+
| i    |
+------+
|    1 |
+------+接着,Client B 开始一个事务和尝试删除记录mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)mysql> DELETE FROM t WHERE i = 1;删除操作需要一个X锁,lock 不能被立即授权 因为它不兼容S锁 客户端A持有的,最后,Client A 尝试删除表的记录mysql> DELETE FROM t WHERE i = 1;
ERROR 1213 (40001): Deadlock found when trying to get lock;
try restarting transactionDeadlock 发生 因为client A 需要一个X锁来删除记录。然而,lock 请求不能被立即授予因为Client B有一个请求X锁 在等待客户端A 来释放他的S锁。S锁被client A持有的也不能升级为X锁 。这样,InnoDB 产生一个错误------------------------
LATEST DETECTED DEADLOCK
------------------------
2016-10-31 10:06:09 7f0341d30700
*** (1) TRANSACTION:
TRANSACTION 15945, ACTIVE 5 sec starting index read
mysql tables in use 1, locked 1
LOCK WAIT 2 lock struct(s), heap size 360, 1 row lock(s)
MySQL thread id 5, OS thread handle 0x7f0341ae9700, query id 368 localhost root updating
DELETE FROM t WHERE i = 1
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 583 page no 3 n bits 72 index `GEN_CLUST_INDEX` of table `zjzc`.`t` trx id 15945 lock_mode X waiting
Record lock, heap no 2 PHYSICAL RECORD: n_fields 4; compact format; info bits 00: len 6; hex 000000005c00; asc     \ ;;1: len 6; hex 000000003e47; asc     >G;;2: len 7; hex c7000001be0110; asc        ;;3: len 4; hex 80000001; asc     ;;*** (2) TRANSACTION:
TRANSACTION 15944, ACTIVE 24 sec starting index read
mysql tables in use 1, locked 1
4 lock struct(s), heap size 1184, 3 row lock(s)
MySQL thread id 4, OS thread handle 0x7f0341d30700, query id 369 localhost root updating
DELETE FROM t WHERE i = 1
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 583 page no 3 n bits 72 index `GEN_CLUST_INDEX` of table `zjzc`.`t` trx id 15944 lock mode S
Record lock, heap no 1 PHYSICAL RECORD: n_fields 1; compact format; info bits 00: len 8; hex 73757072656d756d; asc supremum;;Record lock, heap no 2 PHYSICAL RECORD: n_fields 4; compact format; info bits 00: len 6; hex 000000005c00; asc     \ ;;1: len 6; hex 000000003e47; asc     >G;;2: len 7; hex c7000001be0110; asc        ;;3: len 4; hex 80000001; asc     ;;*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 583 page no 3 n bits 72 index `GEN_CLUST_INDEX` of table `zjzc`.`t` trx id 15944 lock_mode X waiting
Record lock, heap no 2 PHYSICAL RECORD: n_fields 4; compact format; info bits 00: len 6; hex 000000005c00; asc     \ ;;1: len 6; hex 000000003e47; asc     >G;;2: len 7; hex c7000001be0110; asc        ;;3: len 4; hex 80000001; asc     ;;*** WE ROLL BACK TRANSACTION (1)

转载于:https://www.cnblogs.com/zhaoyangjian724/p/6199043.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php开发环境 ubuntu,Ubuntu配置PHP开发环境

开发环境安装目前web服务器有很多,本文安装Apache服务器;本文使用的服务器是Mysql服务器。sudo apt install apache2常用命令重启Apache:sudo /etc/init.d/apache2 restart重启php:sudo /etc/init.d/php-fapm restart配置apache服…

Jmeter java.lang.OutOfMemoryError: GC overhead limit exceeded

使用这个jmeter工具测试时,遇到这么个gc错误,网上找到了解决方案。原因是jmeter默认分配内存的参数很小,好像是256M吧。故而解决方法,就是增加内存: set HEAP-Xms4g -Xmx4gset NEW-XX:NewSize1g -XX:MaxNewSize1g 注意…

php基础知识总结大全,php基础知识回顾 —— 常量

您现在的位置是:网站首页>>PHP>>phpphp基础知识回顾 —— 常量发布时间:2019-01-23 17:23:08作者:wangjian浏览量:489点赞量:0在PHP中有这样一类变量,当变量值被定义之后,它的值就不…

Java 配置maven及阿里云镜像

一:配置maven 1.下载maven,选择Binary tar.gz,解压拷贝到目录/usr/local/ https://maven.apache.org/download.cgi2.配置系统默认maven路径,打开配置文件 $ open ~/.bash_profile写入路径信息 export M2_HOME/usr/local/apache-ma…

php中get_featured_posts()是什么意思,WordPress的Get_Posts()函数详解

WP中获取POST有两个主要函数,Get_post()和Get_Posts()。一个是获取单文章,另外一个是获取多文章,其中,官网对Get_posts()函数的描述很简单。但有的时候描述越简单的函数,使用起来却并没有那么简单。下面我通过一个案例…

Android Studio 下使用git -- 个人,本地版本控制

第一步:下载安装git 下载地址 : https://git-scm.com/downloads 第二步:Android Studio 下配置git路径。 配置之后,Test弹出如下成功的提示即可。 第三步:创建版本库 选择项目的根目录比较适合。 第四步:添加需要版本控…

vba中取小数点后两位数,如何快速提取Excel小数点后第N位数字,excle提取小数的个位数...

excel vba中如何获取一个小数的小数点后的位数?用函数行不?FIND RIGHT等函数EXCEL提取小数点,后第一位函数RIGHT(INT(A1*10))EXCEL 函数 分别提取小数后两位right()EXCEL 一组数据里如何将十位数、个位数和小数点提取出来利用MOD函数即可。如下图&#…

oracle数据库延迟执行,如何诊断oracle数据库运行缓慢或hang住的问题

为了诊断oracle运行缓慢的问题首先要决定收集哪些诊断信息,可以采取下面的诊断方法:1.数据库运行缓慢这个问题是常见还是在特定时间出现如果数据库运行缓慢是一个常见的问题那么可以在问题出现的时候收集这个时期的awr或者statspack报告(通常收集时间间隔是一个小时).生成awr报…

The Everyman's Guide to How Network Packets Are Routed Across the Web

转自: http://null-byte.wonderhowto.com/how-to/hacker-fundamentals-everymans-guide-network-packets-are-routed-across-web-0134491/ We already covered how your data travels the OSI model, layer by layer, and talks with other machines on your local …

oracle忽略除数为0,ora-01476除数为0的解决办法,oracle中decode()的使用

执行报表查询,固定的一个时间点没有数据,应该是有数据的,把前一个时间节点往前调是有的,往后调也有bebug报错把sql放到数据库中,发现提示如截图解决办法,oracle中的decode()select decode(b,0,0,a/b*100) …

Confluent Platform 3.0支持使用Kafka Streams实现实时的数据处理(最新版已经是3.1了,支持kafka0.10了)...

来自 Confluent 的 Confluent Platform 3.0 消息系统支持使用 Kafka Streams 实现实时的数据处理,这家公司也是在背后支撑 Apache Kafka 消息框架的公司,它近日宣布 最新的开源平台已经达到了通用发布(general availability)版本。…

oracle串连接,Oracle中串连接符||的使用心得(个人见解)

Oracle中可以用串连接符||将若干个串连在一起(Oracle中也可以使用concat函数,但是它只最多连接两个串。而MySQL中concat可以连接多个串。在SQL Server中则使用进行串连接)。当然,这两个串可以是列名或字面值。例如:select province || city f…

HDU5971【瞎搞】

题意:略(忙着准备文化课。。。明天期中考啊。。。。 思路: 正解就是染色,2-sat搞; AC代码(虽然是错误的。。。数据水(过踏马的也行啊,起码打脸他啊!) 4 3 1 0…

性能测试oracle瓶颈定位,性能测试中如何定位性能瓶颈

性能测试的概念是什么,基本目的是什么,我想大家都基本清楚,不作详述,总之,性能测试只是测试过程中的一种方式,帮助我们的功能更好的运行,如果功能测试是可用,易用,满足需…

Java GridBagLayout 简单使用

这里只介绍了很基础布局构建及使用,主要是关于 GridBagLayout. 首先整套流程大概是, 声明一个 GridBagLayout 对象 private GridBagLayout gridBagLayoutFrame new GridBagLayout(); 然后把当前类的容器布局管理器设置为 GridBagLayout this.setLayout(…

oracle数据库存储ip地址,oracle – 以十进制形式存储的IP地址 – PL / SQL以虚线四边形显示...

这是您需要的功能:create or replacefunction inttoip(ip_address integer) return varchar2deterministicisbeginreturn to_char(mod(trunc(ip_address/256/256/256),256))||.||to_char(mod(trunc(ip_address/256/256),256))||.||to_char(mod(trunc(ip_address/256…

Angular之简单的登录注册

使用Angular实现了一个简单的登录注册的功能........ 涉及到的Angular知识点很少 主要是这个功能的实现...(*^__^*) 嘻嘻…… 里面涉及到的知识点记录: 1.本地存储的操作 localStorage 获取本地存储的值 window.localStorage.getItem(key)-->value (得到的数据是字符串&qu…

Linux命令行调用动态库,Linux动态链接库的使用

动态链接库与普通的程序相比而言,没有main函数,是一系列函数的实现。通过shared和fPIC编译参数生产so动态链接库文件。程序在调用库函数时,只需要连接上这个库即可。例如下面实现一个简单的整数四则运输的动态链接库,定义的cacula…

Linux用户、用户组、文件权限设置

最近打算更仔细学习一下linux操作系统。先是恶补了一下用户、用户组、文件权限这三样比较重要的知识。(我也正在学Linux,所以就找到这篇日志了,有些设置修改后需要重启系统后才能生效。)学习这几样东西,得先掌握linux的权限系统相关知识。lin…

linux系统ip访问53端口,linux – 使用公共IP地址无法访问本地端口

我有一个linux服务器,它有公共IP和私有IP.因此,当我使用公共IP登录时,终端直接显示私有IP.例:$ssh root55.27.XX.XXroots password:root10.1.4.20:~$hostname -I10.1.4.20root10.1.4.20:~$wget -qO- http://ipecho.net/plain ; echo55.27.xx.xx现在,我安装了Nginx,我…