Know more about Enqueue Deadlock Detection
SQL> select * from v$version;BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi PL/SQL Release 10.2.0.5.0 - Production CORE 10.2.0.5.0 Production TNS for Linux: Version 10.2.0.5.0 - Production NLSRTL Version 10.2.0.5.0 - ProductionSQL> select * from global_name;GLOBAL_NAME -------------------------------------------------------------------------------- www.oracledatabase12g.comPROCESS A:set timing on; update maclean1 set t1=t1+1;PROCESS B:update maclean2 set t1=t1+1;PROCESS A: update maclean2 set t1=t1+1;PROCESS B:update maclean1 set t1=t1+1;等待3s后 PROCESS A 会报ERROR at line 1: ORA-00060: deadlock detected while waiting for resourceElapsed: 00:00:03.02
可以看到Process A在检测到死锁之前确实等待了 3s,而且这是一个可以重复的实验,很具有说服力。 事实真的是这样的吗? 来看下面的演示:
SQL> col name for a30 SQL> col value for a5 SQL> col DESCRIB for a50 SQL> set linesize 140 pagesize 1400 SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ2 FROM SYS.x$ksppi x, SYS.x$ksppcv y3 WHERE x.inst_id = USERENV ('Instance')4 AND y.inst_id = USERENV ('Instance')5 AND x.indx = y.indx6 AND x.ksppinm='_enqueue_deadlock_scan_secs';NAME VALUE DESCRIB ------------------------------ ----- -------------------------------------------------- _enqueue_deadlock_scan_secs 0 deadlock scan intervalSQL> alter system set "_enqueue_deadlock_scan_secs"=18 scope=spfile;System altered.Elapsed: 00:00:00.01SQL> startup force; ORACLE instance started.Total System Global Area 851443712 bytes Fixed Size 2100040 bytes Variable Size 738198712 bytes Database Buffers 104857600 bytes Redo Buffers 6287360 bytes Database mounted. Database opened.PROCESS A:SQL> set timing on; SQL> update maclean1 set t1=t1+1;1 row updated.Elapsed: 00:00:00.06Process BSQL> update maclean2 set t1=t1+1;1 row updated.SQL> update maclean1 set t1=t1+1;Process A: SQL> SQL> alter session set events '10704 trace name context forever,level 10:10046 trace name context forever,level 8';Session altered.SQL> update maclean2 set t1=t1+1; update maclean2 set t1=t1+1* ERROR at line 1:ORA-00060: deadlock detected while waiting for resource
Know more about Enqueue Deadlock Detection相关推荐
- 案例分析:你造吗?有个ORA-60死锁的解决方案
关注↑↑↑我们获得更多精彩内容! 问题综述 1 这段时间应用一直被一个诡异的 ORA-00060 的错误所困扰,众所周知,造成 ORA-00060 的原因是由于应用逻辑,而非 Oracle 数据库自己 ...
- Identify ksusetxn DID:An Deadlock ID
我们在查看10704 event trace(Print out information about what enqueues are being obtained)或deadlock detect ...
- Deadlock 和 Deadlock Prevention
一.Thread Deadlock A deadlock is when two or more threads are blocked waiting to obtain locks that so ...
- 12.2 新特性:锁信息获取之在线删除索引
黄廷忠 云和恩墨西区交付总监 简介: 超过10年专职电信行业 Oracle 数据库管理和运维经验,熟悉电信行业的业务.数据库及硬件架构.擅长数据库各种迁移方法.优化.疑难故障排除.数据库异常恢复等. ...
- 并行insert出现library cache lock与cursor: pin S wait on X等待问题记录
一. 故障现象与紧急处理 开发反馈凌晨5点左右应用出现大量报错 ORA-04021: timeout occurred while waiting to lock object,并且集中出现在inse ...
- Android Watchdog框架解析、应用与改造(上)
简言: frameworks/base/services/java/com/android/server/ 系统框架服务目录下,可以看到名为Watchdog.java文件,这是一个软件看门狗的实现,其 ...
- (转载)library cache lock和library cache pin到底是什么
(http://www.dbsnake.net/library-cache-lock-and-pin.html) Posted: December 16, 2011 | Author: Cui Hua ...
- RAC 中GES/GCS原理
一.RAC的GES/GCS原理(1) 为了保证群集中的实例的同步,两个虚拟服务将被实现:全局排队服务(GES),它负责控制对锁的访问.全局内存服务(GCS),控制对数据块的访问. GES 是 分布式锁 ...
- RAC的GES/GCS原理
一.RAC的GES/GCS原理(1) 为了保证群集中的实例的同步,两个虚拟服务将被实现:全局排队服务(GES),它负责控制对锁的访问.全局内存服务(GCS),控制对数据块的访问. GES 是 分布式锁 ...
最新文章
- 硬货 | Redis 性能问题分析
- 让我们来谈谈对Linux的认识,值得每一位运维人员深读
- linux文件属性 -rwxr-xrw,Linux文件属性
- cv::parallel_for_ 的一个例子
- Fabric--区块链应用开发
- Unicode简介【转】
- 春运公益片“情满回家路”上线 顺风车等出行方式再被呼吁
- Oracle-SQL程序优化4
- 基于java(springboot框架)的购物商城系统 开题报告
- 人体模型 java代码_java3d人体模型.doc
- sql字符型注入-sqli第1关
- 划片机的性能决定了芯片产品的质量
- CF1015C Songs Compression (#贪心)
- 什么是压测,为什么要进行压力测试?JMETER工具的使用
- 星星之火-31:WCDMA码分多址复用与解复用的数学计算案例
- 什么是CUDA和CUDNN?——GeForce NVIDIA显卡用于深度学习计算的GPU加速工具
- 【Linux 内核】CFS 调度器 ③ ( 计算进程 “ 虚拟运行时间 “ )
- photoshop图像处理技术(二)
- Spark+Hadoop环境搭建
- 使用计算机软件进行电视剪辑称为,影视制作中计算机技术的创新应用
热门文章
- sqlserver的存储过程
- 将m个苹果放入n个盘子的问题【转】
- Windows Embedded Standard 7 剪裁随笔
- [和管子对话] 2 2007-4-6/抽象类和接口的谁是谁非
- 测试基础-07-测试报告编写
- 手写一个动态代理实现,手写Proxy,手写ClassLoader,手写InvocationHandler
- 方法的运用_运用正确管理方法缩减库存,助力企业发展
- cortex a7 a53_西昊人体工学椅A7开箱测评
- 10个实用的 ES6 方法
- 石头剪刀布代码android,微信小程序源码解说:石头剪刀布(附源码下载)