达梦8 死锁模拟
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,1.创建两个简单的表t1_deadlock和t2_deadlock,每个表中仅仅包含一个字段aSQL> create table t1_deadlock (a int);操作已执行已用时间: 6.90
千家信息网最后更新 2025年01月21日达梦8 死锁模拟
1.创建两个简单的表t1_deadlock和t2_deadlock,每个表中仅仅包含一个字段a
SQL> create table t1_deadlock (a int);
操作已执行
已用时间: 6.906(毫秒). 执行号:23.
SQL> create table t2_deadlock (a int);
操作已执行
已用时间: 3.168(毫秒). 执行号:24.
2.每张表中仅初始化一条数据
SQL> create table t2_deadlock (a int);
操作已执行
已用时间: 3.168(毫秒). 执行号:24.
SQL> insert into t1_deadlock values (1);
影响行数 1
已用时间: 0.566(毫秒). 执行号:25.
SQL> insert into t2_deadlock values (2);
影响行数 1
已用时间: 0.803(毫秒). 执行号:26.
SQL> commit;
操作已执行
已用时间: 1.057(毫秒). 执行号:27.
3.在第一个会话session1中更新表t1_deadlock中的记录"1"为"1000",不进行提交
SQL> update t1_deadlock set a = 1000 where a = 1;
影响行数 1
已用时间: 1.608(毫秒). 执行号:28.
4.在第二个会话session2中更新表t2_deadlock中的记录"2"为"2000",不进行提交
SQL> update t2_deadlock set a = 2000 where a = 2;
影响行数 1
已用时间: 3.345(毫秒). 执行号:29.
5.此时,没有任何问题发生。OK,现在注意一下下面的现象,我们再回到会话session1中,更新t2_deadlock的记录
SQL> update t2_deadlock set a = 2000 where a = 2;
这里出现了"锁等待"("阻塞")的现象,原因很简单,因为在session2中已经对这条数据执行过这个操作,在session2中已经对该行加了行级锁。
注意,这里是"锁等待",不是"死锁",注意这两个概念的区别!
6.我们关注的"死锁"马上就要隆重出场了:在会话session2中,更新t1_deadlock的记录
SQL> update t1_deadlock set a = 1000 where a = 1;
update t1_deadlock set a = 1000 where a = 1;
[-6403]:死锁.
已用时间: 310.980(毫秒). 执行号:0.
7.以上种种现象说明什么?
说明: DM对于"死锁"是会做自动处理的,而不是不闻不问。
8.总结
死锁与阻塞的不同之处在于死锁包括两个或者多个已阻塞事务,它们之间形成了等待环,每个都等待其他事务释放锁。例如事务1给表T1上了排他锁,第二个事务给表T2上了排他锁,此时事务1请求T2的排他锁,就会处于等待状态,被阻塞。若此时T2再请求表T1的排他锁,则T2也处于阻塞状态。此时这两个事务发生死锁,DM数据库会选择牺牲掉其中一个事务。
参考:《DM8系统管理员手册》19.8 锁等待与死锁检测
死锁
事务
阻塞
两个
影响
更新
数据
现象
状态
不同
不闻不问
之间
原因
多个
字段
手册
数据库
概念
管理员
系统
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库范识
华3服务器数据怎么导出
网络安全现在要学啥
服务器管理需要了解什么软件
PG查数据库数据量
服务器安装失败为什么
浪潮服务器 安装驱动
现在的项目还有图片存数据库的吗
mori手帐软件开发公司
网络安全法学是什么专业
北京软件开发哪家正规
济南vfly软件开发
保定网络技术调试
dhcp服务器不显示ip
西北大学网络安全教授
文石网络技术有限公司
国家网络安全产业园信创园
互联网科技变化
深圳国安网络技术有限公司
qt软件开发前景
根据时间数据库的数据
计算机网络技术人物访谈
大学生面临网络安全问题及对策
山东淄博网络安全检查
达梦数据库的默认密码
电脑打卡数据库表怎么设计
数据库常用增查改删命令
洛阳两年制计算机网络技术
计算机网络安全密码技术
网站服务器托管协议