
ORACLE数据库等待事件分析
文章平均质量分 64
执笔画情ora
数据库管理系统
展开
-
Oracle数据库故障处理-存储单块读hang分析处理
联系管理员只能在将主机进行重启,杀掉hang死的数据库进程,将主机重启后,使用HA命令手动进行挂在并启动数据库 ,发现 没过一会数据库继续hang死并进入了死循环,于是在启动数据库时未开启监听,将主键索引进行反向化,程序启动时TX等待消失,但是数据库还是存在大量的db file sequential read read by other session等待。通过上述对故障的分析,问题主要出现在hdisk3存储在进行数据库单块读时hang住,数据库进行随之hang死,建议对数据库存储进行检查分析。原创 2023-01-30 16:06:16 · 870 阅读 · 0 评论 -
Oracle数据库新特性11G-密码延迟验证。。。。
http://www.itpub.net/thread-1606530-1-1.html系统:LINUX数据库版本:--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionPL/SQL Release 11.2.0.3.0 - Productio转载 2022-01-04 10:02:28 · 315 阅读 · 0 评论 -
Oracle数据库等待事件-DML产生大量db file sqeuenial read
场景1deletefromT;1T表parentid和id是外键关系,导致在执行delete from t 过程中间隙的出现ENQ:TM CONTENTION2 T表存在delete触发器,导致在delete删除数据过程中需要更新T1表的数据,产生db file sqeuenial read(对应的P1,P2为T1表对象对应的file id 和block id)场景2 insert 产生大量的db file sqeuenial read1 维护索引2 存在触发器...原创 2021-03-08 16:45:53 · 197 阅读 · 0 评论 -
ORACLE数据库内存管理-CBC latch总结
1 全表扫描的CBC行为。segment header中包含了自由空间和HWM信息,在全表扫描和update、delete、insert操作都需要访问segment header,测试验证中不同版本的oracle表现是不同的。oracle 11.2.0.1 for windows 访问段头获得独占模式的CBC latch,其他block共享模式CBC block。oracle 10.2.0.1 for linux 访问段头获得独占模式的CBC latch,其他block独占模式CBC b原创 2020-11-11 10:59:53 · 591 阅读 · 0 评论 -
Oracle数据库故障分析-性能分析(网络流量。。。带宽耗尽)
1 活动会话历史趋向select to_char(sample_time,'yyyy-mm-dd hh24:mi:ss'),count(1)from dba_hist_active_sess_historywhere sample_time>sysdate-2/24and sample_time<sysdate-1/24group by to_char(samp...原创 2020-01-16 15:37:49 · 967 阅读 · 0 评论 -
Oracle数据库管理-INSERT阻塞DELETE(表面现象)
1 插入和delete中存在主键约束条件下。案例2 ## 标题(i1)问题概述:对数据库巡检发现,存在少量的TX锁等待,使用sql查询对应的sql语句进行分析。2 执行会话为sqlplus脚本,即上一条sql导致了TX锁等待,使用如下sql语句查看即可。select b.sql_text,event from vsessiona,vsession a, vsessiona,vsql bwhere a.sql_id = b.sql_idand status=‘ACTIVE’and (a.sid原创 2020-09-25 11:28:45 · 608 阅读 · 0 评论 -
oracle数据库管理-insert导致event -dbfile sequential read
数据库中频繁出现会话等待(dbfile sequential read),一张大表135G上面创建有四个单列索引,经查询确认此等待(dbfile sequential read)是由于一条insert语句引起,按照常理来说 insert和db filesequential read等待是两个完全不搭边的,经分析是由于表上的索引引起,表在进行insert 时,索引也在同时进行维护更新,需要查询索引块确认索引更新位置,当并发量很大时,将会发生此等待。以下是在测试环境中所做的测试。创建测试表t2create转载 2020-08-24 13:55:19 · 611 阅读 · 0 评论 -
Oracle等待事件管理与分析-cache buff chains一例
今日对数据库巡检发现 ,数据出现大量的cbc等待事件。(查询cbc保护的对象)set lines 120col owner for a10col object_name for a30col object_type for a10select distinct owner, object_name, object_type,file#, dbablkfrom x$bh a, dba_objects b, v$session cwhere a.hladdr = c.P1RAW.原创 2020-06-10 16:24:49 · 201 阅读 · 0 评论 -
oracle数据库管理-等待share pool latch
1硬解析。2自动调节内存。原创 2020-01-15 20:01:42 · 260 阅读 · 0 评论 -
oracle数据库管理-sqlnet message from client INACTIVE session
1 问题现象:V$TRANSACTION为ACTIVE,V$SESSION为INACTIVE如下查询。select 'alter system kill session ' || '''' || sid || ',' || serial# || '''' || ' immediate;', T1.XIDUSN, T1.XIDSLOT, ...原创 2020-01-15 16:34:34 · 392 阅读 · 0 评论 -
oracle数据库管理-IO异常导致bufer busy waits异常等待
1 故障现象rman进行全备份报错channel ch00: starting piece 1 at 05-JAN-20RMAN-03009: failure of backup command on ch01 channel at 01/05/2020 11:19:10ORA-19501: read error on file "/orcl/oracle/oradata2/undo...原创 2020-01-05 15:44:24 · 442 阅读 · 0 评论 -
ORACLE数据库等待-enq: TX - allocate ITL entry
https://blog.youkuaiyun.com/coco3600/article/details/100232105?utm_source=app故障分析及解决过程 3.1故障环境介绍2故障发生现象及报错信息最近事情比较多,不过还好,碰到的都是等待事件相关的,同事发了个AWR报告,说是系统响应很慢,我简单看了下,简单分析下吧:...转载 2020-01-01 21:19:31 · 1588 阅读 · 0 评论 -
oracle数据库等待事件-TX-contention
从专家那里要来得图片主外键createtablet3(idnumberprimarykey,namevarchar2(20),product_idnumber);createtablet2(idnumberprimarykey,namevarchar2(20));altertablet3addconstraintFK_PRODUCTSTAT_...原创 2019-12-31 22:31:52 · 470 阅读 · 0 评论 -
oracle数据库管理-buffer busy waits
案例1日志切换频繁导致大量得buffer busy waits案例2MSSM管理得表空间,大量并发insert,结果发现都往一个数据块里面插入数据,sql部分均为一个insert语句,导致大量得buffer busy waits。方案:迁移到ASSM表空间,采用hash分区。案例3某天,客户反映其监控平台发现其一套数据库7月20日及24日在早晨7:03分和8:09分...转载 2019-12-15 10:40:33 · 355 阅读 · 0 评论 -
How to Monitor and tune Open and Cached Cursors (Doc ID 1430255.1)
APPLIES TO:Oracle Server - Enterprise Edition - Version 9.2.0.8 to 11.2.0.3 [Release 9.2 to 11.2]Information in this document applies to any platform.GOALThis article deals with monitoring and ...转载 2019-10-31 13:48:12 · 154 阅读 · 0 评论 -
LIBRARY cahche MUTEX X 分析案例1
1 通过AWR报告分析。load profile部分如下:1 数据库通过sar 1 20,vmstat以及sar -d 1 20命令查询主机资源均正常。2 通过v$session查询对应的等待的sql_id为 sqlid1,sqlid2,在awr报告中均执行次数均不高,且verson count也很低。3 查看共享池的使用率yeh也很低...原创 2019-10-30 11:19:43 · 131 阅读 · 0 评论 -
cursor library cache类型的等待事件
【MOS】常见问题:'cursor:mutex ..'/ 'cursor:pin ..'/ 'library cache:mutex ..'类型的等待事件 (文档 ID 1525791.1)适用于:Oracle Database - Enterprise Edition - 版本 10.1.0.2 和更高版本Oracle Database - Standard Edition -...转载 2019-10-29 00:04:37 · 247 阅读 · 0 评论 -
oracle共享池管理-library cache: mutex X
产生library cache latch原因 The library cache latches protect the cached SQL statements and objects' definitions held inthe library cache within the shared pool. The library cache latch must be ...转载 2019-10-28 23:49:00 · 2734 阅读 · 0 评论 -
oracle数据库优化-ORACLE分区技术
分区技术分而治之,对于hash分区能够有效缓解热点块问题(提高indexrange成本)ORACLE 分区技术分区技术可以将大表、大索引分解为更小更易管理的块,这些块被称为分区,通过分区技术可以有效的解决大表、大索引带来的问题,在VLDB环境中,分区表有助于提高数据库的可用性和可维护性。将一个分区表划分成几个易于管理的称为’分区’的部分,分区可以进一步化成分子分区。分区表上的索引可能是...原创 2019-10-16 15:23:24 · 569 阅读 · 0 评论 -
oracle数据库优化-SELECT执行查询语句的过程
1.用户进程执行一个查询语句如select * from emp where empno=78392.用户进程和服务器进程建立连接,把改用户进程的信息存储到PGA的UGA中3.语句经过PGA处理后传递给实例instance4.实例instance中的共享池处理这条语句a.库缓冲区去判断语句如何分析--软分析(快)或硬分析(慢)2.根据cbo得到执行计划,准备去执行语句.(CBO和RBO是...原创 2019-08-21 16:11:36 · 626 阅读 · 0 评论 -
逻辑读和网络读取次数优化
1 只要网络带宽允许,最好采用大 "批量”,大 “SDU”,这对于全表扫描减少逻辑读和减少网络交互次数,进而减少CPU消耗是很有帮助的。sql>set arraysize 1000vi sqlnet.oradefault_sdu_size=8192在数据交互期间,会存在sqlnet messgae to client, sqlnet message from clien...原创 2019-10-16 10:45:27 · 586 阅读 · 0 评论 -
共享池锁解析Metux
1 无论是硬解析还是软解析,进程都要以独占的模式获得library cache类型metux,然后才能访问HASH链,如果遭遇竞争,就会差产生等待事件,library cache :Metux X。...原创 2019-10-14 11:37:52 · 301 阅读 · 0 评论 -
oracle数据库优化-SELECT语句解析过程分析
1 打开游标(V$open_cursor),这一步主要工作是pga中为sql准备内存。2 解析。(根据sql文本的hash值,找到对应bucket,搜索bucket后的链表,查找对应的父游标句柄,然后在父游标堆0中查找子游标句柄,如果找的到进行软解析,如果找不到则进行硬解析。)3 绑定,如果使用了绑定变量,这一步必不可少,为绑定变量赋值。4 执行。5 抓取,逻辑读或者物理读取从SG...原创 2019-10-14 11:25:58 · 296 阅读 · 0 评论 -
BUFFER BUSY WAITS
1 抬高HW,减少buffer busy waits2 HASH分区打散数据,减少buffer busy waits原创 2019-07-26 11:37:47 · 172 阅读 · 0 评论 -
dbfile sequential read
insert 引起的db file sequential read等待,主要表现维护索引。2 select产生大量的CR读取,构造CR块时,读取已经文件化的UNDO数据块-单块读、3闪回查询过程中,直接读取undo回滚段。4读取段头。数据库中频繁出现会话等待(dbfile sequential read),一张大表135G上面创建有四个单列索引,经查询确认此等待(dbfi...转载 2019-07-29 14:28:47 · 1941 阅读 · 0 评论 -
经典故障分析 - ASSM引发的索引争用与 enq HW -contention 等待事件--转载
经典故障分析 - ASSM引发的索引争用与 enq HW -contention 等待事件1故障概述2017年07月24日11:58左右,客户核心数据库出现大量活动会话,导致数据库负载急剧加大,从而导致业务出现延时,DBA通过查看SESSION信息发现有大量的“enq: HW - contention”等待事件。一直持续约有3分钟,数据库负载下降:下面是详细的故障分析诊断过程,以及...转载 2018-12-10 17:26:35 · 427 阅读 · 0 评论 -
【故障处理】队列等待之enq: US - contention案例,转载
声明:文章转载于http://itfish.net/article/65243.html# 【故障处理】队列等待之enq: US - contention案例1 BLOG文档结构图 2 前言部分2.1 导读和注意事项各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~:① enq: US - co...转载 2018-12-09 22:28:46 · 1734 阅读 · 0 评论 -
关于繁忙的系统不要轻易对数据库对象进行ddl操作,避免产生大量的library cache lock
SELECT * FROM T1;CREATE OR REPLACE procedure ROASID1 VARCHAR2(100);ID2 VARCHAR2(100);ID3 NUMBER:=10;BEGIN FOR ID4 IN 1..ID3 LOOP DELETE FROM T1 WHERE ROWNUM<ID4; COMMIT; END LOOP; END;...原创 2018-06-06 22:22:01 · 345 阅读 · 0 评论 -
log file sync一次剖析
log file sync总结y原文转载于 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4774739&uid=23284114log file sync等待时间发生在redo log从log buffer写入到log file期间。下面对log file sync做个详细的解释。何时发生日志写入转载 2016-12-23 11:20:29 · 601 阅读 · 0 评论 -
Direct IO+asm引起css initialization
某数据库升级到12c后(应用代码也升级了),出现了大量css initialization的等待:怀疑是否是12c的新特性导致。CSS initialization 说明:在RAC(或使用ASM的单实例)数据库环境下,当前台进程需要执行direct IO操作时,需要向CSSD进程进行注册,此时该前台进程发生CSS initialization等待。在11g还是12c转载 2016-11-29 09:54:38 · 677 阅读 · 0 评论 -
Oracle等待事件resmgr:cpu quantum
【案例】Oracle等待事件resmgr:cpu quantum 产生原因和解决办法Oracle研究中心案例分析:发现一个关于Oracle数据库等待事件 resmgr:cpu quantum 的案例。本站文章除注明转载外,均为本站原创: 转载自love wife & love life —Roger 的Oracle技术博客本文链接地址: resmgr:cpu quantum导致的...转载 2019-07-31 18:08:02 · 9404 阅读 · 0 评论 -
ORACLE数据库管理-常用ORACLE EVENTS总结
1event 600251.Without event 60025 set (before and after commit):都出现v$tempseg_usage中存在对应记录,而且提交后不能释放Temp LOB space2.With event 60025 set (before and after commit):都未现v$tempseg_usage中存在对应记录,证明提交后释放T...原创 2018-12-27 15:32:11 · 3648 阅读 · 0 评论 -
enq:TX-CONTENTION
killdb关于 enq: TX - row lock contention的总结1. 其原因一般有如下几种:1) 表上存在主键或唯一性约束,多个会话操作同一条记录2) 表存在主外键读情况,主表不提交,子表那么必须进行等待.3) 表上存在位图Index,这跟uniqeue index中存在重复值是一样的道理,其中一个会话操作,其他会话必须等待.4) 表进行自我外键关联,前面的事务不提交,...原创 2019-08-23 17:58:00 · 2195 阅读 · 0 评论 -
Oracle数据库性能优化-cache buffer chains解析
1为什么需要cbclatch搜索链表查找bh 修改bh中bufferpin锁的状态,bufferpin锁分为S和X模式 (如果只是逻辑读,进程会将bufferpin锁BH中调整为S模式,如果是dml操作则设置为X独占模式) 1个cbclatch保护N个bucket, 将链表BH中的bufferpin锁设置完成后,CBC释放。持有cbc修改bufferpin锁。 2 ...原创 2019-10-11 16:40:15 · 435 阅读 · 0 评论 -
SQL*NET message from client
1 plsql查询出数据,需要显示出所有数据过程。2 plsql正在显示结果,event显示为SQL*NET .messgae from client。3 绑定变量正在进行的dml,l例如update、insert、delete等,status为active状态。下面是参考文档:1.对于一个session来说,每时每刻都在wait 的状态。WAIT FOR IO / W...原创 2019-09-10 17:03:50 · 1558 阅读 · 0 评论 -
oracle数据库优化-buffer busy waits优化
1 抬高水位点,减少buffer busy waits2集群一个节点归档日志满,导致事务产生大量的bufferbusywaits、2 日志写性能低导致大量的buffer busy waits,修改一个buffer步骤:1 申请独享cbc latch,遍历 buffer chain查找到buffer bh。2 在cbc保护表修改buffer pin锁为X。3 释放cbc...原创 2019-10-11 16:17:30 · 1232 阅读 · 0 评论 -
Oracle数据库管理-direct path /direct path write
1索引online重建过程,产生大量的direct path read/write temp以及directpathwrite等待。转载 2019-09-12 12:36:14 · 1261 阅读 · 0 评论 -
oracle数据库优化-查询CR数据块一致性读取
1 用户1在数据块9000中更新一条记录(用户未提交)。2 用户2查询相同的数据块并看到被查询的其中一行锁标记字节已经设置。3 用户2获取ITL槽部分的XID(事务ID)。4 XID映射到UNDO块,保存了更新前的信息。5 完成数据块的克隆(称之为788块)。(当前块和undo信息共享构造CR数据块)6 788块应用UNDO信息,回滚到之前的状态。7 数据块9000为cur...原创 2019-08-19 14:25:30 · 597 阅读 · 0 评论 -
oracle数据库优化-CR一致性数据快解析
Cr块consistent read块也就是用来维护oracle的读一致性的数据块。当查询某些数据的时候,发现数据块的版本比我们要查询的新,例如session1执行了dml操作并没有提交,session2此时查找跟session1相关的dml操作的数据信息,此时查询的数据却是原来的数据信息。查询的过程会在undo段中查找该数据块的前映像后,然后把前映像和current块合并形成了一个CR bl...转载 2019-09-12 12:31:40 · 882 阅读 · 0 评论 -
buffer pin lock
1 读不阻塞写假设1进程要读取5号数据文件的1234块,1根据文件号和块号(从索引扫描来或者全表扫描得到位置),计算HASH值。2 根据HASH值找到HASH BUCKET.3 搜索bucket后的链表,查找哪个BH为目标BH。4 找到对应的bh,从中取得BA,5 按照BA访问buffer。如果不能找到则只能进行物理读取。...原创 2019-09-03 15:55:49 · 341 阅读 · 0 评论