这篇文章主要讲解了“怎么理解oracle等待事件enq”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解oracle等待事件enq”吧!Enqueue 是一种保护共享资源的锁定机制,避免因并发操作而损坏数据,Enqueue 采用排队机制,即 FIFO(先进先出)来控制资源的使用。在任何需要读取控制文件的动作时,就会发生等待事件enq: CF – contention,CF locks被用来串行化controlfile事务,在读和写控制文件的时候使用该锁。通常该锁的分配时间非常短,比如在下面事件中会分配该锁,那么也就可能发生enq: CF – contention等待事件:l Checkpointl Redo Logfile的切换l Redo lofileg的归档l 执行实例恢复l 操作redo logfilel 热备开始和结束l Nologging 事物的免费云主机域名DML操作如果某个事物设置了nologging属性,那么如下动作更容易产生该等待事件:direct load (SQL*Loader)direct-load INSERTCREATE TABLE … AS SELECTCREATE INDEXALTER TABLE … MOVE PARTITIONALTER TABLE … SPLIT PARTITIONALTER INDEX … SPLIT PARTITIONALTER INDEX … REBUILDALTER INDEX … REBUILD PARTITIONINSERT, UPDATE, and DELETE on LOBs in NOCACHE NOLOGGING mode stored out of line 查询该等待事件的holderselect l.sid, p.program, p.pid, p.spid, s.username, s.terminal, s.module, s.action, s.event, s.wait_time, s.seconds_in_wait, s.statefrom v$lock l, v$session s, v$process pwhere l.sid = s.sidand s.paddr = p.addrand l.type=’CF’and l.lmode >= 5; 查询该等待事件的waiterselect l.sid, p.program, p.pid, p.spid, s.username, s.terminal, s.module, s.action, s.event, s.wait_time, s.seconds_in_wait, s.statefrom v$lock l, v$session s, v$process pwhere l.sid = s.sidand s.paddr = p.addrand l.type=’CF’and l.request >= 5; 原因分析及解决办法:如果holder是后台进程,比如lgwr,ckpt,arcn等,那么检查redo log大小,切换频次,检查fast_start_mttr_target的设置,检查归档路径是否可用。如果是holder是前台进程,那么大都是由于nologging的事物上正在发生DML或者DDL,此时由于nologging属性,那么oracle需要向控制文件中记录unrecoverable SCN,典型的是伴随enq: CF – contention的通常还有control file parallel write,这个会话在写的过程中持有CF locks,其它会话如果也要更新控制文件的话,那么就要等待了。感谢各位的阅读,以上就是“怎么理解oracle等待事件enq”的内容了,经过本文的学习后,相信大家对怎么理解oracle等待事件enq这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云,小编将为大家推送更多相关知识点的文章,欢迎关注!
这期内容当中小编将会给大家带来有关oracle中怎么利用rman删除过期的归档,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.检测所有归档 RMAN> crosscheck 免费云主机域名archivelog all…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。